Альтернатива Java3D - PullRequest
       53

Альтернатива Java3D

13 голосов
/ 07 августа 2011

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

Кто-нибудь предлагает альтернативы? Есть ли опыт такой миграции?

Ответы [ 5 ]

10 голосов
/ 07 августа 2011

JOGL обеспечивает прямой доступ к функциям OpenGL. Эти функции в основном являются функциями низкоуровневого рисования, и вам приходится иметь дело с природой «конечного автомата» OpenGL во время программирования.

Java3D абстрагирует этот конечный автомат. Позволяет определить дерево графических объектов, размещенных на виртуальной сцене и визуализированных камерой. Манипулирование этими графическими объектами проще с такой древовидной структурой. Затем Java3D должен пройти через это дерево и вызвать функции рисования OpenGL.

Этот вид библиотеки называется scenegraph . В Java много библиотек сценографов, некоторые реализованы поверх JOGL. У меня нет списка, но это ключевое слово поможет вам в ваших исследованиях.

В нашем проекте мы пробовали 3 или 4 разные библиотеки, но никто не выполнил все наши требования. Мы закончили писать нашу собственную библиотеку сценографов (поверх JOGL).

6 голосов
/ 06 сентября 2011

jMonkeyEngine, Ardor3D, jPCT или Xith3D - намного лучшие варианты в наши дни.

3 голосов
/ 07 августа 2011

JOGL действительно хороший вариант.Однако это просто библиотека-обертка для OpenGL.Это означает, что вам все равно придется выполнять большую часть работы самостоятельно.Если вам это удобно и это соответствует вашим потребностям, это не так уж сложно.Но это может занять немного времени и не зная вашей текущей кодовой базы, я не знаю, насколько легко переносится.

Однако вы можете выбрать двигатель, который может использовать JOGL.Что-то вроде JMonkey Engine , чтобы просто назвать пример.Если вы посмотрите, вы обязательно найдете несколько других.Взгляните на них, на их простоту использования и функциональность, чтобы увидеть, что вам больше подходит.Они, вероятно, не отберут у вас всю работу, но могут сделать это немного легче.

2 голосов
/ 24 февраля 2012

Я использую JOGL 2.0 (низкоуровневое связывание Java для API OpenGL (и OpenGL-ES). Недавно я помог кому-то возродить Java3D. Теперь он опирается только на JOGL 2.0 и работает лучше, особенно на Mac OS X. Вы можете найти исходный код здесь: https://github.com/hharrison/java3d-core

Давайте веселиться. Активно поддерживается заново;)

P.S .: Я написал подробную статью, чтобы объяснить, как использовать самую последнюю версию Java3D (1.6) здесь .

2 голосов
/ 17 августа 2011

См. Также эту ветку форума Java 3D: вопросы жизнеспособности Java3D ... https://forums.oracle.com/forums/thread.jspa?threadID=2150209&tstart=15

Август, ИнтерактивМеш

...