OpenSceneGraph
| OpenSceneGraph
| |
|---|---|
| |
| |
| Základní data
| |
| Aktuální verze | 3.6.5 (31. ledna 2020) |
| operační systém | Cross-platform |
| programovací jazyk | C ++ |
| kategorie | Vědecká vizualizace , programová knihovna |
| Licence | Veřejná licence OpenSceneGraph (na základě LGPL ) |
| Německy mluvící | Ne |
| www.openscenegraph.org | |
OpenSceneGraph je open source grafický systém scén (SG), který pracuje v grafických aplikacích v reálném čase, jako jsou: B. FlightGear je použité.
OpenSceneGraph byl napsán v C ++ , používá OpenGL jako základ pro 3D grafiku a běží na různých operačních systémech včetně Microsoft Windows , Mac OS X , Linux , IRIX , Solaris a FreeBSD .
Ačkoli má podobný název jako systém grafů scén OpenSG a byl spuštěn přibližně ve stejnou dobu, jedná se o dva různé a nezávislé projekty.
Dějiny
Projekt OpenSceneGraph zahájil v roce 1998 Don Burns. Robert Osfield se k projektu připojil v roce 1999 a pracoval na portování hotových komponent do systému Microsoft Windows. Projekt se stal otevřeným zdrojem v září 1999 a byl vytvořen oficiální web projektu. Ke konci roku Osfield převzal projekt a zahájil rozsáhlou rekonstrukci stávající kódové základny se zaměřením na modernizaci a začlenění moderních standardů C ++ a návrhových vzorů.
V dubnu 2001 založil Robert Osfield s ohledem na rostoucí komunitu uživatelů a veřejný zájem OpenSceneGraph Professional Services, která poskytuje komerční podporu, poradenství a školení. To znamená úplnou profesionalizaci projektu.
První oficiální stabilní verzí OpenSceneGraph byla verze 1.0, která byla vydána v roce 2005. V roce 2007 následovala rozšířená verze 2.0, která přidala podporu pro vícejádrové a více GPU systémy, několik důležitých NodeKits a použití jednotného multiplatformního systému CMake . Byly představeny knihy a uživatelské příručky.
Od té doby se projekt rychle rozrůstá a je stále populárnější. Pod aktuálním stabilním vydáním je podepsáno více než 530 přispěvatelů a oficiální seznam adres má tisíce jmen.
V roce 2019 byl projekt převeden do fáze údržby, přičemž hlavní vývojové práce byly přesunuty do navazujícího projektu VulkanSceneGraph.
funkce
Funkce ve verzi 1.0:
- Implementace grafu scény bohatá na funkce a široce používaná
- Podpora funkcí zvyšujících výkon
- Pohled komolého kužele , Small Feature, a skusu Culling
- Úroveň detailu
- Třídění stavu a zpomalená aktualizace stavu
- Rychlé cesty OpenGL a nejnovější vylepšení
- Multi-threading a optimalizace databáze
- Podpora OpenGL, od 1,1 do 2,0, včetně nejnovějších vylepšení
- Úzce spojená podpora pro OpenGL Shading Language, vyvinutá ve spolupráci s 3Dlabs
- Podpora široké škály 2D obrazových a 3D databázových formátů s zavaděči pro formáty jako OpenFlight, TerraPage, OBJ , 3DS, JPEG , PNG a GeoTIFF
- Účinky částic
- Podpora vyhlazeného textu TrueType
- Bezproblémová podpora pro objekty framebuffer , pbuffery a efekty framebuffer vykreslení na texturu
- Podpora stránkování databáze s více vlákny, kterou lze použít ve spojení se všemi 3D databázovými a obrazovými zavaděči
- Generování externě zajišťované databáze pro velké geografické oblasti po celém světě
- Podpora introspekce základních knihoven, která umožňuje externím aplikacím dotazovat, přijímat, nastavovat a upravovat všechny třídy v grafu scény prostřednictvím obecného rozhraní
- Vícevláknová a konfigurovatelná podpora pro více CPU / více GPU strojů
Funkce ve verzi 2.8.3
- Podpora pro Mac OS X 10.6 (Snow Leopard)
- Podpora ImageIO v systému Mac OS X
- Export a převod formátu 3DS
- Integrovaná technologie Autodesk FBX
- Integrovaná podpora FFmpeg pro zobrazení obsahu video souborů v 3D aplikacích
- Podpora formátu souboru PLY
Funkce ve verzi 2.8.4:
- Podpora sestavení VS2010
Funkce ve verzi 3.0.0:
- Podpora OpenGL ES 1.1 a OpenGL ES 2.0
- Podpora OpenGL 3.xa 4.x, jakož i přidružených rozšíření OpenGL
- Podpora pro Android na tabletech a telefonech
- Podpora pro iOS na tabletech a telefonech (aplikace koncových uživatelů již byly přijaty v App Store )
- Představení aplikace Present3D pro pohlcující 3D prezentace
- Nové rozšiřitelné serializátory poskytující nové nativní formáty .osgb binární, .osgt ascii a .osgx xml soubor
- Nová zobecněná architektura serializovatelných metadat
- Nová knihovna osgQt, která umožňuje snadnou integraci! OpenSceneGraph s Qt, včetně procházení webu pomocí QWebKit.
- Nový zásuvný modul FBX založený na aplikaci Autodesk FBX DSK, která umožňuje čtení formátu .fbx 3D pro vytváření a výměnu
- Nový plug-in directshow pro zpracování filmů ve Windows
- Nový plugin POV pro export scény do formátu POV-Ray, který umožňuje použití POV-Ray pro fotorealistické sledování paprsku
- Nový plugin pro čtení souborů ply
- Přepracovaný plugin 3ds pro čtení a zápis souborů .3ds
- Upravený zásuvný modul dxf pro čtení a zápis souborů .dxf
- Podpora pro Cocoa a 64bit OSX build
architektura
Zde je přehled architektury OpenSceneGraph: Architekturu knihovny lze rozdělit na tři hlavní části - základní knihovnu OpenSceneGraph, osgViewer a řadu NodeKits.
jádro
Základ knihovny OpenSceneGraph lze dále rozdělit do čtyř hlavních modulů.
Osg
Jádro OpenSceneGraph poskytuje třídy a metody pro konstrukci a manipulaci s grafem scény . Obsahuje třídy, které představují různé typy uzlů , geometrii scény, abstrakci stavu OpenGL , geometrické transformace a matematické třídy pro 2D a 3D vektorové a maticové operace . Zahrnuta je také pokročilá správa paměti .
OpenThreads
Projekt OpenSceneGraph obsahuje knihovnu vláken, otevřená vlákna, která představuje odlehčený křížový podproces - model . Je zamýšleno poskytnout minimální a úplné objektově orientované (OO) podprocesové rozhraní pro programátory C ++ . Je volně založen na API podprocesů Java a standardech podprocesů POSIX.
Architektura z OpenThreads je založen na „zaměnitelných“ Závit modelů, které jsou definovány v sdílené knihovny objektů v době kompilace . Je důležité si uvědomit, že zatímco k dosažení cíle obecného rozhraní bylo možné použít návrh továrního vzoru , vyžadovalo by to programátor přístup ke každému ze 4 základních typů (Thread, Mutex, Barrier a Condition), které přiděluje hromada. Z důvodu nákladů na přidělení haldy podkladových konkrétních implementací těchto konstrukcí na některých platformách bylo takové přidělení v době, kdy byla tato knihovna původně napsána, považováno za nepřijatelné, a proto nebyl použit tovární vzor.
Místo toho byla zvolena poněkud absurdní - ale účinná - technika, která skryla potřebná data / implementace. Tato technika využívá soukromé void ukazatele k zapouzdření soukromých dat objektu. Ukazatele void ve skutečnosti ukazují na konkrétní datové struktury, ale nabízejí jednotné rozhraní s dso.
Cílem designu OpenThreads je vytvořit optimalizované implementace, které používají multiprocesní konstrukce optimalizované pro platformu, jako například: B. metody Sproc a vlákna Windows použitá v systému IRIX .
OsgUtil
osgUtil zahrnuje vykreslování - funkce backendu a nástroje kolem přechodu se postarají o graf scény, optimalizaci vykreslování a transformaci scény v proudu volání OpenGL. Poskytuje také prostředky základní interakce se scénou, jako např B. výběr objektů.
OsgDB
OpenSceneGraph také přichází s velkou sbírkou databázových zavaděčů a mnoha manipulátorů pro 2D / 3D datové formáty . Podporováno je více než 50 různých formátů - nejběžnější 3D datové formáty jako COLLADA (.dae), LightWave (.lwo), Wavefront (.obj), OpenFlight (.flt), 3D Studio Max (.3ds), DirectX ( .x) a mnoho dalších. OpenSceneGraph také nabízí svůj vlastní nativní formát ASCII -.osg. Existují vývozci ve formátu .osg pro Blender , Maya a 3D Studio MAX.
Podporované formáty obrázků jsou .rgb, GIF , JPG , PNG , TIFF , .pic, BMP , .dds , TGA a QuickTime.
Tento modul také nabízí abstrakci I / O zařízení.
OsgViewer
Knihovna osgViewer nabízí rychlý a snadný způsob vizualizace grafické scény. Je to také abstrakce nezávislá na platformě pro různá rozhraní okenního systému .
NodeKits
Distribuce projektu také obsahuje velké množství takzvaných NodeKitů. Jedná se o řešení běžných problémů a běžně používaných, pokročilejších komponent 3D aplikací a grafických algoritmů. Mezi nejdůležitější patří
- osgAnimation - Používání modelů kostry, animace a proměny.
- osgFX - speciální efekty a následné zpracování.
- osgManipulator - Interaktivní manipulace s 3D scénou.
- osgParticle - Rozšířené použití částicového systému .
- osgQt - integrace s Qt Toolkit a integrace prvků QtGUI do aplikací OSG.
- osgShadow - rámec pro techniky vykreslování stínů.
- osgTerrain - Rozsáhlé vykreslování terénu.
- osgText - Vysoce kvalitní písma proti vyhlazení, podpora písem TrueType a FreeType.
- osgVolume - objemové vykreslování a manipulace s objemovými daty.
- osgWidget - jednoduché vytváření grafického uživatelského rozhraní .
Individuální důkazy
- ^ B Anne Ruas, Christopher Gold: pokrok při prostorových dat zacházení: 13. Mezinárodní sympozium o prostorových dat Handling . Springer, 2008, ISBN 978-3-540-68566-1 , str. 370 ( google.com ).
- ↑ Martz, P.: Rychlý průvodce OpenSceneGraph. Louisville, USA, 2007.
- ↑ http://www.openscenegraph.org/projects/osg/wiki/Support/History
- ↑ Projekt scenérie sopky. 11. prosince 2018, zpřístupněno 29. dubna 2021 .
- ^ OSG novinky. (Již není k dispozici online.) 19. února 2010, archivováno od originálu 9. června 2011 ; Citováno 20. února 2010 .
- ^ OpenSceneGraph přidává nové funkce do 3D grafických aplikací. 5. dubna 2010; Archivováno od originálu 15. dubna 2010 ; Citováno 10. dubna 2010 .
