OpenSceneGraph
| OpenSceneGraph
| |
|---|---|
| |
| |
| Alapadatok
| |
| Jelenlegi verzió | 3.6.5 (2020. január 31.) |
| operációs rendszer | Cross-platform |
| programozási nyelv | C ++ |
| kategória | Tudományos vizualizáció , programkönyvtár |
| Engedély | OpenSceneGraph nyilvános licenc ( LGPL alapú) |
| Németül beszélő | Nem |
| www.openscenegraph.org | |
Az OpenSceneGraph egy nyílt forráskódú jelenetgrafikon-rendszer (SG), amely valós idejű grafikus alkalmazásokban működik, például: B. FlightGear-t használnak.
Az OpenSceneGraph C ++ nyelven íródott , az OpenGL- t használja a 3D grafika alapjául, és különféle operációs rendszereken fut, beleértve a Microsoft Windows , Mac OS X , Linux , IRIX , Solaris és FreeBSD operációs rendszereket .
Annak ellenére, hogy hasonló nevet ad az OpenSG színtér-grafikon rendszerhez, és körülbelül ugyanabban az időben indult, két különböző és független projektről van szó.
történelem
Az OpenSceneGraph projektet 1998-ban Don Burns kezdeményezte. Robert Osfield 1999-ben csatlakozott a projekthez, és a kész komponensek Microsoft Windows rendszerre történő átültetésén dolgozott. A projekt 1999 szeptemberében nyílt forráskódúvá vált, és létrehozták a projekt hivatalos weboldalát. Az év vége felé Osfield átvette a projektet, és megkezdte a meglévő kódbázis átfogó átalakítását, amelynek középpontjában a modernizáció állt, és beépítették a modern C ++ szabványokat és tervezési mintákat.
2001 áprilisában, a növekvő felhasználói közösség és a közérdek figyelembevételével, Robert Osfield megalapította az OpenSceneGraph Professional Services szolgáltatást, amely kereskedelmi támogatást, tanácsadást és képzést nyújt. Ez a projekt teljes professzionalizálását jelzi.
Az OpenSceneGraph első hivatalos stabil verziója az 1.0 volt, amelyet 2005-ben adtak ki. Egy kibővített változata 2.0 követte 2007-ben, és támogatást ad a többmagos processzorok és multi-GPU rendszerek, több fontos NodeKits és használata az egységes multi-platform kiépítése rendszer CGyõzõdjön . Könyveket és felhasználói kézikönyveket vezettek be.
Azóta a projekt gyorsan növekszik és egyre népszerűbb. A jelenlegi stabil kiadás alapján több mint 530 közreműködő van aláírva, és a hivatalos levelezőlistán több ezer név szerepel.
2019-ben a projekt karbantartási szakaszba került, a fő fejlesztési munkát a VulkanSceneGraph követő projektre helyezték át.
jellemzők
Jellemzők az 1.0 verzióban:
- Funkciógazdag és széles körben használt jelenetgrafikon megvalósítás
- A teljesítménynövelő funkciók támogatása
- A Frustum , a Small Feature és az Occlusion Culling megtekintése
- Részletességi szint
- Állapotválogatás és lassú állapotfrissítés
- Gyors OpenGL elérési utak és a legújabb fejlesztések
- Több szál és adatbázis optimalizálás
- Az OpenGL támogatása 1.1-től 2.0-ig, a legújabb fejlesztésekkel együtt
- Szorosan összekapcsolt támogatás az OpenGL árnyékoló nyelvhez, amelyet a 3Dlabs együttműködésével fejlesztettek ki
- Támogatás sokféle 2D kép és 3D adatbázis formátumhoz, olyan betöltőkkel, mint például az OpenFlight, a TerraPage, az OBJ , a 3DS, a JPEG , a PNG és a GeoTIFF
- részecske hatásai
- Aliasított TrueType szöveg támogatása
- Zökkenőmentes támogatás a framebuffer objektumok, a pufferek és a framebuffer render-textúra effektusok számára
- Többszálú adatbázis-lapozó támogatás, amely az összes 3D-s adatbázis- és képbetöltővel együtt használható
- Kihelyezett adatbázis-generálás a világ nagy földrajzi területeihez
- Introspekciós támogatás az alapkönyvtárak számára, amely lehetővé teszi a külső alkalmazások számára, hogy általános felületen keresztül lekérdezzenek, fogadjanak, beállítsanak és szerkesszenek minden jelenetet a jelenetgrafikonon.
- Többszálas és konfigurálható támogatás több CPU / GPU géphez
A 2.8.3 változat jellemzői
- Támogatása Mac OS X 10.6 (Snow Leopard)
- ImageIO támogatás Mac OS X rendszeren
- 3DS fájlformátum exportálása és átalakítása
- Integrált Autodesk FBX technológia
- Integrált FFmpeg támogatás a videofájlok tartalmának megjelenítéséhez 3D alkalmazásokban
- A PLY fájlformátum támogatása
A 2.8.4 változat jellemzői:
- VS2010 build támogatás
Jellemzők a 3.0.0 verzióban:
- Az OpenGL ES 1.1 és az OpenGL ES 2.0 támogatása
- Az OpenGL 3.x és 4.x, valamint a kapcsolódó OpenGL kiterjesztések támogatása
- Az Android támogatása táblagépeken és telefonokon
- Támogatása iOS a tabletták és telefonok (végfelhasználói alkalmazások már elfogadott a App Store )
- A Present3D alkalmazás bemutatása magával ragadó 3D prezentációkhoz
- Új kiterjeszthető sorosítók az új natív formátumú .osgb bináris, .osgt ascii és .osgx xml fájlokért
- Új általánosított, szerializálható metaadat-architektúra
- Új osgQt könyvtár, amely lehetővé teszi az! OpenSceneGraph és Qt egyszerű integrálását, beleértve a webböngészést a QWebKit-en keresztül.
- Új FBX beépülő modul az Autodesk FBX DSK alapján, amely lehetővé teszi a .fbx 3D szerzői és csereformátum olvasását
- Új directshow plug-in a filmek kezeléséhez Windows rendszeren
- Új pov plugin egy jelenet POV-Ray formátumba történő exportálásához, amely lehetővé teszi a POV-Ray használatát fotó-realisztikus sugárkövetéshez
- Új réteg plugin a ply fájlok olvasásához
- Újratervezett 3ds plugin .3ds fájlok olvasásához és írásához
- Felülvizsgált dxf plug-in .dxf fájlok olvasására és írására
- A Cocoa és a 64 bites OSX build támogatása
építészet
Itt található az OpenSceneGraph architektúra áttekintése: A könyvtár architektúrája három fő részre bontható: az alapvető OpenSceneGraph könyvtár, az osgViewer és számos NodeKits.
mag
Az OpenSceneGraph könyvtár alapjait további négy fő modulra oszthatjuk fel.
Osg
Az OpenSceneGraph magja osztályokat és módszereket kínál a jelenet grafikonjának összeállításához és kezeléséhez . Különféle csomóponttípusokat , jelenetgeometriát, OpenGL állapot absztrakciót, geometriai transzformációkat és matematikai osztályokat tartalmaz a 2D és 3D vektor és mátrix műveletekhez . Fejlett memóriakezelés is tartozik hozzá.
OpenThreads
A OpenSceneGraph projekt egy threading könyvtár, Open szálak egy könnyű, cross-platform menet - modell jelenti. Célja egy minimális és teljes objektum-orientált (OO) szál interfész biztosítása a C ++ programozók számára. Lazán alapul a Java szál API-ján és a POSIX szál szabványain.
Az OpenThreads architektúrája "felcserélhető" szálmodelleken alapul, amelyeket egy megosztott objektumkönyvtárban definiálnak fordításkor . Fontos megjegyezni, hogy bár egy gyári minta kialakítása felhasználható lett volna egy általános interfész céljának eléréséhez , ehhez a programozónak el kellett volna érnie mind a 4 alaptípust (Thread, Mutex, Barrier és Condition), amelyeket a a kupac. Mivel ezeknek a konstrukcióknak az egyes platformokon történő konkrét megvalósításainak halomelosztása költséges volt, az ilyen felosztást elfogadhatatlannak tartották a könyvtár eredeti írásakor, ezért a gyári mintát nem használták.
Ehelyett egy kissé abszurd - de hatékony - technikát választottak a szükséges adatok / megvalósítások elrejtésére. Ez a technika privát void mutatókat használ az objektum privát adatainak beágyazására. Az érvénytelen mutatók valójában konkrét adatstruktúrákra mutatnak, de egységes interfészt kínálnak a DSO-nak.
Az OpenThreads tervezési célja olyan optimalizált megvalósítások létrehozása, amelyek platformoptimalizált többprocesszoros konstrukciókat használnak, például: B. az IRIX-en használt Sproc módszerek és Windows szálak.
OsgUtil
Az osgUtil renderelést tartalmaz - a backend funkcionalitása és az átkelés körüli segédprogramok gondoskodnak a jelenet grafikonjáról, a megjelenítés optimalizálásáról és a jelenet átalakításáról az OpenGL hívások folyamában. A jelenettel való alapvető interakció eszközeit is biztosítja, mint pl B. az objektumok kiválasztása.
OsgDB
Az OpenSceneGraph adatbázis-betöltők nagy gyűjteményével és sok manipulátorral is rendelkezik 2D / 3D adatformátumokhoz . Több mint 50 különböző formátum támogatott - a leggyakoribb 3D adatformátumok, mint például a 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 kínál . Vannak .osg formátumú exportőrök a Blender , a Maya és a 3D Studio MAX számára.
A támogatott képformátumok: .rgb, .gif , .jpg , .png , .tiff , .pic, .bmp , .dds , .tga és a quicktime.
Ez a modul az I / O eszközök absztrakcióját is kínálja.
OsgViewer
Az osgViewer könyvtár gyors és egyszerű módot kínál a grafikus jelenet megjelenítésére . Ez egy platformfüggetlen absztrakció a különböző ablakrendszer- interfészek számára is.
NodeKits
A projektterjesztés nagyszámú úgynevezett NodeKits-t is tartalmaz. Ezek megoldások a gyakori problémákra és az általánosan használt, fejlettebb 3D alkalmazás-összetevőkre és grafikus algoritmusokra. A legfontosabbak közé tartozik
- osgAnimation - Csontvázmodellek, animációk és morfondírozás.
- osgFX - speciális effektusok és utómunka.
- osgManipulator - Interaktív 3D jelenet manipuláció.
- osgParticle - A részecskerendszer kiterjesztett használata .
- osgQt - Integráció a Qt Toolkit- rel és a QtGUI elemek integrálása az OSG alkalmazásokba.
- osgShadow - Az árnyékmegjelenítési technikák kerete.
- osgTerrain - Kiterjedt terepmegjelenítés.
- osgText - Kiváló minőségű anti-aliasing betűtípusok, a TrueType és a FreeType betűtípusok támogatása.
- osgVolume - Volume rendering és a manipuláció a térfogati adatokat.
- osgWidget - Egyszerű GUI készítés.
Egyéni bizonyíték
- ^ A b Anne Ruas, Christopher Gold: Haladás a térbeli adatok kezelésében: 13. nemzetközi szimpózium a térbeli adatok kezeléséről . Springer, 2008, ISBN 978-3-540-68566-1 , pp. 370 ( google.com ).
- ↑ Martz, P .: OpenSceneGraph gyors útmutató. Louisville, USA, 2007.
- ↑ http://www.openscenegraph.org/projects/osg/wiki/Support/History
- ↑ vulkán Scenegraph projekt. 2018. december 11, elérhető: 2021. április 29 .
- ^ OSG News. (Az interneten már nem érhető el.) 2010. február 19, az eredetiről 2011. június 9 - én archiválva ; Letöltve: 2010. február 20 .
- ^ Az OpenSceneGraph új funkciókat ad a 3D grafikus alkalmazásokhoz. 2010. április 5.; az eredetiből 2010. április 15 -én archiválva ; Letöltve: 2010. április 10 .
