OGRE (Object-Oriented Graphics Rendering Engine)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:36, 5 января 2018.
OGRE (Object-Oriented Graphics Rendering Engine)
Ogre logo.png
OGRE screenshot 01.png
Скриншот из бенчмарка «Fresnel Reflections and Refractions» из официального пакета «OGRE Demos pack».
Создатели: Стив Стриитинг
Разработчики: The OGRE Team
Выпущена: 23 April 2005 года; 17 years ago (2005-04-23) [Источник 1]
Постоянный выпуск: 1.10.4 (Xalafu) / 23 April 2017 года; 5 years ago (2017-04-23)
Состояние разработки: Активный
Написана на: C++
Операционная система: Windows, Linux, Mac OSX, Android, iOS, Windows Phone, WinRT
Тип ПО: Графический движок
Лицензия: С версии 1.7.0: MIT License. До версии 1.6.5 (включительно): GNU Lesser General Public License v.2 или более поздняя
Веб-сайт www.ogre3d.org

OGRE (англ. Object-Oriented Graphics Rendering Engine) — это сцено-ориентированный, графический 3D движок реального времени. ORGE кросс-платформенный, и связан с системными библиотеками, такими как Direct3D или OpenGL через уровень абстракции.

Архитектура и возможности

Основная задача OGRE - предоставить графический рендеринг. Тем не менее движок так же предлагает и другие дополнительные возможности (классы для векторов и матриц, управление памятью и тому подобное). Движок не предоставляет поддержку для воспроизведения звука или физики.

OGRE написан на C++ и имеет объектно-ориентированный дизайн с плагиновой архитектурой. OGRE напрямую поддерживает OIS, SDL и CEGUI библиотеки, а так же включает в себя Cg toolkit. У движка есть своя общая инфраструктура ресурсов для управления памяти и загрузки ресурсов прямо из архивов.[Источник 2]

Возможности рендеринга движка

OGRE движок использующий понятие граф сцены, с широкой поддержкой различных менеджеров сцен. Наиболее известные октодерево, двоичное разбиение пространства и Paging Landscape менеджер сцен. [Источник 3] Ландшафтный менеджер сцен имеет поддержку уровней детализации, которая может быть создана автоматически или вручную. [Источник 4]

OGRE был спроектирован, чтобы облегчить написание программ, использующих аппаратно-ускоренную 3D графику. OGRE так же поддерживает вершинные и пиксельные шейдеры, написанные на OpenGL Shading Language (GLSL), High-Level Shading Language (HLSL), Cg, или языке ассемблера. OGRE так же имеет диспетчер компоновки с языков сценариев и полноэкранной видео пост-обработкой для таких эффектов как: High Dynamic Range Imaging (HDR), blooming, saturation, brightness, blurring и noise. [Источник 5]

Поддержка различных языков программирования

Существует ряд привязок OGRE к другим языкам программирования:

Инструменты для экспорта

Существуют инструменты экспорта контента для большинства редакторов 3D моделей, а именно для: 3D Studio Max, Maya, Blender, LightWave, Milkshape 3D [Источник 6]

Поддерживаемые платформы

ORGE поддерживает кросс-платформенность через уровень абстракций к системными библиотеками, такими как Direct3D или OpenGL. Движок способен рендерить один и тот же контент на разных платформах, причём с учётом уникальных возможностей каждой платформы. На состояние 2015 года, OGRE поддерживает Linux, Windows, Mac OSX, Google Native Client (NaCl), WinRT, Windows Phone 8, Android, iOS. Сейчас доступны скомпилированные бинарные файлы для Linux, Mac OSX и Windows. Так же существует неофициальный порт FreeBSD поддерживаемый сообществом.

История

История OGRE восходит к концу 1999 года, когда проект был зарегистрирован на SourceForge. Изначально ORGE был опубликован под двойной лицензией (GNU Lesser General Public License и OGRE Unrestricted License).

Наименование версий

Разработка OGRE организована в бранчи версий. Эти бранчи названы, в честь древней расы безумны богов из пантеона Говарада Лавкрафта: Hastur для 0.15.x, Azathoth для 1.0.x, Dagon для 1.1.x и 1.2.x, Eihort для 1.3.x и 1.4.x, Shoggoth для 1.5.x и 1.6.x, Cthugha для 1.7.x, Byatis для 1.8.x, Ghadamon для 1.9.х, Xalafu для 1.10.x.

Google Summer of Code 2006

OGRE получил 6 слотов на Google Summer of Code 2006 чтобы улучшить существующий движок и добавить новых возможностей. Этим решениями стали инструментом для одношагового решения для художников, RmOgreExporter (v2), FxOgreExporter, Instancing, Crowd Rendering, Extended, Demo-ing и Documenting the Shadow Mapping System, Scene Management, и Billboard Clouds. В последующие годы многие другие проекты Google Summer of Code были реализованы для движка OGRE.

Релицензирование

В 2010 начиная с версии 1.7.0, OGRE был лицензирован в соответствии с лицензией MIT License, в качестве причины, было указано, что текст лицензии проще для понимания.

Переход на Mercurial

21 марта 2010 года OGRE был переключен с Subversion на Mercurial. На данный момент репозиторий движка расположен на Bitbucket. Как заявили разработчики OGRE, переход на Mercurial, даст больше свободы в разработке, так как позволит пользователям делать свои локальные копии и делать более сложные объединения ветвей. [Источник 7]

Аддоны

OGRE - сильно расширяемый движок, с активным сообществом, которое разработало много дополнительных проектов, которые официально не поддерживаются основной командой, но оказались чрезвычайно полезными для пользователей. Многие из них размещаются в репозитории OGRE Subversion под названием «ogreaddons».

Название аддона Описание
3ds2mesh Конверт из .3ds в .mesh и .material
3dssceneexporter Экспортер сцен для 3D Studio Max.
BetaGUI Маленький и легковесный GUI, использующий только оверлеи.
blenderimport Импортер OGRE .mesh файлы в Blender
blendersceneexporter Экспортер dotScene формат файлов из Blender
cal3d2ogre Конвертер Cal3d формата данных в OGRE
ceguimeshviewer Внутри движковый просмоторщик мешей, использующий CEGui
clipmapterrain Реализация карт клипов геометрии для рельефа
ColladaPlugin Плагин, позволяющий загружать сцены сохранённые в COLLADA формате
cubicfractalterrain Пример, как сгенерировать рельеф с использованием кубических сплайнов и детализацией фрактальных деталей
dbmArchive Плагин Archive, который читает и записывает стандартные файлы Unix DBM
displacementmapterrain Которая использует вершинный шейдер, чтобы привести ландшафт в его окончательную форму
dotsceneformat Определение расширяемого формата сцены, называемого «.scene», который основан на XML и может быть экспортирован 3dssceneexporter и отображен dotsceneoctree
dotsceneoctree SceneManager, который может читать .scene-файлы и визуализировать их с использованием комбинации статической и динамической геометрии, хранящейся в octree. Это отличается от основной реализации octree в ядре тем, что статическая геометрия предварительно преобразована (и может быть предварительно освещена с помощью ogrefsrad)
forests Библиотека для рендеринга огромных лесов с помощью OGRE
gilesexporter Экспортер для Gile, глобальной системы освещения.
GOOF Game Object Oriented Framework
HDRlib Библиотека, облегчающая включение эффектов HDR в ваше программное обеспечение с помощью OGRE
mayaextras Набор дополнительных инструментов Maya, включая экспортера dotscene и кривую анимации узлов экспортера
mdl2mesh Сценарий LUA для преобразования файлов Neverwinter Nights .mdl в формат OGRE .mesh
meshmagick Сценарий для командной строки позволяющий управлять мешами
meshviewer Windows-GUI инструмент для просмотра и настройки мешей и материалов OGRE
multiscenemanager Эксперимент, чтобы увидеть, можно ли одновременно использовать несколько диспетчеров сцены для визуализации различных частей одной сцены
nogredex Привязка к движку NVIDIA PhysX
oasis Фреймворк для объединения нескольких систем игрового движка в более интегрированное целое
ogrebullet Обёртка, чтобы связать OGRE и физический движок Bullet вместе.
ogrefsrad Инструмент, позволяющий использовать fsrad процессор Fluid Studios для использования с мешами OGRE
ogredotnet Обёртка для доступа к OGRE с .Net-языков, таких как C # и VB.
ogreode Привязка к физическому движку ODE
ogreopcode Демонстрация привязки Opcode (обнаружение столкновения) для мешей OGRE
ogrenewt Библиотека для связывания с физическим движком Newton Game Dynamics
ogreswf Позволяет воспроизводить Flash анимации на текстурах
ogretokamak Связывание с физическим движком Tokamak
overlayeditor Инструмент Windows для графического редактирования файлов OGRE .overlay
paginglandscape Плагин SceneManager для работы с крупномасштабным страничным рельефом
particleeditor Основанный на CEGui графический редактор частиц
posertools Экспортер для Poser
pyogre Python для OGRE
QtOgreFramework Фреймворк для совместного использования OGRE и Qt
rmogreexporter Экспортер OGRE-совместимых материальных скриптов и шейдеров непосредственно из RenderMonkey
sketchupexporter Экспорт мешей из Google Sketchup
simplepagedterrain Бесконечно повторяющаяся система рельефа
truespaceexporter Экспортер для Calgari Truespace
uOgreBrowser Привязка uBrowser позволяющая рендерить страницы на геометри в OGRE
videoplugin Декодирование и воспроизведение видео в реальном времени через текстуру в OGRE
worldminion Конвертер полигонального супа в структурированный граф ячейки / портала.
wxOgreMVC MVC фреймворк для Ogre с использованием wxWidgets
[Источник 8]

Версии

Одновременно разрабатываются несколько версий OGRE, однако приоритетной является версия 2.1. Версии немного различаются требованиями и возможностями. Отличия версий:[Источник 9]

Версия Преимущества/Недостатки
2.1
  • Высокая производительность.
  • Только Windows/Linux.
  • Встроены простые шейдеры.
  • Нет поддержки некоторые плагинов (например, CEGUI, ParticleUniverse, Terrain Component, Volume Component и так далее)
2.0RC1
  • Эта версия для последовательного перехода от 1.x к 2.1
1.10
  • Много различных плагинов.
  • Поддержка широкого количество графических ускорителей.
  • Поддержка мобильных платформ.
  • Большое количество примеров.
Версия Производительность (Узкое место) Поддерживаемые ОС Рекомендуемые рендер системы
2.1 - Windows, Linux, iOS D3D11 или GL3+, Metal на iOS
2.0RC1 CPU Windows, Linux, OS X, iOS, Android, Windows Phone D3D9 на Windows, OpenGL на *nix, GLES 2 на мобильные устройства
1.10 GPU Windows, Linux, OS X, iOS, Android, Windows Phone, HTML5 (Emscripten) D3D9 на Windows, GL3+ на *nix, GLES 2 на мобильные устройства и HTML5
Версия Материалы Инстанирование Многопоточность
2.1 Physically Based Shading посредством удобной HTML системы (часть ядра OGRE) Автоматическое Встроенная (не нужен Boost). Для фоновой загрузки ресурсов нужен Boost/POCO/TBB/C++11
2.0RC1 Вручную написанные шейдеры, RTSS, стандартный конвейер Вручную или с помощью InstanceManager Для фоновой загрузки ресурсов нужен Boost/POCO/TBB
1.10 вручную написанные шейдеры, RTSS, стандартный конвейер Вручную, с помощью InstanceManager или InstanceGeometry Для фоновой загрузки ресурсов нужен Boost/POCO/TBB/C++11


Источники

  1. OGRE 1.0.0 Final [Azathoth] Released! // OGRE official site: сайт. URL: http://www.ogre3d.org/2005/02/23/ogre-100-final-azathoth-released (Дата обращения: 20.05.2017)
  2. OGRE features // OGRE official site: сайт. URL: http://www.ogre3d.org/about/features (Дата обращения: 20.05.2017)
  3. SceneManagersFAQ // OGRE wiki: сайт. URL: http://www.ogre3d.org/tikiwiki/SceneManagersFAQ (Дата обращения: 20.05.2017)
  4. SceneManagersFAQ // OGRE wiki: сайт. URL: http://www.ogre3d.org/tikiwiki/SceneManagersFAQ#Terrain_Scene_Manager (Дата обращения: 20.05.2017)
  5. HDR (High Dynamic Range) // OGRE wiki: сайт. URL: http://www.ogre3d.org/tikiwiki/tiki-index.php?page=HDR+(High+Dynamic+Range) (Дата обращения: 20.05.2017)
  6. OGRE tools // OGRE official site: сайт. URL: http://www.ogre3d.org/download/tools (Дата обращения: 20.05.2017)
  7. OGRE news // OGRE official site: сайт. URL: http://www.ogre3d.org/tag/mercurial (Дата обращения: 20.05.2017)
  8. OGRE addons // OGRE official site: сайт. URL: http://www.ogre3d.org/developers/addons (Дата обращения: 20.05.2017)
  9. OGRE verisons // OGRE official site: сайт. URL: http://www.ogre3d.org/about/what-version-to-choose (Дата обращения: 21.05.2017)

Ссылки