OpenSceneGraph - OpenSceneGraph
![]() | |
| Stabil kiadás | 3.6.5 / 2020. január 31
|
|---|---|
| Adattár |
|
| Beírva | C ++ |
| Operációs rendszer | Többplatformos |
| típus | 3D grafika |
| Engedély | OpenSceneGraph nyilvános licenc ( LGPL alapú) |
| Weboldal |
www www |
Az OpenSceneGraph egy nyílt forráskódú 3D grafikus alkalmazás programozási felület (könyvtár vagy keretrendszer), amelyet az alkalmazásfejlesztők használnak olyan területeken, mint a vizuális szimuláció , számítógépes játékok , virtuális valóság , tudományos vizualizáció és modellezés .
Az eszköztár szabványos C ++ nyelven íródott OpenGL használatával , és számos operációs rendszeren fut , beleértve a Microsoft Windows , macOS , Linux , IRIX , Solaris és FreeBSD operációs rendszereket . A 3.0.0 verzió óta az OpenSceneGraph támogatja a mobil platformok, nevezetesen az iOS és az Android alkalmazások fejlesztését is .
2021-től a projekt utódja a VulkanSceneGraph projekt, egy Vulkan-alapú könyvtár. Az OpenSceneGraph 2019 óta karbantartási szakaszban van.
Történelem
Az OpenSceneGraph projektet Don Burns kezdeményezte 1998 -ban. Robert Osfield 1999 -ben csatlakozott a projekthez, és a kész komponensek Microsoft Windows rendszerre történő átvitelén dolgozott. A projekt 1999 szeptemberében nyílt forráskódúvá vált, és létrejött a projekt hivatalos weboldala . Az év vége felé Osfield átvette a projektet, és megkezdte a meglévő kódbázis kiterjedt átalakítását, hangsúlyt fektetve a modernizációra, a modern C ++ szabványok és tervezési minták figyelembevételével .
2001 áprilisában, figyelembe véve a növekvő felhasználói közösséget és a nyilvánosság érdeklődését, Robert Osfield létrehozta az OpenSceneGraph Professional Services szolgáltatást, amely kereskedelmi támogatást, tanácsadást és képzést nyújtott. Ez a projekt teljes professzionalizálódását jelzi.
Az első hivatalos stabil verzió a OpenSceneGraph volt 1.0 verzió, megjelent 2005-ben egy kiterjesztett változata 2,0, majd 2007-ben, hozzátéve, támogatja a multi-core és multi-GPU-s rendszerek, több fontos NodeKits és használata egységes multiplatform építmények rendszer CGyõzõdjön . Bemutatták a könyveket és a felhasználói kézikönyveket.
A projekt azóta gyorsan növekszik és egyre népszerűbb. A jelenlegi stabil verzió alatt több mint 530 közreműködő van aláírva, és a hivatalos levelezőlista több ezer nevet tartalmaz.
2019 -ben a projekt karbantartási fázisba került, a fő fejlesztési erőfeszítést az utód VulkanSceneGraph projektre irányították.
Jellemzők
Jellemzők az 1.0 verzióban:
- Funkciógazdag és széles körben elfogadott jelenetdiagram megvalósítás
- A teljesítménynövelő funkciók támogatása
- Tekintse meg a frustumot , az apró funkciókat és az elzáródást
- Részletességi szint
- Állapotválogatás és lusta állapotfrissítés
- OpenGL gyors elérési utak és legújabb bővítmények
- Többszálas és adatbázis-optimalizálás
- OpenGL támogatás, 1.1 -től 2.0 -ig, beleértve a legújabb bővítményeket
- Szorosan összekapcsolt támogatás az OpenGL Shading Language -hez, amelyet a 3D -lemezekkel együtt fejlesztettek ki
- Támogatja a 2D kép- és 3D -adatbázisformátumok széles skáláját, és betöltők állnak rendelkezésre az olyan formátumokhoz, mint az OpenFlight , TerraPage , OBJ , 3DS , JPEG , PNG és GeoTIFF
- Részecske hatások
- Az anti-aliased TrueType szöveg támogatása
- Zökkenőmentes támogatása framebuffer tárgyak, pbuffers és frame buffer render-to-texture hatások
- Többszálas adatbázis lapozás támogatása, amely minden 3D adatbázis és képbetöltővel együtt használható
- Nagy léptékű, teljes földrajzi térinformatikai oldalú adatbázis -generálás
- Introspekciós támogatás az alapvető könyvtárakhoz, lehetővé téve a külső alkalmazások számára, hogy lekérdezzenek, lekérjenek, beállítsanak és működjenek a jelenetdiagram összes osztályán, egy általános felületen keresztül
- Többszálú és konfigurálható támogatás több CPU/több GPU géphez
A 2.8.3 verzió jellemzői
- Mac OS X 10.6 (Snow Leopard) támogatás
- ImageIO támogatás Mac OS X rendszeren
- 3DS fájlformátum exportálása és fájlkonverziója
- Integrált Autodesk FBX technológia
- Integrált FFmpeg támogatás a videofájlok tartalmának 3D alkalmazásokban való megjelenítéséhez.
- PLY fájlformátum támogatás
A 2.8.4 verzió jellemzői:
- VS2010 építési támogatás
A 3.0.0 verzió jellemzői:
- Az OpenGL ES 1.1 és az OpenGL ES 2.0 támogatása
- Az OpenGL 3.x és 4.x támogatása a kapcsolódó OpenGL bővítményekkel együtt
- Android támogatás táblagépeken és telefonokon
- IOS támogatás táblagépeken és telefonokon (a végfelhasználói alkalmazásokat már elfogadták az App Store -ban)
- A Present3D alkalmazás bevezetése a magával ragadó 3D bemutatókhoz
- Új bővíthető sorosítók, amelyek új .osgb bináris, .osgt ascii és .osgx xml fájl natív formátumokat biztosítanak
- Új általánosított, sorosítható metaadat -architektúra
- Új osgQt könyvtár, amely lehetővé teszi az integrációt! OpenSceneGraph a Qt -vel, beleértve a QWebKit webes böngészést.
- Új FBX bővítmény az Audodesk FBX DSK -n alapul, amely lehetővé teszi a .fbx 3D szerzői és cserélési formátum olvasását
- Új DirectShow beépülő modul filmek kezelésére Windows alatt
- Új pov beépülő modul a jelenetek POV-Ray formátumba történő exportálásához, lehetővé téve a POV-Ray használatát fotorealisztikus sugárkövetéshez
- Új réteg beépülő modul a rétegfájlok olvasásához
- Megújult 3ds beépülő modul .3ds fájlok olvasásához és írásához
- Felújított dxf bővítmény .dxf fájlok olvasására és írására
- Kakaó és 64 bites OSX felépítés támogatása
Stabil verzióverziók
| Változat | Kiadási dátum |
|---|---|
| 3.0 | 2013. február 5 |
| 3.2 | 2013. július 24 |
| 3.4 | 2015. július 20 |
| 3.4.1 | 2017. augusztus 28 |
| 3.6 | 2018. április 7 |
| 3.6.1 | 2018. május 28 |
| 3.6.2 | 2018. június 29 |
| 3.6.3 | 2018. szeptember 14 |
| 3.6.4 | 2019. július 26 |
| 3.6.5 | 2020. január 31 |
Építészet
A könyvtár architektúrája három fő részhalmazra osztható - az alapvető OpenSceneGraph könyvtárra, az osgViewer -re és a NodeKits készletre.
Mag
Az OpenSceneGraph könyvtár alapja tovább osztható négy fő modulra.
osg
Az OpenSceneGraph magja osztályokat és módszereket biztosít a jelenetgráf felépítéséhez és kezeléséhez . Tartalmaz különböző típusú csomópontokat , jelenetgeometriát, OpenGL állapot -absztrakciót, geometriai transzformációkat , valamint matematikai osztályokat a 2D és 3D vektor- és mátrixműveletekhez . A fejlett memóriakezelés is benne van.
OpenThreads
A OpenSceneGraph projekt egy threading könyvtár OpenThreads , ami egy könnyű cross-platform szál modell . Célja, hogy minimális és teljes körű objektum-orientált (OO) szál interfészt biztosítson a C ++ programozóknak. Lazán a Java szál API -n és a POSIX Threads szabványokon alapul .
Az OpenThreads architektúrája "cserélhető" szálmodellek köré épül, amelyeket a megosztott objektumkönyvtár fordítási időben határoz meg . Fontos megjegyezni, hogy bár a gyári mintázatú tervezést lehetett volna használni az általános interfész céljának eléréséhez , a programozónak el kellett volna rendelnie mind a 4 alapvető típust (szál, Mutex, Barrier és Állapot) a halom . A konstrukciók mögöttes konkrét megvalósításainak halom allokációjához kapcsolódó költségek miatt néhány platformon az ilyen elosztást elfogadhatatlannak ítélték a könyvtár eredeti írásakor, és így a gyári mintát nem használták.
Ehelyett egy kissé mogorva - de hatékony - technikát választottak a szükséges adatok/megvalósítás elrejtésének biztosítására . Ez a technika privát érvénytelenségi mutatókat használ az objektum privát adatainak beágyazásához. Az ürességmutatók valójában konkrét adatszerkezetekre mutatnak, de egységes felületet adnak a dso -nak.
Az OpenThreads tervezési célja az, hogy optimalizált implementációkat készítsen a platformra optimalizált többfeldolgozó konstrukciók használatával, mint például az IRIX-on használt sproc módszerek és a Windows szálak.
osgUtil
osgUtil tartalmaz teszi backend alkalmassága és segédprogramok gondozása jelenet gráf bejárása , renderelés optimalizálás és átalakítja a jelenet egy patak OpenGL API hívásokat. Ezenkívül a jelenetekkel való alapvető interakció eszközeit is biztosítja, például a tárgyak felvételét.
osgDB
Ennek a könyvtárnak a feladata a 3D modellfájlok betöltése. Sok 2D/3D adatformátum -manipulátort támogat . Több mint 50 különböző formátum támogatott - a leggyakoribbak a 3D adatformátumok, például COLLADA (.dae), LightWave (.lwo), Wavefront ( .obj ), OpenFlight (.flt), 3D Studio Max (.3ds), DirectX (.x) és még sokan mások. Az OpenSceneGraph saját natív ASCII .osg formátumot is biztosít . Vannak .osg formátumú exportőrök a Blender , a Maya és a 3D Studio MAX számára.
Támogatott kép formátumok közé .rgb, .gif , .jpg , .png , .tiff , .pic, .bmp , .dds , .tga és quicktime .
Ez a modul az I/O eszközök absztrakcióját is biztosítja. A többi fájlformátum-betöltő bővítmény az osgDB rendszerben van regisztrálva.
osgGA
Ez egy GUI absztrakciós könyvtár, amely különböző platformokhoz szükséges.
osgViewer
Az osgViewer Library gyors és egyszerű módot kínál a grafikus jelenetek megjelenítésére . Ezenkívül platformfüggetlen absztrakció a különböző ablakrendszer- interfészekhez.
osgProducer
Az OSG-t az osgProducer is szállítja, amely csak egy platformfüggetlen néző, amely támogatja a több grafikus kontextust és a többszálú meneteket .
NodeKits
A projektelosztás különféle úgynevezett NodeKits készleteket is tartalmaz . Ezek a gyakori problémák és gyakran használt fejlettebb 3D -s alkalmazáskomponensek és grafikus algoritmusok megoldásai. A legjelentősebbek közé tartozik
- osgAnimation - Csontvázmodellek használata, animálása és alakítása.
- osgFX - Speciális effektusok és képfeldolgozás.
- osgManipulator - Interaktív 3D jelenetmanipuláció.
- osgParticle - Fejlett részecskerendszer -használat.
- osgQt - Integráció a Qt eszköztárral és a QtGUI elemek beépítése az OSG alkalmazásokba.
- osgShadow - Keretrendszer az árnyékmegjelenítési technikákhoz.
- osgTerrain - Kiterjedt terepvisszaadás .
- osgText - Minőségi antialiased betűtípusok, TrueType és FreeType betűtípus -támogatás.
- osgVolume - Volume rendering és térfogati adatkezelési.
- osgWidget - Egyszerű grafikus felhasználói felület létrehozása.
Fogadás és örökbefogadás
Az OpenSceneGraph nem nyújt semmilyen funkciót a magasabb szintű "játék" logikához, csak renderelési eszköz. Számos teljes körű motorok a számítógépes játékok (vagy az úgynevezett komoly játékok ) létrehozásának segítségével OSG bázisként a grafikus megjelenítés, a leggyakoribb keret pedig Delta3D .
Az OpenSceneGraph tetejére számos szoftvertermék áll rendelkezésre; többek között a Virtual Terrain Project és a ViewTec TerrainView . Listája OSG felhasználók tartalmazza társaságok Boeing , a NASA , FlightGear , Norcontrol és még sokan mások.
Nyílt forrású közösségi szinten több projekt is OSG -t fogadott el megjelenítési háttérként:
- FlightGear (Flight Simulation szoftver)
- OpenMW ( nyílt forrású motor a Morrowind számára)
Az OpenSceneGraph OSG.JS nevű javascript/WebGL megvalósítást kapott , amelyet sok online 3D jelenetnéző használ, köztük a Sketchfab és a Clara.io .
Jelenleg a C ++ - ból a javascript -be való csomagolást is fejlesztik az Emscripten OGStudio -n keresztül .
Az OSG -t használó egyéb termékek között meg kell említeni:
- Remo 3D OSG jelenetszerkesztő
- http://www.palomino3d.org/
Lásd még
- OSG.JS
- OpenGL
- EMBEREVŐ ÓRIÁS
- Delta3D
- Irrlicht Motor
- Kristálytér
- Vizualizációs könyvtár
- OpenSG
- ossimPlanet
- Grome
- Nyissa meg az Inventort
- Unity (játékmotor)
Hivatkozások
Külső linkek
-
www
.openscenegraph - a projekt hivatalos weboldala.org - AlphaPixel OSG bináris fájlok - Windows, Mac és Linux x86 és x64 előre összeállított bináris fájlok.
- SigmaOSG - OpenSceneGraph oktatóanyagok (tartalmazza az összes korábbi OSGHelp anyagot a nyugdíjas OSGHelp webhelyről)
- Scenegraphs és Openscenegraph a 3D szoftverfejlesztéshez
- OpenSceneGraph - könyvtári információs weboldal a www.OpenGL.org webhelyen (a négy népszerűsített könyvtár egyike)
