3D симуляции в Java

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

Кто-нибудь может порекомендовать какие-нибудь двигатели или обертки? Я знаю, что есть Java3D, но не устарел ли он сейчас? Я также видел JMonkey Engine, хотя это для игр, я уверен, что это будет хорошо для программного обеспечения для моделирования?

Спасибо!

2 ответа

Решение

Вам придется подтвердить свои требования к точности, прежде чем вы получите действительно полезный ответ на этот вопрос. Некоторые наблюдения:

Java 3D. Похоже, что с 2008 года он активно не разрабатывался (хотя, похоже, он был портирован на использование JOGL). Если он делает то, что вам нужно, продолжайте и используйте его, но не ожидайте, что он получит какие-либо новые функции в ближайшее время (если вы не хотите писать их самостоятельно). Поскольку это в основном менеджер графа сцены, он может быть полезен для отображения, но у него нет никаких возможностей физического моделирования.

JOGL - это привязки OpenGL для Java. Его последней стабильной версии также около 4 лет, но есть признаки того, что он находится в стадии разработки, чтобы воспользоваться преимуществами новых функций OpenGL.

jBullet - это физический движок для игровых целей. По сути, это Java-порт движка C++ Bullet Physics.

jMonkey - это игровой движок, который объединяет движок рендеринга (Java 3D) и физический движок (jBullet) в один пакет.

Вернемся к моему основному вопросу. Если ваши требования могут быть удовлетворены игровым движком, тогда вы можете использовать что-то вроде jMonkey или если вы хотите сократить его, просто используйте JOGL и jBullet.

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

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

Что касается

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

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

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

Другие альтернативы:

lwjgl ( веб-сайт) Игровая библиотека, включающая GL-привязку и поддержку элементов управления и звука.

ode4j ( веб-сайт) Библиотека физики 3D-игр. Это порт Java библиотеки физики ODE C/C++.

Другие вопросы по тегам