С чего мне начать писать / использовать движок трехмерного физического моделирования? - PullRequest
2 голосов
/ 02 марта 2009

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

Ответы [ 8 ]

7 голосов
/ 02 марта 2009
1 голос
/ 10 мая 2009

Хорошей библиотекой Java-физики является jmephysics (http://www.jmonkeyengine.com/jmeforum/index.php?topic=6459);, она довольно проста в использовании и расположена поверх ODE (http://www.ode.org/) и jmonkeyengine (http://www.jmonkeyengine.com), которая дает вам сценограф) (http://en.wikipedia.org/wiki/Scene_graph), опять то, что вам понадобится для чего угодно, кроме очень простого трехмерного приложения.

Хотя я не использовал его в течение некоторого времени и вижу, что они не выпускались с конца 2007 года, поэтому не уверен, насколько активно сообщество сейчас.

1 голос
/ 02 марта 2009

Урок 39 NeHe является хорошей отправной точкой, он написан на C ++, но теория довольно проста для понимания.

1 голос
/ 02 марта 2009

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

Если вы знаете, как это сделать, и хотите освоиться с технологиями, Swing - хороший вариант для создания пользовательских интерфейсов на Java.

Также посмотрите здесь: http://www.myphysicslab.com/

0 голосов
/ 02 марта 2009

Проверьте пулфизику. bulletphysics.com - это форум или проверьте проект на Sourceforge .

0 голосов
/ 02 марта 2009

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

Вы можете начать на этом форуме сообщества, чтобы собрать информацию о том, как это делается: gamedev.net

Конечно, вы можете использовать движок с открытым исходным кодом, например Огр , если вы не хотите писать свой собственный код.

0 голосов
/ 02 марта 2009

Если вам все, что вам нужно для симуляции, это сферы / круги и кубы, тогда все, что вам нужно, это немного математики вектора.

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

0 голосов
/ 02 марта 2009

Как насчет первого определения класса для физического объекта? Он имеет положение, скорость, массу и, возможно, подклассы с другими характеристиками, такими как форма, упругость и т. Д.

Затем создайте вселенную (класс), где разместить эти физические объекты. Звучит весело:)

...