110 likes | 194 Views
Bakoš Nikola 37618/08-R. Sveučilište u Zagrebu Fakultet organizacije i informatike Varaždin. 19.1.2010. Uvod. Povijest 1998. Don Burns Započeo kao hobi projekt: simulator leta zmajem 1999. Robert Osfield Rujan, 1999. open source
E N D
Bakoš Nikola 37618/08-R Sveučilište u Zagrebu Fakultet organizacije i informatike Varaždin 19.1.2010
Uvod • Povijest • 1998. Don Burns • Započeo kao hobi projekt: simulator leta zmajem • 1999. Robert Osfield • Rujan, 1999. • opensource • Krajem 2001. godine Don je osnovao firmu Andes Computer Engineering
OpenSceneGraph • Portable • high level graphics toolkit for the development of high peformance graphics applications • Simulatori leta, igre, prividna stvarnost, znanstvena vizualizacija • Pruža objektno orijentirano okruženje • Oslobađa programera od implementacije i optimizacije poziva grafike niskog nivoa • Pruža mnoge druge dodatne alate za brz razvoj grafičkih aplikacija OpenSceneGraph OpenGL Jezgra OS, UNIX
Scene Graph • Jednostavan poredak čvorova koji hijerarhijski reprezentira 3D scenu • Struktura stabla • Korijen – obuhvaća cijeli virtualni prostor • Čvorovi – transformacije i stanja iscrtavanja • Listovi – geometrija (… tijela …) • Scene Graph se kreira i održava kroz cijelu aplikaciju (njezin rad) dok se kod OpenGLaplikacija svaki frameiscrtava ispočetka
Scene Graph … • NIJE! (ali može biti dio) • Game engine • Simulationengine • Primarni fokus mu je reprezentacija 3D svijeta i njegovo efikasno renderiranje • Fizički modeli, detekcija sudara i zvuk prepušteni su drugima
Performanse[OpenSceneGraph] • Frustrumculling • Occlusion culling • Small feature culling • Level Of Detail (LOD) nodes • State sorting • Vertex arrays • Display lists (as part of the core scene graph)
Produktivnost[OpenSceneGraph] • Učahuruje osnovnu OpenGL funkcionalnost • Omogućava optimizaciju iscrtavanja • Brzo kombiniranje nekoliko poziva objekata umjesto više desetaka linija koda sa OpenGL • Uzorak dizajna Composite(struktura stabla) • Proširivost, čistoća koda, laka adaptibilnost, kombiniranje s ostalim bibliotekama i pluginovima
Portabilnost[OpenSceneGraph] • Dizajniran tako da ima minimalni broj ovisnosti, nešto više nego Standardni C++ i OpenGL Skalabilnost • Podržava više grafičkih konteksta (OpenGLDisplayLists i objekte teksture)
Biblioteke • CoreLibraries • osg-coreOpenSceneGraphlibrary • osgUtil - utilitylibrary • osgDB - databasereadingandwritinglibrary • Nodekits • osgFX - SpecialeffectsframeworkNodeKit • osgParticle - ParticleSystemNodeKit • osgSim - VisualsimulationNodeKit • osgTerrain - TerraingenerationNodeKit • osgText - TrueTypetextNodeKit • WindowingUtilitylibraries • osgGA - GuiAbstractionlibrary • osgProducer - ViewerlibraryintegratingOpenSceneGraphwithProducer
OpenSceneGraphdistribucija • Aplikacije • osgviewer - scene graph viewer • osgconv - database conversion tool • osgarchive - scene graph archiving tool • osgdem - geospecific terrain database generation tool • Plugins • List of available 3d database plugins : • 3dc / ac3d / directx / dw / flt / geo / Inventor / ive / lib3ds / logo / lwo / lws / md2 / obj / osg / pfb • List of available movie & image plugins • tga / tiff / quicktime / rgb / pic / png / pnm / bmp / dds / gdal / gif / jp2 / jpeg / mpeg • Stereo visualization
DEMO, primjeri • Q&A