OpenSceneGraph - OpenSceneGraph - Wikipedia

OpenSceneGraph
Osglogo2.0.png
Тұрақты шығарылым
3.6.5 / 31 қаңтар 2020 ж; 10 ай бұрын (2020-01-31)[1]
Репозиторий Мұны Wikidata-да өңдеңіз
ЖазылғанC ++
Операциялық жүйеКросс-платформа
Түрі3D графика
ЛицензияOpenSceneGraph қоғамдық лицензиясы (LGPL негізделген)
Веб-сайтwww.осценеграф.org
www.осценеграф.com

OpenSceneGraph болып табылады ашық көзі 3D графика қолданбалы бағдарламалау интерфейсі,[2] сияқты өрістерде қосымшаны әзірлеушілер қолданады визуалды модельдеу, компьютер ойындары, виртуалды шындық, ғылыми көрнекілік және модельдеу.

Құралдар жинағы стандартта жазылған C ++ қолдану OpenGL,[2] және әр түрлі жұмыс істейді операциялық жүйелер оның ішінде Microsoft Windows, macOS, Linux, IRIX, Solaris және FreeBSD. 3.0.0 нұсқасынан бастап, OpenSceneGraph мобильді платформаларға арналған қосымшаларды әзірлеуді қолдайды, атап айтқанда iOS және Android.

Тарих

OpenSceneGraph жобасы 1998 жылы Дон Бернстің бастамашылығымен жүзеге асты. Роберт Осфилд 1999 жылы Microsoft Windows үшін дайын компоненттерді тасымалдау бойынша жұмыс істеп, жобаға қосылды. Жоба 1999 жылы және ресми түрде ашық дереккөзге көшті жобаның веб-сайты құрылды. Жыл соңына қарай Осфилд жобаны қабылдап, қазіргі заманғы C ++ стандарттарын қолдана отырып, модернизацияға баса назар аудара отырып, қолданыстағы кодтық базаны кеңінен қайта құруды бастады. дизайн үлгілері.

2001 жылдың сәуірінде пайдаланушылардың өсіп келе жатқан қауымдастығы мен қоғамның қызығушылығын ескере отырып, Роберт Осфилд OpenSceneGraph Professional Services құрды, коммерциялық қолдау, кеңес беру және оқыту қызметтерін ұсынды. Бұл жобаның толық кәсібилігін білдіреді.

OpenSceneGraph-тың алғашқы ресми тұрақты нұсқасы 2005 жылы шыққан 1.0 нұсқасы болды. 2007 жылы кеңейтілген 2.0 нұсқасы көп ядролы және көп-gpu жүйелеріне, бірнеше маңызды NodeKits-ке және бірыңғай мультиплатформалық құрастыру жүйесін қолдана отырып қосылды. CMake. Кітаптар мен қолданушы анықтамалықтары таныстырылды.[3]

Жоба содан бері тез дамып, танымал бола бастады. Ағымдағы тұрақты нұсқамен қол қойылған 530-дан астам қатысушы бар және ресми тарату тізімінде мыңдаған аттар бар.[4]

Ерекшеліктер

Ашық сәулет сәулетіне шолу.

1.0 нұсқасындағы ерекшеліктер:[5]

  • Мүмкіндікке бай және кеңінен қабылданған көрініс графигі іске асыру
  • Өнімділікті арттыру мүмкіндіктерін қолдау
    1. Қарау, шағын ерекшелігі және окклюзияны жою
    2. Бөлшек деңгей
    3. Мемлекеттік сұрыптау және жалқау күйді жаңарту
    4. OpenGL жылдам жолдары мен соңғы кеңейтімдері
    5. Көп ағынды және дерекқорды оңтайландыру
  • Соңғы кеңейтімдерді қосқанда 1.1-ден 2.0-ға дейін OpenGL-ге қолдау
  • 3Dlab-пен бірге жасалған OpenGL Shading Language-ті тығыз байланыстыратын қолдау
  • Сияқты форматтар үшін қол жетімді жүктеушілері бар 2D кескін мен дерекқордың 3D форматтарының кең спектрін қолдау OpenFlight, TerraPage, OBJ, 3DS, JPEG, PNG және GeoTIFF
  • Бөлшектердің әсерлері
  • Бүркеншікке қарсы қолдау TrueType мәтін
  • Мінсіз қолдау фрейм-буфер нысандар, буферлер және рамалық буфер текстураға әсер етеді
  • Барлық деректер базасымен және кескін жүктеушілермен бірге қолдануға болатын көп ағынды мәліметтер базасын пейджингке қолдау
  • Ірі масштабтағы, бүкіл жердегі геокеңістіктік рельефті деректер базасының генерациясы
  • Сыртқы қосымшаларға жалпы интерфейс арқылы сахна графигіндегі барлық сыныптарға сұраныс жасауға, алуға, орнатуға және жұмыс істеуге мүмкіндік беретін негізгі кітапханаларға арналған интроспекциялық қолдау
  • Бірнеше CPU / бірнеше GPU машиналары үшін көп бұрандалы және конфигурацияланған қолдау

2.8.3 нұсқасындағы ерекшеліктер[6]

  • Mac OS X 10.6 (Snow Leopard) қолдау
  • ImageIO қолдауы қосулы Mac OS X
  • 3DS форматының экспорты және файлды түрлендіру
  • Кіріктірілген Autodesk FBX технологиясы
  • 3D қосымшаларында бейне файл мазмұнын көрсетуге арналған біріктірілген FFmpeg қолдауы.
  • PLY файл пішімін қолдау

2.8.4 нұсқасындағы ерекшеліктер:[7]

  • VS2010 құрастыру қолдау

3.0.0 нұсқасындағы ерекшеліктер:[8]

  • OpenGL ES 1.1 және OpenGL ES 2.0 қолдауы
  • OpenGL 3.x және 4.x қолдауымен байланысты OpenGL кеңейтімдерімен бірге
  • Планшеттер мен телефондарда Android қолдау
  • Планшеттер мен телефондарда IOS-қа қолдау көрсету (соңғы қолданушылардың қосымшалары App Store-да қабылданған)
  • Иммерсивті 3D презентацияларға арналған Present3D қосымшасын енгізу
  • .Osgb екілік, .osgt ascii және .osgx xml файлдарының жаңа форматтарын беретін жаңа кеңейтілетін сериализаторлар.
  • Жаңа жалпыланған метадеректер архитектурасы
  • OpenSceneGraph-ті Qt-пен, соның ішінде QWebKit арқылы веб-шолуды қоса, жаңа osgQt кітапханасы.
  • .Fbx 3D авторлық және өзара алмасу пішімін оқуға мүмкіндік беретін Audodesk FBX DSK негізіндегі жаңа FBX плагині.
  • Windows астында фильмдерді өңдеуге арналған жаңа directshow плагині
  • POV-Ray форматына көріністі экспорттауға арналған жаңа pov плагині, бұл POV-Ray-ді фото-шындық сәулесін бақылау үшін пайдалануға мүмкіндік береді.
  • Қатпарлы файлдарды оқуға арналған жаңа қабатты плагин
  • .3ds файлдарын оқуға және жазуға арналған 3ds плагині жаңартылды
  • .Dxf файлдарын оқуға және жазуға арналған жаңартылған dxf плагині
  • Какао мен 64bit OSX құрастыруға қолдау

Тұрақты нұсқалардың шығу тарихы

НұсқаШығару күні
3.05 ақпан 2013[9]
3.224 шілде 2013 ж[10]
3.420 шілде 2015[11]
3.4.128 тамыз 2017[12]
3.67 сәуір 2018[13]
3.6.128 мамыр 2018
3.6.229 маусым 2018
3.6.314 қыркүйек 2018 жыл
3.6.426 шілде 2019
3.6.531 қаңтар 2020

Сәулет

Кітапхана архитектурасын үш негізгі ішкі топқа бөлуге болады - OpenSceneGraph негізгі кітапханасы, osgViewer және NodeKits жиынтығы.

Негізгі

OpenSceneGraph кітапханасының негізін төрт негізгі модульге бөлуге болады.

осг

OpenSceneGraph негізін ұсынады сыныптар құру және манипуляциялау әдістері көрініс графигі. Онда әртүрлі типтерін көрсететін сыныптар бар түйіндер, көрініс геометриясы, OpenGL мемлекеттік абстракция, геометриялық түрлендірулер, сондай-ақ 2D және 3D математикалық сабақтар вектор және матрицалық амалдар. Озат жадыны басқару сонымен қатар енгізілген.

OpenThreads

OpenSceneGraph жобасында ағынды кітапхана бар, OpenThreads, бұл жеңіл кросс-платформа жіп модель. Ол үшін нысанға бағытталған (OO) интерфейстің минималды және толық интерфейсін қамтамасыз етуге арналған C ++ бағдарламашылар. Ол еркін модельденген Java ағынды API және POSIX ағындарының стандарттары.

The сәулет OpenThreads шектері «ауыстырылатын» жіп модельдерінің айналасында жасалған құрастыру уақыты ішінде ортақ нысан кітапханасы. Бұл ретте а зауыттық үлгінің дизайны жалпы мақсатына жету үшін қолданылуы мүмкін еді интерфейс, бағдарламашыдан 4 негізгі типтің әрқайсысын (Thread, Mutex, Barrier, & Condition) бөлуді талап етуі керек еді үйінді. Кейбір конструкциялардағы нақты конструкциялардың үйінділерін бөлуге байланысты шығындарға байланысты, бұл кітапхана бастапқыда жазылған кезде мұндай бөлу қолайсыз болып саналды, сондықтан зауыттық үлгі қолданылмады.

Керісінше, қажетсіну үшін біраз абстрактивті - бірақ тиімді әдіс таңдалды деректерді / іске асыруды жасыру. Бұл техникада жеке қолданылады бос көрсеткіштер жеке деректерді инкапсуляциялау. Бос көрсеткіштер нақты деректер құрылымын көрсетеді, бірақ dso-ға бірыңғай интерфейс береді.

OpenThreads жобалаудың мақсаты платформалық оңтайландырылған көп өңдеуші құрылымдарды қолдана отырып оңтайландырылған енгізулер құру болып табылады. спрок IRIX және Windows ағындарында қолданылатын әдістер.

osgUtil

osgUtil қамтиды көрсету backend сахнаға күтім жасайтын функционалдық және коммуналдық қызметтер графикалық жүру, көрсету оңтайландыру және сахнаны OpenGL қоңыраулар ағынына айналдыру. Сондай-ақ, ол объектіні жинау сияқты көрініспен негізгі өзара әрекеттесу құралдарын ұсынады.

osgDB

OpenSceneGraph сонымен қатар мәліметтер базасының жүктеушілерінің үлкен жиынтығымен және көптеген 2D / 3D мәліметтерімен келеді форматтар манипуляторлар. 50-ден астам әртүрлі форматтарға қолдау көрсетіледі - мысалы, ең көп таралған 3D форматтары КОЛЛАДА (.dae), LightWave (.lwo), Wavefront (.obj), OpenFlight (.flt), 3D Studio Max (.3ds), DirectX (.x) және басқалары. OpenSceneGraph сонымен бірге өзінің төл нұсқасын ұсынады ASCII .osg форматы. .Osg форматына экспорттаушылар бар Блендер, Майя және 3D Studio MAX.

Қолдау көрсетілетін сурет форматтары .rgb, .gif, .jpg, .png, .tiff, .сурет, .bmp, .dds, .tga және жедел уақыт.

Бұл модуль сонымен қатар енгізу-шығару құрылғысын абстракциялауды қамтамасыз етеді.

osgViewer

osgViewer кітапханасы жылдам әрі қарапайым әдісті ұсынады визуалдау графикалық көрініс. Бұл әр түрлі платформадан тәуелсіз абстракция терезе жүйесі интерфейстер.

NodeKits

Жобаның таралуы сонымен қатар әртүрлі деп аталады NodeKits. Бұл жалпы мәселелердің шешімдері және жиі қолданылатын жетілдірілген 3D қолданбалы компоненттері және графикалық алгоритмдер. Олардың ішіндегі ең маңыздылары

  • osgAnimation - қаңқалық модельдерді пайдалану, анимация және морфинг.
  • osgFX - арнайы эффекттер және кескінді кейінгі өңдеу.
  • osgManipulator - интерактивті 3D көріністі манипуляциялау.
  • osgParticle - Advanced бөлшектер жүйесі пайдалану.
  • osgQt - интеграция Qt құралдар жинағы және OSG қосымшаларына QtGUI элементтерін қосу.
  • osgShadow - көлеңкелерді көрсету техникасының негізі.
  • osgTerrain - ауқымды жер бедерін көрсету.
  • osgText - сапалы антивирустық қаріптер, TrueType және FreeType қаріптерін қолдау.
  • osgVolume - Көлемді көрсету және көлемді деректерді манипуляциялау.
  • osgWidget - қарапайым GUI құру.

Қабылдау және қабылдау

OpenSceneGraph «ойын» логикасы үшін ешқандай функционалдылықты қамтамасыз етпейді, бұл тек бейнелеу құралы. Бірнеше толық масштаб бар қозғалтқыштар үшін компьютер ойындары (немесе деп аталады байсалды ойындар ) OSG-ді графикалық бейнелеудің негізі ретінде құру, ең кең таралған құрылым Delta3D.

OpenSceneGraph-та орнатылған көптеген бағдарламалық өнімдер бар; басқалардың арасында, Виртуалды жер жобасы және ViewTec TerrainView. OSG пайдаланушыларының тізімі келесі компанияларды қамтиды Боинг, НАСА, FlightGear, Норконтрол және басқалары.[14][15][16][17][18]

Opensource қауымдастық деңгейінде бірнеше жоба OSG-ді қолдау ретінде қабылдады:

  • FlightGear (Ұшуды модельдеу бағдарламасы)
  • OpenMW (Морроуиндке арналған Opensource қозғалтқышы)

OpenSceneGraph javascript / WebGL деп аталатын іске асыруды алды OSG.JS көптеген онлайн көріністерді, соның ішінде 3D қолданушылар қолданады Эскиз және Clara.io.

Emscripten арқылы C ++ - тен javascriptке орау OGStudio қазіргі уақытта дамыған.

OSG пайдаланатын басқа өнімдердің арасында атап өту керек:

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «Тұрақты шығарылымдар».
  2. ^ а б Энн Руас, Кристофер Голд (2008). Кеңістіктік деректерді өңдеудегі жетістік: кеңістіктік деректерді өңдеу бойынша 13-ші халықаралық симпозиум. Спрингер. б. 370. ISBN  9783540685661.CS1 maint: авторлар параметрін қолданады (сілтеме)
  3. ^ Martz, P .: OpenSceneGraph-ті жылдам бастау туралы нұсқаулық. Луисвилл, АҚШ, 2007 ж.
  4. ^ http://www.openscenegraph.org/projects/osg/wiki/Support/History
  5. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 2011-06-09. Алынған 2010-02-20.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  6. ^ http://www.openscenegraph.org/projects/osg/wiki/News/Press/OSG2.8.3
  7. ^ http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.8.4/NEWS.txt
  8. ^ http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-3.0.0/NEWS.txt
  9. ^ Торрес, Джорди. «OpenSceneGraph 3.0 шығарылымы». www.openscenegraph.org. Алынған 2017-09-23.
  10. ^ Қолданушы, супер. «OpenSceneGraph 3.2 шығарылымы». www.openscenegraph.org. Алынған 2017-09-23.
  11. ^ Қолданушы, супер. «OpenSceneGraph-3.4 шығарылымы». www.openscenegraph.org. Алынған 2017-09-23.
  12. ^ Қолданушы, супер. «OpenSceneGraph-3.4.1 шығарылымы». www.openscenegraph.org. Алынған 2017-09-23.
  13. ^ Қолданушы, супер. «OpenSceneGraph-3.6 шығарылымы». www.openscenegraph.org. Алынған 2018-08-14.
  14. ^ http://www.openscenegraph.com/index.php/gallery/use-cases
  15. ^ http://www.openscenegraph.org/projects/osg/wiki/Screenshots
  16. ^ http://vterrain.org/
  17. ^ http://www.viewtec.net/index.php?page=products
  18. ^ http://www.delta3d.org

Сыртқы сілтемелер