OpenSceneGraph

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
OpenSceneGraph
Osglogo2.0.png
Тип 3D-графіка
Стабільний випуск 3.4.1 (28 серпня 2017; 694 дні тому)
Версії 3.6.3 (14 вересня 2018)[1]
Репозиторій github.com/openscenegraph/OpenSceneGraph
Операційна система Багатоплатформена
Написано на C++
Ліцензія OpenSceneGraph Public License (основана на LGPL)
www.openscenegraph.org
www.openscenegraph.com

OpenSceneGraph у Вікісховищі?

OpenSceneGraph — відкрита програмна бібліотека для роботи з тривимірною графікою,[2], яка використовується розробниками програмного забезпечення для таких галузей застосування, як візуальна симуляція, комп'ютерні ігри, віртуальна реальність, наукова візуалізація і моделювання.

Набір інструментів написано на стандартній мові C++ з використанням OpenGL,[2] і працює на багатьох операційних системах включаючи Microsoft Windows, Mac OS X, Linux, IRIX, Solaris і FreeBSD. Із версії 3.0.0, OpenSceneGraph також має підтримку мобільних платформ, а конкретно iOS і Android.

Архітектура[ред. | ред. код]

Архітектура бібліотеки складається з трьох основних частин — ядра бібліотеки OpenSceneGraph, osgViewer і набору NodeKits.

Ядро[ред. | ред. код]

Основна частина бібліотеки OpenSceneGraph далі поділяється на чотири основні модулі.

osg[ред. | ред. код]

Ядро бібліотеки OpenSceneGraph надає класи і методи для побудови і управлінням графом сцени. Вона містить класи для представлення різних типів вершин, геометрії сцени, абстракцію стану OpenGL, геометричних перетворень, а також класів для здійснення математичних операцій з 2D і 3D векторами і операцій над матрицями. Також присутній розвинутий інструментарій для управління пам'яттю.

OpenThreads[ред. | ред. код]

Проект OpenSceneGraph містить бібліотеку для роботи з потоками, OpenThreads, що є легкою і крос-платформовою моделлю управління потоками. Вона містить мінімальний і повний об'єктивно-орієнтований для роботи з потоками в C++. За основу здебільшого бралися інтерфейси роботи з потоками на Java, і стандарти POSIX потоків.

osgUtil[ред. | ред. код]

osgUtil містить функціонал для рендерингу і утиліти, які займаються пошуком по графу сцени, оптимізацією рендерінгу і перетворенням сцени в потів викликів OpenGL. Вона також забезпечує базові засоби для взаємодії зі сценою, наприклад вибір об'єктів.

osgDB[ред. | ред. код]

OpenSceneGraph також поставляється з великою колекцією засобів роботи з базою даних і багато інструментів для роботи форматами 2D/3D даних. Підтримується більше ніж 50 різних форматів — більшість це загальні формати 3D даних, таких як COLLADA, LightWave (.lwo), Wavefront (.obj), OpenFlight (.flt), 3D Studio Max (.3ds), DirectX (.x) і багато інших. OpenSceneGraph також має свій власний ASCII формат .osg. Є утіліти експорту в формат .osg для таких програмних пакетів як Blender, Maya і 3D Studio MAX.

Формати зображень, що підтримуються містять .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds, .tga і quicktime.

Цей модуль також забезпечує рівень абстракції для роботи з пристроями вводу/виводу.

osgViewer[ред. | ред. код]

Бібліотека osgViewer надає простий і швидкий спосіб візуалізації графічної сцени. Вона також є платформ-незалежною абстракцією для різноманітних інтерфейсів віконних систем.

NodeKits[ред. | ред. код]

В складі проекту також містяться так звані NodeKits. Це приклади рішення загальних проблем і часто використовуваних речей у застосуваннях тривимірної графіки і алгоритми. Зріз самих важливих є наступні:

  • osgAnimation — Використання скелетних моделей, анімація і морфінг.
  • osgFX — Спеціальні ефекти і обробка зображень.
  • osgManipulator — Інтерактивна взаємодія з 3D сценою.
  • osgParticle — Використання системи частинок.
  • osgQt — Інтеграція із Qt toolkit і взаємодія з елементами QtGUI в застосуванні OSG.
  • osgShadow — Інструментарій для виконання технік рендерингу тіней.
  • osgTerrain — Рендеринг рельєфу.
  • osgText — Якісні згладжені шрифти, підтримка шрифтів TrueType і FreeType.
  • osgVolume — Рендеринг об'єму і робота з об'ємними даними.
  • osgWidget — Створення простого графічного інтерфейсу.

Примітки[ред. | ред. код]

  1. Release 3.6.3 — 2018.
  2. а б Anne Ruas, Christopher Gold (2008). Headway in Spatial Data Handling:13th International Symposium on Spatial Data Handling. Springer. с. 370. 

Посилання[ред. | ред. код]