Irrlicht

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск
Irrlicht
ТипГрафический движок
РазработчикNikolaus Gebhardt et al.
Лицензияzlib
Платформаx86, x86-64, etc
Написан наC++
Сайтirrlicht.sourceforge.net

Irrlicht (Irrlicht 3D Engine, Irrlicht Engine, трансл. Ирлич) — бесплатный свободный открытый кроссплатформенный трёхмерный графический (не игровой) движок в виде набора библиотек.

Особенности

«Irrlicht» использует возможности OpenGL, DirectX и нескольких собственных рендереров. Пользователю предоставляются различные функциональные возможности по загрузке и управлению трёхмерными (3D) объектами (сцены, модели и т.п.), немногими спецэффектами и графическим интерфейсом пользователя. Рекомендуется для ознакомления с процессом разработки игр и создания несложных игр и демо сцен; Irrlicht поддерживает форматы популярных игр и движков, в частности модели Quake 2, Quake 3, карты уровней и др. Не требует подключения сторонних модулей для реализации высок. ур. функций; есть простейшая физика, GUI и т.д. Существует 3 офиц. дополнения для Irrlicht: IrrKlang – аудиобиблиотека, IrrXML – загрузка и обработка XML-файлов, IrrEdit – редактор сцен. Для использования расширенных функций физики существует физ. движок ChronoEngine, по причине того, что в Irrlicht встроена примитивная физ. система.

Кроссплатформенность

Одна из важных особенностей Irrlicht — его кроссплатформенность, т.е. способность работать на различных платформах. Платформонезависимая прослойка обеспечивает лёгкую портируемость на различные не поддерживаемые офиц. платформы.

Вид

Irrlicht представляет собой набор подключаемых C++ библиотек. Поэтому в Irrlicht всё делается путём непосредственного программирования в IDE, нет SDK (редактора с графическим интерфейсом). У движка Irrlicht ранее среди прочих существовало офиц. дополнение IrrEdit, которое представляло собой редактор сцен, т.е. в какой-то степени SDK. Потом IrrEdit перерос в CopperCube, и в дальнейшем стал развиваться отдельно именно как CopperCube, а сам Irrlicht остался без графического редактора.

Тип

Часто Irrlicht причисляют к игровым движкам. Irrlicht это не полноценный игровой движок, а скорее библиотека (middleware), примерно такая же как SDL и SFML, от них он ушёл не далеко, но в данном случае именно графическая библиотека. Irrlicht это не игровой, а именно графический движок, поэтому он и реализован в виде библиотеки.

Ошибочное причисление к игровым движкам

Почему Irrlicht часто причисляют к игровым движкам? Дело в том, что, для графической библиотеки, Irrlicht берёт на себя многие лишние функции – напр., в Irrlicht есть функционал импорта карт формата bsp движка Id Tech 3, открытие архивов pk3 движка Id Tech 3, работа с анимацией, звуковой движок и собственный небольшой физ. движок, который может отслеживать коллизии коллайдеров. Наличие звукового и физического движков это прерогатива игрового движка. Поэтому Irrlicht ошибочно причисляют к игровым движкам. Однако, кроме этого у Irrlicht больше ничего нет, чтобы делало его игровым движком. Поэтому Irrlicht это именно графический движок.

Вероятно, разработчик добавил в Irrlicht свой небольшой физический движок для тестов. Использовать же в реальных играх этот маленький игровой движок непродуктивно. Об этом разработчик Irrlicht знает, поэтому в офиц. документации Irrlicht в разделе примеров есть урок по подключению к приложению с Irrlicht полноценного физ. движка ODE, чтобы сам Irrlicht занимался только графикой, как и было задумано. Также дела обстоят и со звуковым движком. Несмотря на наличие методов звукового функционала в коде Irrlicht, он всё же подразумевает использование аудио библиотеки irrKlang или компонента SDL_mixer библиотеки SDL в качестве звуковых движков.

Функционал

Модели

  • Модели формата md2 и md3 из Q2 (Id Tech 2) и Q3 (Id Tech 3) понимает, анимации тоже.
  • Файлы .skin из q3 не понимает, поэтому текстуры на модели md3 из q3 накладывает неправильно.

Изображения

  • Читает изображения/текстуры png, те, что исп. в Q2 и Q3 - pcx и tga.
  • Не читает изображения dds.

Архивы

  • Архивы pk3 открывает.

Локации

  • Локации bsp из q3 частично читает.

Анимация

В Irrlicht нельзя использовать несколько различных файлов анимаций, т.е. разные анимации, что подключаются отдельно из др. файлов. Все анимации сразу загружается из одного файла, где они находятся вместе с мэшэм.

По-умолч. Irrlicht по очереди проигрывает все встроенные анимации модели, что были в файле. Для разделения их нужно "нарезать", указав Irrlicht фреймы начала и конца каждой отдельной анимации из общего ряда анимаций.

Ссылки