Предложение о том, какой движок С++ 3D лучше между Ogre, Irrlicht и OpenSceneGraph

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

Я хотел бы узнать ваше мнение о том, какой лучший выбор для 3d-движка между этими 3 продуктами, о которых я слышал:

  • Ogre
  • Irrlicht
  • OpenSceneGraph

Требования, которые мне нужны, следующие:

  • Поддержка кросс-платформы
  • Высокие показатели
  • Поддержка видеокодека
  • Лицензии (возможно, есть возможность выпускать как открытую, так и закрытую исходную версию моего продукта, написанную с выбранной структурой).
  • Качество и количество доступных графических эффектов

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

Я хотел бы лучше понять, какие различия и преимущества использования одной структуры вместо другой.

6 ответов

Во-первых, как OpenSceneGraph (OSG для коротких), так и Ogre3D очень хорошо документированы, поддерживаются, большой форум и т.д. Я не знаю много о Irrlicht, кроме того, это самый новый из них. Вероятно, вы не ошибетесь ни с одним из первых двух. Кто-то упомянул CrystalSpace; Я не смотрел на это годами, но это было далеко позади этих парней в функциях и API.

Домен

Если бы я решал, я хотел бы знать, в какой области я сосредоточился. Моделирование всей земли. Или ощущение того, что будет сделано. Такие, как: Ландшафт/земля, как видно из воздуха | Внутри здания, но с некоторыми извне | Что-то САПР как | Визуализация информации

Я говорю, что, поскольку OpenSceneGraph оказывает сильное влияние на моделирование и военную обстановку. Раскрытие информации: что мое поле и я используем OSG на ежедневной основе. Тем не менее, я всегда хотел попробовать Ogre3D и следовал за ним в течение многих лет на боковой линии; Я просто не обошла его. Таким образом, я не могу полностью сравнивать и сравнивать. Я бы сказал, что из-за истории проектов и основных пользователей: Ogre3D имеет более видеоигр; OSG больше моделирования. Но и на эту арену не привязан.

Например, скажем, у меня было: Симуляция тяжелая с ragdoll/людьми: я бы пошел с Ogre3D. Моделирование, использующее файл terrapage: Довольно многое должно было перейти в OSG.

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

Я не могу говорить на стороне Linux Ogre3D. Но главный разработчик (Роберт Осфилд) использует Linux/Mac для всех своих вещей. CMake - это то, что используется для компиляции кода. Или просто используйте apt-get, чтобы попробовать оба.

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

Я бы пообещал, что оба получат хорошую производительность, учитывая правильные настройки (опять же, что визуализируется... файлы bsp, octtrees, high flying sim?). И используемая ОС может иметь значение для них.

Внешний вид

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

Управление сценой

Когда дело доходит до этого раздела, OSG очень чистая и интуитивно понятная. Перемещение сцены, поиск узлов, изменение состояний на подграфах, очень легко сделать.

Сценарии

Вы не упомянули об этом, но я подумал, что я его брошу. Я бы отправился в Ogre3D. OSG требует 3rdParty или настраиваемый плагин. И Иррихт не поддерживает его вообще.

Теперь, когда вы читаете мое мнение, как и вам, нужен еще один из них, этот сайт (Devmaster) отлично подходит для других людей. Хотя, кратко об этом.

ps - Существует нечто гибридное (OSG based): это Delta3D. Он также хорошо поддерживается и обновляется. И, вероятно, есть производная Ogre3D, которая больше похожа на:).


Если вы хотите выбрать движок или любое среднее изделие, вам нужно четко определить, что вы хотите сделать. Вы говорите, что не делаете игру, и вам нужна поддержка видеокодеков. Похоже, вы хотите, чтобы воспроизведение 2D/3D, аудио и видео было написано на С++.

Для 2D/3D ogre - отличная библиотека. Это было давно и хорошо проверено, но orge - это движок рендеринга графики, а не игровой движок, хотя есть сторонние библиотеки, чтобы добавить другую поддержку. Это лицензия MIT, очень открытая включает в себя коммерческие.

Для воспроизведения видео (и многое другое) вы можете искать библиотеки, такие как FFmpeg Имеет лицензию LGPL, поэтому нет статической ссылки в коммерческих приложениях.

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

Какую дополнительную информацию о вашем проекте сложно сформулировать. Надеюсь это поможет.


Ogre является самым популярным (из-за Google Trends) тех, которые вы выяснили, поэтому вы можете рассчитывать на сильную поддержку сообщества.

Кроме того, вы должны спросить https://gamedev.stackexchange.com/


Я думаю, что это личный выбор. Я предпочитаю Ogre над Irrlitch (плохой API) или OpenSceneGraph (плохая связь). Исходный код Ogre обладает большим качеством и используется многими коммерческими играми.

Он не поддерживает видео, но вы можете использовать сторонние библиотеки, такие как Ogre3D Video.

Если у вас на уме коммерческий проект, подумайте о Unity 3d (платная версия не бесплатна).

Все 3D-двигатели очень похожи. Основное различие заключается в том, как работает система шейдеров. Ogre имеет приятную и мощную систему script для записи шейдеров. Ogre это очень профессионально и хорошо документировано (есть много полезных примеров и приятное сообщество).


Crystal Space также выглядит хорошо.


Torque 3D кажется более зрелым, чем Ogre3D, в основном это полнофункциональный игровой движок (лицензия MIT). Разработка в С++/Visual Studio возможна (протестирована несколько месяцев назад), но также имеет встроенный язык сценариев.

licensed under cc by-sa 3.0 with attribution.