OGRE (Object-Oriented Graphics Rendering Engine) — графический игровой движок с открытым исходным кодом, написанный на C++. Автором OGRE является Стив Стриитинг ().

Работу над движком Стив начал в 2001 году, после того, как его посетила идея о создании хорошо слаженного, кроссплатформенного движка с удобным дизайном и архитектурой.

Политика OGRE OGRE сам по себе не является игровым движком и по заявлению автора никогда таковым не будет. OGRE был, есть и будет графическим движком для рендеринга трехмерной графики. Большую популярность движок получил за счет своей гибкости, что позволяет «скрещивать» его со многими другими библиотеками (физика — ODE, Newton, PhysX, Bullet; звук, сеть, графический интерфейс и т. д.).

Причина, по которой OGRE не может стать полноценным игровым движком, описывается автором приблизительно так: Не все, кому может быть необходим 3D-движок, будут использовать его для создания игр, поэтому, вы можете использовать OGRE для создания игр, симуляторов, бизнес-приложений и т. д. В OGRE нет встроенной поддержки сети, звука и многих других функций. Но, с помощью усилий многих профессионалов, появились библиотеки, портированные под OGRE. Например, для реализации физики в приложениях, использующих данный движок, портированы такие библиотеки, как PhysX SDK (движок) (NxOgre), Newton Game Dynamics (OgreNewt), Bullet Physics Library (OgreBullet), Open Dynamics Engine (OgreODE).

Для реализации графического интерфейса пользователя () могут применяться как стандартные (недостаточно хорошо реализованные, и, по словам разработчиков, в будущем, возможно, будут исключены) функции графического интерфейса OGRE, так и импортироваться сторонние библиотеки: OpenGUI, MyGUI, CEGUI.

OGRE является свободным программным обеспечением, распространяемым под лицензиями LGPL/MIT и имеет очень активное сообщество.

Возможности Разработчиком движка заявлена поддержка следующих возможностей: поддержка платформ Windows, Linux, macOS, Android и iOS; скриптовая система управления материалами (мультитекстурирование, мультипроходное смешивание); загрузка текстур в формате PNG, JPEG, TGA, BMP, PVRTC и DDS, также поддержка сжатых текстур (DXT/S3TC); экспортеры для основных коммерческих и свободных пакетов 3D моделирования; система управления ресурсами; поддержка Direct3D, Vulkan, , OpenGL (включая OpenGL ES) и WebGL (через Emscripten); поддержка шейдеров, написанных на ассемблере или языках высокого уровня: Cg, HLSL или GLSL; сложная скелетная анимация (анимация тела), анимация гибких форм, морфинг (анимация лица), анимация пути (камера, перемещение).

История версий

Около 1999 — Синбад осознает, что его проект 'DIMClass', предназначенный для упрощения объектно-ориентированного взаимодействия с Direct3D, стал настолько абстрагированным, что может больше не базироваться на Direct3D. Начинается планирование более амбициозной платформо- и API-независимой библиотеки. 25 февраля 2000г — На Sourceforge зарегистрирован проект OGRE. Февраль 2005г — Выпущена версия Ogre v1.0.0 «Azathoth» Final — переработана система ресурсов, аппаратные пиксельные буферы, HDR, CEGui, XSI exporter Март 2005г — Ogre становится проектом месяца на Sourceforge 4 ноября 2005г — Ankh становится первой коммерческой игрой, выпущенной с использованием Ogre 7 мая 2006г — Официальный релиз Ogre 1.2 «Dagon» 25 марта 2007г — Официальный релиз Ogre 1.4 «Eihort» 28 августа 2008г — Официальный релиз Ogre 1.6 «Shoggoth» (текущая стабильная версия 1.6.5) 28 февраля 2010г — Официальный релиз Ogre 1.7 «Cthugha» (текущая стабильная версия 1.7.4) 28 мая 2012г — Официальный релиз Ogre 1.8 «Byatis» 24 ноября 2013г — Официальный релиз Ogre 1.9 «Ghadamon» 31 декабря 2017 — Официальный релиз Ogre 1.10 20 декабря 2018 — Официальный релиз Ogre 1.11 30 апреля 2019 — Официальный релиз Ogre 1.12 13 августа 2021 — Официальный релиз Ogre 13

Ogre-Next Начиная с 2019 года, разработку OGRE было решено вести в рамках двух отдельных проектов. Развитие кода предыдущих версий ведется в рамках проекта Ogre (также называемого Ogre v1), который сосредоточен на обеспечении обратной совместимости с предыдущими версиями для поддержки имеющихся проектов на движке. Внедрение же новейших методов рендеринга трехмерной графики производится в проекте Ogre-Next (также называемом Ogre v2). В этой новой версии движка разработчики заявляют: Новую подсистему рендеринга, способную обеспечить обработку десятков тысяч объектов в кадре; Новую систему управления материалами (High Level Material System) для обеспечения задаваемого пользователем физически корректного рендеринга; Встроенную поддержку VR.

В то же время, документация к Ogre-Next является гораздо менее проработанной, чем для оригинального Ogre. Кроме того, в новой версии движка была прекращена поддержка ряда устаревших платформ (например, систем Android младше 7.0) и программных интерфейсов трехмерной графики (например, Direct3D 9, OpenGL 1.x и 2.x). Также планируется, но не реализована поддержка OpenGL ES и WebGL.

OGRE порты Существуют порты Ogre3D под другие языки программирования Python-Ogre для Python Ogre.pm для Perl Ogre.rb для Ruby Ogre4j для Java OgreDotNet и MOGRE для .NET. Ogre.pb для PureBasic Gmogre3d для Game Maker Axiom3d для C#

Проекты использующие движок

С открытым исходным кодом

Ember (клиент ) Facade Iris2 (клиент Ultima Online) OpenDungeons Orxonox Rigs of Rods Sirikata Skyscraper Stunt Rally Summoning Wars SuperRacing Trinity Reign

Проприетарные

, и

и Garshasp: Temple of the Dragon

Kenshi MotorM4X: Offroad Extreme

и и Savage 2: A Tortured Soul Snakeworlds и The Book of Unwritten Tales Torchlight и Torchlight II Venetica

Warside Zero gear

См. также Irrlicht — графический движок, использующий возможности OpenGL и DirectX, написанный на C++ GLScene — OpenGL-ориентированный графический движок для Delphi, Free Pascal и C++. OpenSceneGraph — многоплатформенный OpenGL-ориентированный графический движок на C++ OpenSpace3D — свободный конструктор, для создания веб-приложений и игр без программирования на базе движка OGRE. PureBasic — процедурный язык программирования, содержащий враппер движка OGRE в стандартной библиотеке.

Примечания

Ссылки

Официальный сайт Неофициальный русскоязычный сайт Блог Стива Стритинга, основателя OGRE 3D Обзор и описание движка его пользователями на сайте DevMaster.net Emma3D, an internet-based media framework using OGRE Блог об Ogre Использование Ogre в веб-разработке Цикл статей посвященных OGRE3D Список игр, использующих OGRE, на сайте SteamDB

Категория:Графические движки Категория:Игровые движки по алфавиту Категория:Программное обеспечение, написанное на C++