В статье описан бесплатный движок OGRE (Object-oriented Graphics Rendering Engine). Не смотря на то что движок бесплатен, он способен на многое.
Движок: Object-oriented Graphics Rendering Engine
Разработчик: The OGRE Team
Статус: freeware
Основные особенности
Производительность
Простой, понятный, независящий от используемого 3D API (DirectX/OpenGL), объектно-ориентированный интерфейс, который снижает затраты вашего времени при разработке. Автоматическое управление процессами отрисовки сцены, удаления невидимых объектов и работой с прозрачными объектами. Богатая документация, которая позволяет быстро найти ответ на интересующий вопрос.
Платформы и 3D API
Поддержка Direct3D и OpenGL
Поддержка Windows, Linux и Mac OSX
Поддержка компиляторов Visual C++ 6 (необходим STLport), Visual C++.Net 2002 (необходим STLport) и Visual C++.Net
2003 в среде Windows
Поддержка компиляторов gcc 3+ в средах Linux / Mac OSX (необходим XCode)
Материалы и шейдеры
Мощный язык для объвляения материалов, который позволяет выносить опредления материлов в отдельные файлы. Это позволяет сократить время разработки, поскольку вам не нужно каждый раз перекомпилировать программу, когда вы что-то изменяете в материале. Поддержка вершинных и фрагметный программ (шейдеров). Ogre поддерживает как низкоуровневый программы, написанные на ассемблере, так и программы, написанные на языках высокого уровня (Cg и DirectX9 HLSL). Поддержка мультитекстурирования, за счет многопроходного рендеринга, а также генерации и модификации текстурных координат на не перепрограммируемом аппаратном обеспечении. Поддержка множественных техник материала. Вы можете разработать несколько альтернативных вариантов материала, а OGRE автоматически будет использовать лучшие из тех, которые поддерживаются видеокартой. Поддержка LOD'а для материалов, что позволяет увеличить производительность. Загрузка текстур из файлов PNG, JPEG, TGA, BMP и DDS, включая такие необычные форматы как одномерные текстуры, объемные текстуры, cubemaps и сжатые текстуры (DXT/S3TC).
Модели
Гибкий формат файлов моделей. Разделение понятий буфер вершин, буфер индексов, объявление вершин и buffer mappings. Плагины для экспорта моделей из Milkshape3D, 3D Studio Max, Maya, Blender и Wings3D. Склетная анимаци, включая смешивание нескольких анимаций и variable bone weight skinning. Поддержка Biquadric Bezier patches для изогнутых поверхностей. Прогрессиные модели (LOD)
Сцена
Гибкое и легкое управление, не привязанное к какому-то одному типу сцены. OGRE позволяет использовать как стандратные классы для управления сценой, так и собственные, что дает полный контроль. Несколько примеров плагинов, демонстрирующих различные способы хранения данных сцены и управления ее отрисовкой в завимости от типа сцены (например BSP, Octree). Сцены основываются на иерархических графах. Узлы позволяют присоеденить один объект к другому, что дает возможность одной командой передвигать, поворачивать и т.д. несколько объектов. Scene querying features
Спецэффекты
Поддержка систем частиц, включая легко настраиваемые эмиторы и аффекторы. Система может быть объявлена в отдельном текстовом файле, что позволяет легко настроить ее. OGRE автоматически использует объединения частиц (particle pooling) для увеличения производительности. Поддержка skyboxes, skyplanes и skydomes. Поддержка Billboard'ов для спрайтовой графики Автоматической управление прозрачными объектами (управление порядком отрисовки и настройками буфера глубины).
Прочее
Отлаженная инфрастуртура управления ресурсами и паматью, а также поддержка загрузки данных из архивов (ZIP, PK3). Гибкая архитектура, основанная на плагинах, позволяет расширять возможности движка без его перекомпиляции. Контроллеры позволяют вам легко организовать передачу данных между объектами. Debugging memory manager для обнаружения утечек памяти. В поставку входит пример (ReferenceAppLayer) совместного использования OGRE'а и других библиотек, например, ODE для обработки столкновений и физики. XMLConverter позволяет эффективно конвертировать данные из формата OGRE'а в формат XML и наоборот.