OpenSceneGraph - OpenSceneGraph
Стабильный выпуск | 3.6.5 / 31 января 2020 г.[1] |
---|---|
Репозиторий | |
Написано в | C ++ |
Операционная система | Кроссплатформенность |
Тип | 3D графика |
Лицензия | Общественная лицензия OpenSceneGraph (LGPL основан) |
Интернет сайт | www www |
OpenSceneGraph является Открытый исходный код 3D графика интерфейс прикладного программирования,[2] используется разработчиками приложений в таких областях, как визуальное моделирование, компьютерные игры, виртуальная реальность, научный визуализация и моделирование.
Инструментарий написан на стандартном C ++ с помощью OpenGL,[2] и работает на различных операционные системы включая Майкрософт Виндоус, macOS, Linux, IRIX, Солярис и FreeBSD. Начиная с версии 3.0.0, OpenSceneGraph также поддерживает разработку приложений для мобильных платформ, а именно: iOS и Android.
История
Проект OpenSceneGraph был инициирован Доном Бернсом в 1998 году. Роберт Осфилд присоединился к проекту в 1999 году, работая над портированием готовых компонентов для Microsoft Windows. В сентябре 1999 года проект стал открытым исходным кодом, и официальная сайт проекта был создан. К концу года Осфилд взял на себя проект и начал обширный рефакторинг существующей кодовой базы, делая упор на модернизацию, охватывая современные стандарты C ++ и шаблоны проектирования.
В апреле 2001 года, учитывая растущее сообщество пользователей и интерес общественности, Роберт Осфилд создал OpenSceneGraph Professional Services, предоставляя коммерческую поддержку, консультации и услуги обучения. Это знаменует собой полную профессионализацию проекта.
Первой официальной стабильной версией OpenSceneGraph была версия 1.0, выпущенная в 2005 году. Расширенная версия 2.0 последовала в 2007 году, добавив поддержку многоядерных систем и систем с несколькими графическими процессорами, несколько важных NodeKits и использование унифицированной многоплатформенной системы сборки. CMake. Были представлены книги и руководства для пользователей.[3]
С тех пор проект быстро растет и становится все более популярным. Под текущей стабильной версией подписано более 530 участников, а официальный список рассылки содержит тысячи имен.[4]
Функции
Возможности версии 1.0:[5]
- Многофункциональный и широко распространенный граф сцены выполнение
- Поддержка функций повышения производительности
- Посмотреть усеченную пирамиду, небольшая особенность и удаление окклюзии
- Уровень детализации
- Сортировка состояний и ленивое обновление состояний
- Быстрые пути OpenGL и последние расширения
- Многопоточность и оптимизация базы данных
- Поддержка OpenGL от 1.1 до 2.0, включая последние расширения
- Тесно связанная поддержка OpenGL Shading Language, разработанная совместно с 3Dlabs
- Поддержка широкого спектра форматов 2D-изображений и 3D-баз данных с загрузчиками, доступными для таких форматов, как OpenFlight, TerraPage, OBJ, 3DS, JPEG, PNG и GeoTIFF
- Эффекты частиц
- Поддержка сглаживания TrueType текст
- Полная поддержка кадровый буфер объекты, буферы и эффекты преобразования в текстуру кадрового буфера
- Поддержка многопоточного разбиения на страницы базы данных, которую можно использовать вместе со всеми трехмерными базами данных и загрузчиками изображений.
- Создание крупномасштабной страничной базы данных с геопространственным рельефом всей земли
- Поддержка интроспекции для основных библиотек, позволяющая внешним приложениям запрашивать, получать, устанавливать и работать со всеми классами в графе сцены через общий интерфейс
- Многопоточная и настраиваемая поддержка машин с несколькими ЦП / ГП
Возможности версии 2.8.3[6]
- Mac OS X 10.6 (Snow Leopard) поддержка
- Поддержка ImageIO на Mac OS X
- Экспорт файлов в формате 3DS и преобразование файлов
- Интегрированная технология Autodesk FBX
- Интегрированная поддержка FFmpeg для отображения содержимого видеофайлов в 3D-приложениях.
- Поддержка формата файлов 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)
- Представление приложения Present3D для иммерсивных 3D-презентаций
- Новые расширяемые сериализаторы, которые предоставляют новые собственные форматы двоичных файлов .osgb, .osgt ascii и .osgx xml.
- Новая обобщенная сериализуемая архитектура метаданных
- Новая библиотека osgQt, которая упрощает интеграцию! OpenSceneGraph с Qt, включая просмотр веб-страниц через QWebKit.
- Новый плагин FBX, основанный на Audodesk FBX DSK, который позволяет читать форматы создания и обмена .fbx 3D.
- Новый плагин directshow для работы с фильмами под Windows
- Новый плагин pov для экспорта сцены в формат POV-Ray, позволяющий использовать POV-Ray для фотореалистичной трассировки лучей
- Новый плагин ply для чтения файлов ply
- Обновленный плагин 3ds для чтения и записи файлов .3ds.
- Обновленный плагин dxf для чтения и записи файлов .dxf.
- Поддержка сборки какао и 64-битной OSX
История выпусков стабильной версии
Версия | Дата выхода |
---|---|
3.0 | 5 февраля 2013 г.[9] |
3.2 | 24 июля 2013 г.[10] |
3.4 | 20 июля 2015 г.[11] |
3.4.1 | 28 августа 2017 г.[12] |
3.6 | 7 апреля 2018 г.[13] |
3.6.1 | 28 мая 2018 |
3.6.2 | 29 июн 2018 |
3.6.3 | 14 сентября 2018 г. |
3.6.4 | 26 июля 2019 г. |
3.6.5 | 31 января 2020 г. |
Архитектура
Архитектуру библиотеки можно разделить на три основных подмножества - базовую библиотеку OpenSceneGraph, osgViewer и набор NodeKits.
Основной
Базу библиотеки OpenSceneGraph можно разделить на четыре основных модуля.
OSG
Ядро OpenSceneGraph предоставляет классы и методы построения и манипулирования граф сцены. Он содержит классы, представляющие различные типы узлы, геометрия сцены, OpenGL государственная абстракция, геометрические преобразования, а также математические классы для 2D и 3D вектор и матричные операции. Передовой управление памятью также включен.
OpenThreads
Проект OpenSceneGraph содержит библиотеку потоков, OpenThreads, который представляет собой легкий кроссплатформенный нить модель. Он предназначен для обеспечения минимального и полного объектно-ориентированного (OO) интерфейса потоков для C ++ программисты. Он смоделирован по образцу Ява thread API, и Стандарты POSIX Threads.
В архитектура OpenThreads разработан на основе "заменяемых" моделей потоков, которые определены в время компиляции в библиотека общих объектов. Важно отметить, что хотя завод шаблон дизайна можно было бы использовать для достижения общей цели интерфейс, от программиста потребовалось бы выделить каждый из 4 основных типов (поток, мьютекс, барьер и условие) на куча. Из-за затрат, связанных с распределением в куче лежащих в основе конкретных реализаций этих конструкций на некоторых платформах, такое распределение считалось неприемлемым в то время, когда эта библиотека была первоначально написана, и, следовательно, фабричный шаблон не использовался.
Вместо этого была выбрана несколько заумная, но эффективная техника, обеспечивающая необходимое скрытие данных / реализации. Этот метод использует частные недействительные указатели для инкапсуляции личных данных объекта. Указатели void фактически указывают на конкретные структуры данных, но предоставляют единый интерфейс для dso.
Целью разработки OpenThreads является создание оптимизированных реализаций с использованием оптимизированных для платформы многопроцессорных конструкций, таких как Sproc методы, используемые в потоках IRIX и Windows.
osgUtil
osgUtil содержит рендеринг бэкэнд функциональность и утилиты, заботящиеся о сцене обход графа, рендеринг оптимизация и преобразование сцены в поток вызовов OpenGL. Он также предоставляет средства базового взаимодействия со сценой, такие как выбор объекта.
osgDB
OpenSceneGraph также поставляется с большой коллекцией загрузчиков баз данных и множеством 2D / 3D данных. форматы манипуляторы. Поддерживается более 50 различных форматов - наиболее распространенные форматы 3D-данных, такие как КОЛЛАДА (.dae), Световая волна (.lwo), Волновой фронт (.obj), OpenFlight (.flt), 3D Studio Max (.3ds), DirectX (.x) и многие другие. OpenSceneGraph также предоставляет собственный ASCII Формат .osg. Существуют экспортеры в формат .osg, доступные для Блендер, майя и 3D Studio MAX.
Поддерживаемые форматы изображений: .rgb, .gif, .jpg, .png, .tiff, .pic, .bmp, .dds, .tga и быстрое время.
Этот модуль также обеспечивает абстракцию устройства ввода-вывода.
osgViewer
Библиотека osgViewer обеспечивает быстрый и простой способ визуализация графическая сцена. Это также независимая от платформы абстракция для различных оконная система интерфейсы.
NodeKits
Дистрибутив проекта также содержит множество так называемых NodeKits. Это решения общих проблем и часто используемые более сложные компоненты 3D-приложений и графические алгоритмы. Среди наиболее значимых:
- osgAnimation - использование, анимация и морфинг скелетных моделей.
- osgFX - Специальные эффекты и постобработка изображений.
- osgManipulator - Интерактивное манипулирование 3D сценой.
- osgParticle - Расширенный система частиц использование.
- osgQt - Интеграция с Набор инструментов Qt и включение элементов QtGUI в приложения OSG.
- osgShadow - каркас для методов рендеринга теней.
- osgTerrain - обширный рендеринг ландшафта.
- osgText - качественные шрифты с антиалиасингом, поддержка шрифтов TrueType и FreeType.
- osgVolume - Объемный рендеринг и обработка объемных данных.
- osgWidget - простой GUI творчество.
Прием и усыновление
OpenSceneGraph не предоставляет никаких функций для более высокой «игровой» логики, это инструмент только для рендеринга. Есть несколько натурных двигатели за компьютерные игры (или так называемый серьезные игры ) создание с использованием OSG в качестве основы для рендеринга графики, наиболее распространенной структурой является Delta3D.
Существует множество программных продуктов, построенных на основе OpenSceneGraph; среди прочего, Виртуальный ландшафтный проект и ViewTec TerrainView. Список пользователей OSG содержит компании как Боинг, НАСА, FlightGear, Norcontrol и много других.[14][15][16][17][18]
На уровне сообщества с открытым исходным кодом несколько проектов приняли OSG в качестве серверной части рендеринга:
- FlightGear (Программное обеспечение для моделирования полета)
- OpenMW (Движок с открытым исходным кодом для Morrowind)
OpenSceneGraph получил реализацию javascript / WebGL под названием OSG.JS который используется многими онлайн-программами просмотра 3D-сцен, включая Sketchfab и Clara.io.
Перенос с C ++ на javascript через Emscripten OGStudio также в настоящее время разрабатывается.
Среди других продуктов, использующих OSG, следует отметить:
- Ремо 3D Редактор сцены OSG
- http://www.palomino3d.org/
Смотрите также
- OSG.JS
- OpenGL
- ОГРЭ
- Delta3D
- Irrlicht Engine
- Кристальное пространство
- Библиотека визуализации
- OpenSG
- ossimPlanet
- Гром
- Открыть Inventor
- Unity (игровой движок)
Рекомендации
- ^ «Стабильные релизы».
- ^ а б Энн Руас, Кристофер Голд (2008). Прогресс в обработке пространственных данных: 13-й Международный симпозиум по обработке пространственных данных. Springer. п. 370. ISBN 9783540685661.CS1 maint: использует параметр авторов (связь)
- ^ Марц, П .: Краткое руководство по OpenSceneGraph. Луисвилл, США, 2007 год.
- ^ http://www.openscenegraph.org/projects/osg/wiki/Support/History
- ^ «Архивная копия». Архивировано из оригинал на 2011-06-09. Получено 2010-02-20.CS1 maint: заархивированная копия как заголовок (связь)
- ^ http://www.openscenegraph.org/projects/osg/wiki/News/Press/OSG2.8.3
- ^ http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.8.4/NEWS.txt
- ^ http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-3.0.0/NEWS.txt
- ^ Торрес, Хорди. «Выпуск OpenSceneGraph 3.0». www.openscenegraph.org. Получено 2017-09-23.
- ^ Пользователь, Супер. «Выпуск OpenSceneGraph 3.2». www.openscenegraph.org. Получено 2017-09-23.
- ^ Пользователь, Супер. "Релиз OpenSceneGraph-3.4". www.openscenegraph.org. Получено 2017-09-23.
- ^ Пользователь, Супер. "Релиз OpenSceneGraph-3.4.1". www.openscenegraph.org. Получено 2017-09-23.
- ^ Пользователь, Супер. «Релиз OpenSceneGraph-3.6». www.openscenegraph.org. Получено 2018-08-14.
- ^ http://www.openscenegraph.com/index.php/gallery/use-cases
- ^ http://www.openscenegraph.org/projects/osg/wiki/Screenshots
- ^ http://vterrain.org/
- ^ http://www.viewtec.net/index.php?page=products
- ^ http://www.delta3d.org
внешняя ссылка
- www
.openscenegraph - официальный сайт проекта.org - AlphaPixel OSG Двоичные файлы - Предварительно скомпилированные двоичные файлы для Windows, Mac и Linux x86 и x64.
- SigmaOSG - OpenSceneGraph Tutorials (содержит все предыдущие материалы OSGHelp с устаревшего сайта OSGHelp)
- Сцены и Openscenegraph для разработки программного обеспечения для 3D
- OpenSceneGraph - информационная страница библиотеки на www.OpenGL.org (одна из четырех продвигаемых библиотек)