OpenSceneGraph

OpenSceneGraph

Osglogo2.0.png
Osglogo2.0.png
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
  1. A Frustum , a Small Feature és az Occlusion Culling megtekintése
  2. Részletességi szint
  3. Állapotválogatás és lassú állapotfrissítés
  4. Gyors OpenGL elérési utak és a legújabb fejlesztések
  5. 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

Image
Az OpenSceneGraph architektúra áttekintése

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

  1. ^ 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 ).
  2. Martz, P .: OpenSceneGraph gyors útmutató. Louisville, USA, 2007.
  3. http://www.openscenegraph.org/projects/osg/wiki/Support/History
  4. vulkán Scenegraph projekt. 2018. december 11, elérhető: 2021. április 29 .
  5. ^ 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 .
  6. ^ 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 .

web Linkek