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).
Для реализации графического интерфейса пользователя (англ. GUI - Graphic User Interface) могут применяться как стандартные (недостаточно хорошо реализованные, и, по словам разработчиков, в будущем, возможно, будут исключены) функции графического интерфейса OGRE, так и импортироваться сторонние библиотеки (OpenGUI, MyGUI (очень популярен среди участников русского сообщества OGRE), CEGUI).
OGRE является свободным программным обеспечением, распространяемым под лицензиями LGPL/MIT и имеет очень активное сообщество.
Возможности
поддержка платформ Windows, Linux и Mac OS X;
скриптовая система управления материалами (мультитекстурирование, мультипроходное смешивание);
загрузка текстур в формате PNG, JPEG, TGA, BMP или DDS, также поддержка сжатых текстур (DXT/S3TC);
экспортеры для основных коммерческих и свободных пакетов 3D моделирования;
система управления ресурсами;
поддержка Direct3D, OpenGL;
поддержка шейдеров, написанных на ассемблере или языках высокого уровня: Cg, DirectX 9 HLSL или GLSL;
сложная скелетная анимация (анимация тела), анимация гибких форм, морфинг (анимация лица), анимация пути (камера, перемещение).
OGRE порты
Существуют порты Ogre3D под другие языки программирования
Python-Ogre для Питона
Ogre.rb для Ruby
Ogre4j для Java
OgreDotNet и MOGRE для .NET.
Ogre.pb для PureBasic
Gmogre3d для Game Maker
Axiom3d для C#