Thalion Group logo    Обратная связь
Поиск  
Список категорий
..... GameDev .......... Game Design .......... Интервью ............... Интервью с издателями ............... Интервью с разработчиками .......... Общие вопросы .......... Программирование игр ............... Direct3D ............... Engine ............... OpenGL ............... Графика ............... Звук ............... Сети ............... Экспорт .......... Разработка MMOG ..... Hardware .......... Другие статьи .......... Интерфейсы передачи данных .......... Корпоративные инфраструктуры .......... Лазерные диски .......... Материнские платы, микропроцессоры .......... Мобильное... .......... Модемы .......... Мониторы .......... Ноутбуки .......... Оперативная память .......... Подсистемы хранения данных .......... Принтеры .......... Серверы и архитектуры ..... Internet .......... ActiveX .......... ASP .NET .......... CGI .......... Flash .......... HTML .......... JavaScript .......... SEO .......... VBScript .......... VRML .......... web-дизайн .......... Web-сервисы .......... XML .......... Поиск в Internet .......... Протоколы .......... Разное .......... Серверы ..... IT-консалтинг .......... BPM - Business Performance Management .......... Business Intelligence .......... MRP- и ERP- системы .......... Автоматизация бизнес-процессов .......... Другие статьи .......... Корпоративные сайты и порталы .......... Стандарт CobiT ..... Security .......... Безопасность в Интернет .......... Буква закона .......... Вирусы и другой вредоносный код .......... Защита Web сайтов .......... Криптография .......... Статьи, обзоры, книги .......... Технологии взлома ..... Software Engineering .......... CASE-технологии .......... Middleware .......... Programming Stone по-русски .......... Методологии разработки ПО ............... Экстремальное программирование (XP) .......... Проектирование и моделирование .......... Средства разработки приложений .......... Тестирование .......... Управление качеством .......... Управление проектами ..... Алгоритмы .......... АИ, ГА, Нейронные сети .......... Графика .......... Игры .......... Математика ............... Вычислительная геометрия .......... Поиск. Строки и последовательности .......... Разбор выражений. Компиляторы и интерпретаторы. .......... Разное .......... Сжатие и кодирование .......... Сортировка .......... Структуры данных ..... Базы данных .......... Access .......... Cache' .......... Clarion .......... DB2 .......... FoxPro .......... Informix .......... InterBase .......... MS SQL Server .......... MySQL .......... Oracle .......... Postgres (PostgreSQL) .......... Sybase .......... Дайджесты .......... ЛИНТЕР .......... Статьи .......... Учебные пособия и обзоры ..... Другое ..... Операционные системы .......... BeOS .......... FreeBSD .......... Linux .......... Netware .......... OpenBSD .......... OS/2 .......... Unix .......... Windows ............... Windows 2003 Server .......... Windows Mobile .......... Виртуальные машины .......... Другие операционные системы .......... Теория ..... Программирование .......... Assembler ............... Прерывания .......... C# .......... C++ Builder .......... C/C++ ............... QT .......... Delphi/Pascal .......... Java .......... Perl .......... PHP .......... Python .......... Visual Basic .......... Защита программного обеспечения .......... Оптимизация .......... Программирование для встроенных систем ..... Сети .......... ATM .......... Netware .......... xDSL .......... Беспроводные технологии .......... Дайджесты и статьи по сетевым технологиям .......... Локальные сети .......... Сетевое оборудование .......... Сети хранения данных .......... Учебные пособия и обзоры ..... Стандарты ..... Юмор
Thalion Group .: GameDev .: Программирование игр .: Что такое OGRE 3D и с чем его едят.

Что такое OGRE 3D и с чем его едят.

OGRE (Object-Oriented Graphics Rendering Engine) - объектно-ориентированный графический движок с открытым исходным кодом, написанный на языке программирования С++ и разработан специально для упрощения задачи использования аппаратно-ускоренной графики в различных приложениях. Стоит особенно отметить, что OGRE - это не игровой движок в полном понимании этого слова. OGRE - исключительно графический движок, то есть, сам по себе он не обеспечивает реализации звука, поддержки сети, физики и так далее. Однако, дополнительные библиотеки для реализации таких возможностей могут быть легко подключены и использованы.

На первый взгляд, такая узконаправленность движка может быть воспринята как неудобство. Однако, только на первый взгляд. Разработчики могут по своему усмотрению выбирать любые библиотеки, реализующие физику, звук, поддержку сети, что придаёт OGRE большую гибкость. Вот что говорит об этом Sinbad, ведущий разработчик OGRE:

"OGRE - всего лишь часть большой системы. OGRE не является, и никогда не был средством для быстрого создания игр, он - инструмент для определенной цели. Мне иногда приходится бешено защищать эту идею, потому что я иду против идеи других движков, принцип которых "все в одном ". Я думаю, что системы программного обеспечения должны быть модульными, поддерживать расширения и иметь простой интерфейс. Я считаю, что каждое звено должно концентрироваться на своей основной области и позволять другим продолжать специализацию в своей (я считаю безумием пробовать повторно изобрести ODE, например, как делают некоторые другие движки). Я считаю, что наиболее важная часть любой системы программного обеспечения - это интерфейс, способность поддерживать другие проекты. Я понимаю, что этот подход означает, что нельзя с Ogre сделать игру так быстро, как с другим движком "все в одном ". Но я думаю не только про сегодняшний день. Моя философия заключается в создании гибкой графической системы, которая будет универсальной и позволит подключать другие компоненты, вместо того, чтобы сделать движок, который будет уметь всего понемногу и подходить для одного-двух проектов. Я считаю гибкость важнее скорости, потому что в гибкую систему вы можете добавлять модули, чтобы она развивалась в определенном направлении. Конечно разрабатывать игру, имея отдельно физику, отдельно графику, отдельно звук, сеть - очень трудно. Именно поэтому необходимо создать систему, легко объединяющую в себе все необходимые компоненты для того или иного проекта. Время проходит, и я ожидаю большее количество 'комбинированных' решений. Сейчас уже строятся системы основанные на Ogre в связке с другими модулями. Возможно, я буду разрабатывать собственный вариант, объединяющий Ogre c звуковыми/сетевыми/физическими библиотеками. Но мой выбор - это не ваш выбор. Для каждой отдельной задачи будет свой набор компонентов. Я считаю это очень важным. Обратите внимание, это не говорит о том, что вы не можете использовать Ogre для игр. Скорее вы собираетесь использовать его больше для игр, чем для чего-то другого. Это просто значит, что Ogre не решает, какие библиотеки вы будете использовать, и оставляет за вами выбор остального окружения".

Возможности OGRE:

Производительность

Простой, понятный, независящий от используемого 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 и Visual C++.Net 2005 в среде 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 и наоборот.

Вот несколько скриншотов из проектов, использующих OGRE 3D:

Iris2

MOTORM4X

Pacific Storm

Помогла ли Вам эта статья?

Схожие статьи

article Что такое RSS?
Что такое RSS?RSS - это формат,...

(No rating)  27-11-2006    Views: 4153   
article Что такое ATM?
Чубарков АрсенТехнология ATM (...

(No rating)  28-11-2006    Views: 6659   
article Что такое стильный web-сайт?
Стильный web-сайт - это когда каждая...

(No rating)  8-12-2006    Views: 3246   

Комментарии

Добавить комментарий
К этой статье нет комментариев.



©Thalion Group


Реклама: