OpenSceneGraph - OpenSceneGraph

OpenSceneGraph
Osglogo2.0.png
Stabil kiadás
3.6.5 / 2020. január 31 .; 18 hónapja ( 2020-01-31 )
Adattár Szerkessze ezt a Wikidatában
Beírva C ++
Operációs rendszer Többplatformos
típus 3D grafika
Engedély OpenSceneGraph nyilvános licenc ( LGPL alapú)
Weboldal www .openscenegraph .org
www .openscenegraph .com

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

Image
Az opencenegraph architektúra áttekintése.

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
    1. Tekintse meg a frustumot , az apró funkciókat és az elzáródást
    2. Részletességi szint
    3. Állapotválogatás és lusta állapotfrissítés
    4. OpenGL gyors elérési utak és legújabb bővítmények
    5. 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:

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:

Lásd még

Hivatkozások

Külső linkek