![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Если вы задались целью написать программу для 3D моделирования физических процессов или собственный SecondLife не торопитесь в магазин за книжкой про OpenGL - посмотрите в сторону готовых движков, вам в любом случае в одиночку без соответствующих скилов и близко не подобраться к тому на что способны современные OpenSource библиотеки.
Конечно никто не мешает приобрести за бабки лицензию на коммерческий продукт с соответствующим инструментарием, но по словам специалистов, дешевые коммерческие реализации сливают некоторым свободным, а на Unreal Engine 3 может денег не хватить. Вот два недорогих варианта: Power Render 6 (вроде за 100$ дают исходники) и Leadwerks Engine (150$ за Single user лицензию). Способны на все современные фишки (динамическое освещение, динамические тени, HDR, шейдеры и т.д.), включают в себя физический движок но работают только под виндой.
Если платить не готовы и не собираетесь писать под консоли то читаем дальше.
Вот что мне удалось разрыть:
- Blender - мультиплатформенная среда для 3D моделирования и анимации, можно использовать как конструктор для построения игрушек.
- OpenSceneGraph (OSG) - С++, OpenGL. Работает под разными ОС, доступны исходные тексты. Используют во Flightgear.
- Panda3D - C++, Python. Работает только под Windows, несет на борту все что только можно (графика, звук, физика, сеть, скриптование), легок в освоении.
- G3D - C++. Очень хвалят, работает под различными ОС, доступны исходники.
- OGRE - C++, самый популярный, мультиплатформенный, расширяемый, доступный в исходниках. А тут отличный русскоязычный ресурс.
Для физики можно взять:
- ODE - доступен в исходниках. Больше подходит для научного моделирования. Используют в игре S.T.A.L.K.E.R.
- Newton - давно не развивается, свободный, но без исходников. Есть сборка под Windows, MAC и Linux. Используют очень часто в различных проектах (в т.ч. в коммерческих движках).
- NVIDIA PhysX - наконец открыли SDK. Есть вариант для Windows и Linux (!). Кто не читал предыдущие посты - позволяет заюзать мощности видеокарты NVidia.
- Havok - FreeWare для некоммерческого использования.
И так, что же выбрать?
Тут вопрос индивидуальный, все они умеют примерно одно и то же, работают быстро и дают красивую картинку.
У некоторых на борту уже есть все (физика, звук, графика, сеть, скрипты), у кого-то только графика (OGRE) а все остальное по своему выбору.
Где-то может API поудобнее и документации побольше.
В основном все рекомендуют брать OGRE. Куча документации, огромное сообщество, "правильный" C++, модульная архитектура и наличие множества дополнений (в т.ч. привязка к физическим движкам ODE, Newton, PhysX), и ничего лишнего (только графика). Умеет рендерить через D3D, и OpenGL, скелетная анимация, работает быстро и качественно, многое умеет (все современные фишки в т.ч. динамические тени, рендеринг на текстуру и HDR), а если нет, то можно научить. Есть исходники и собирается под разные ОС, понимает множество разных форматов файлов, удобный менеджер ресурсов.
Для скриптования можно взять тот же Lua, для звука OpenAL, для физики Newton, сеть самому.
Модели и сцены рисуются в т.ч. на 3ds Max и на Blender (конвертеры и плагины для экспорта). Вот скрины из различных проектов.
Главное - проект развивается.
Я думаю лучше потратить время на изучение возможностей готового движка и на бизнес-логику чем на топтание впустую вокруг низкоуровневых API.
Конечно никто не мешает приобрести за бабки лицензию на коммерческий продукт с соответствующим инструментарием, но по словам специалистов, дешевые коммерческие реализации сливают некоторым свободным, а на Unreal Engine 3 может денег не хватить. Вот два недорогих варианта: Power Render 6 (вроде за 100$ дают исходники) и Leadwerks Engine (150$ за Single user лицензию). Способны на все современные фишки (динамическое освещение, динамические тени, HDR, шейдеры и т.д.), включают в себя физический движок но работают только под виндой.
Если платить не готовы и не собираетесь писать под консоли то читаем дальше.
Вот что мне удалось разрыть:
- Blender - мультиплатформенная среда для 3D моделирования и анимации, можно использовать как конструктор для построения игрушек.
- OpenSceneGraph (OSG) - С++, OpenGL. Работает под разными ОС, доступны исходные тексты. Используют во Flightgear.
- Panda3D - C++, Python. Работает только под Windows, несет на борту все что только можно (графика, звук, физика, сеть, скриптование), легок в освоении.
- G3D - C++. Очень хвалят, работает под различными ОС, доступны исходники.
- OGRE - C++, самый популярный, мультиплатформенный, расширяемый, доступный в исходниках. А тут отличный русскоязычный ресурс.
Для физики можно взять:
- ODE - доступен в исходниках. Больше подходит для научного моделирования. Используют в игре S.T.A.L.K.E.R.
- Newton - давно не развивается, свободный, но без исходников. Есть сборка под Windows, MAC и Linux. Используют очень часто в различных проектах (в т.ч. в коммерческих движках).
- NVIDIA PhysX - наконец открыли SDK. Есть вариант для Windows и Linux (!). Кто не читал предыдущие посты - позволяет заюзать мощности видеокарты NVidia.
- Havok - FreeWare для некоммерческого использования.
И так, что же выбрать?
Тут вопрос индивидуальный, все они умеют примерно одно и то же, работают быстро и дают красивую картинку.
У некоторых на борту уже есть все (физика, звук, графика, сеть, скрипты), у кого-то только графика (OGRE) а все остальное по своему выбору.
Где-то может API поудобнее и документации побольше.
В основном все рекомендуют брать OGRE. Куча документации, огромное сообщество, "правильный" C++, модульная архитектура и наличие множества дополнений (в т.ч. привязка к физическим движкам ODE, Newton, PhysX), и ничего лишнего (только графика). Умеет рендерить через D3D, и OpenGL, скелетная анимация, работает быстро и качественно, многое умеет (все современные фишки в т.ч. динамические тени, рендеринг на текстуру и HDR), а если нет, то можно научить. Есть исходники и собирается под разные ОС, понимает множество разных форматов файлов, удобный менеджер ресурсов.
Для скриптования можно взять тот же Lua, для звука OpenAL, для физики Newton, сеть самому.
Модели и сцены рисуются в т.ч. на 3ds Max и на Blender (конвертеры и плагины для экспорта). Вот скрины из различных проектов.
Главное - проект развивается.
Я думаю лучше потратить время на изучение возможностей готового движка и на бизнес-логику чем на топтание впустую вокруг низкоуровневых API.