Показать сообщение отдельно
Старый 31.08.2014, 15:20   #11
shybovycha
ПроЭктировщик
 
Аватар для shybovycha
 
Регистрация: 27.05.2007
Сообщений: 110
Написано 40 полезных сообщений
(для 33 пользователей)
Ответ: Irrlicht vs OpenSceneGraph

По опыту использования посоветую OGRE.

Но сперва обсудим упомянутый Irrlicht. Имею достаточный опыт использования оного. И вот первая свинья: большей часть функциональных требований автора он не удовлетворяет. Про поддержку компилятора или коммьюнити можно умолчать - это вообще не значимые критерии при наличии прямых рук да документации. А вот то, как с этим работать и какую картинку оно выдает - это действительно важно. Пройдемся по всем требованиям по порядку:
  • бесплатность - бесплатный. Здесь все хорошо.
  • не мозгосносящую архитектуру движка - вроди не так уж все плохо.
  • поддержку MinGW - это есть. Да у всех библиотек под С++, которые рашпилем не точились под MSVC она есть - главное руки подстроить
  • возможность поиграться с настройками рендера (выбор GAPI, рендер в текстуру) - есть
  • поддержку джойстиков искаропки - есть
  • возможность многопоточного использования движка (фоновая подгрузка, исключение указанной сущности из рендера) - чтобы сбылись мечты народные - это только руками. Ну нету у иррлихта возможности грузить ресурсы в фоне!
  • инструменты поддержки больших открытых пространств (секторная подгрузка террайнов) - отсутствует. Напрочь. Либо руками реализовывать, либо - никак.
  • модели погодных явлений (облака, дождь) - опять-таки, руками. Плагинов не встречал.
  • легковесность движка и отсутствие необходимости много работать напильником для запуска - все проще некуда - даже хеадер только один!
  • наличие на булке людей, разбирающихся в данном движке - парочка есть
  • реальную возможность создать тикет и получить ответ - реальная возможность есть. Но ответ никто не гарантирует. Никогда. Это - чисто человеческий фактор.

Из личных впечатлений: вырвиглазная поддержка устройств ввода. Либо пиши уродский класс да извращайся с паттернами программирования, либо пиши все в одной функции. Ужос. Хотя, ООП в С++ не менее ужасно по своей природе, посему не такой уж и ужос

Свет и тени - вот это реальный ужос. Стенсильные тени рендерятся с невероятными артефактами. Свет вроди присутствует, но опять-таки, страшно рисуется... Так что, либо молчишь и мучишься, либо пишешь шейдеры. Что не так кошерно, как...

OGRE. Сдесь упор сделан на архитектуру и на картинку, которую в конечном счете увидит пользователь. Должен отметить, что возраст движка и размер коммьюнити значительно превозносят его над Irrlicht. Опять пройдемся по пунктам требований:
  • бесплатность - бесплатный.
  • не мозгосносящую архитектуру движка - по сравнению с Irrlicht архитектура может показаться страшной. Но на деле у ребят отличнейшая архитектура, позволяющая содержать все это в рабочем и, более того, разрабатываемом состоянии.
  • поддержку MinGW - см. выше
  • возможность поиграться с настройками рендера (выбор GAPI, рендер в текстуру) - огромнейший выбор фич. Начиная от кастомизации инициализации приложения (вместо стандартного диалога выбора рендерера, расширения экрана и т. д.) и заканчивая пост-обработкой изображения и рендерингом в текстуру.
  • поддержку джойстиков искаропки - по умолчанию в OGRE используется искаробочная библиотека OIS. О ней - позже.
  • возможность многопоточного использования движка (фоновая подгрузка, исключение указанной сущности из рендера) - чтобы сбылись мечты народные - движок предоставляет различные настройки инициализации приложения, как я уже и говорил. Но должен отметить, что в этой самой инициализации приложения и происходит фактическая загрузка всех ресурсов - они парсятся на наличие ошибок и забиваются в кеш. Таким образом, добавление очередного меша составляет гораздо меньшее время. Мало того, эту самую загрузку можно кастомизировать!
  • инструменты поддержки больших открытых пространств (секторная подгрузка террайнов) - с одной из последних версий движка - искаропки!
  • модели погодных явлений (облака, дождь) - существует чудеснейший плагин - SkyX. В версии 0.4 поддерживается гром и молния плюс объемные облака (для любителей хардкора - при ненадобности но реализации могут добавить лишней работы видяхе. В нужных же случаях - они прекрасны!)
  • легковесность движка и отсутствие необходимости много работать напильником для запуска - попробуйте запустить стандартное приложение - есть масса уроков (даже видео!) - все работает искаропки. Правда, нужно помнить о путях ресурсов и, по-хорошему, ложить их рядом с бинарником да убирать из конфига лишние ресурсы.
  • наличие на булке людей, разбирающихся в данном движке - парочка есть
  • реальную возможность создать тикет и получить ответ - см. выше. Но должен отметить огромнейшее коммьюнити, среди которого активными участниками являются разработчики движка (в отличие от Irrlicht).

Из личных впечатлений: стоит разобраться с ООП в С++, и только тогда приступать к работе с OGRE. Просто потому, что использование будет казаться гораздо более приятным! Та же система ввода гораздо удобнее реализована, нежели в иррлихте. А свет и тени - просто милота! До сих пор восхищаюсь! Наличие разнообразнейших библиотек и плагинов - очень радует. Тот же MyGUI и SkyX, DotScene, OgreNewt/OgreBullet/OgrePhysXWrapper...

Два недостатка, которые лично с моей точки зрения являются недостатками: кастомизация инициализации приложения и свой формат ресурсов.

По первому пункту - можно сделать очень многое и очень круто, просто нужно написать кучу кода. И написать ее грамотно. Но это может дать огромные приросты в скорости загрузки приложения, избавление от (кому-то) надоевшего окна выбора параметров инициализации...

По второму пункту скажу, что это скорее даже плюс. Можно, например, ресурсы одной группы (например, персонаж и все что с ним связано) запаковать в архив и грузить из архива все (поддерживается искаропки!). Но не очень хорошо для standalone-разработчика, когда все модели-анимации-материалы приходится конвертировать в этот формат. И наилучшим образом это поддерживается в 3D Max/Blender (в мои времена, по крайней мере, было так). С другой же стороны, этот подход мотивирует использовать собственный контент.

Выводы

Irrlicht подходит для небольших демок или когда хочется/нужно что-нибудь написать, а особо заморачиваться не хочется.

OGRE настоятельно рекоммендуется в ситуациях, когда картинка решает многое - например, для продакшна.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо shybovycha за это полезное сообщение:
DStalk (31.08.2014), impersonalis (31.08.2014), KCEPOKC (07.09.2014)