Альтернатива Java3D
Мои коллеги используют Java3D для визуализации результатов моделирования конечных элементов. Проблема в том, что Java3D кажется как-то мертвым, и это боль в OSX. Это одна из причин, по которой мы ищем альтернативы.
В нашей текущей реализации, основанной на Java3D, довольно много работы, поэтому вопрос заключается в том, сколько усилий было бы уйти от Java3D.
JOGL - это один из вариантов, но выглядит много.
Есть ли предложения по альтернативам? Любой опыт такой миграции?
Ответы
Ответ 1
JOGL обеспечивает прямой доступ к функциям OpenGL. Эти функции, в основном, являются низкоуровневыми функциями рисования, и вам приходится иметь дело с природой OpenGL в режиме "state machine", когда вы программируете.
Java3D ретранслирует этот конечный автомат. Он позволяет вам определять дерево графических объектов, помещать их в виртуальную сцену и визуализировать с помощью камеры. Манипуляция этими графическими объектами проще с такой древовидной структурой. Затем, до Java3D, чтобы пройти через это дерево и вызвать функции рисования OpenGL.
Этот вид библиотеки называется сценографом. В java много библиотек сценографов, некоторые из них реализованы поверх JOGL. У меня нет списка, но это ключевое слово поможет вам в ваших исследованиях.
В нашем проекте мы попробовали 3 или 4 разные библиотеки, но никто не выполнил все наши требования. Мы закончили писать нашу собственную библиотеку сценографов (поверх JOGL).
Ответ 2
jMonkeyEngine, Ardor3D, jPCT или Xith3D - намного лучшие варианты в наши дни.
Ответ 3
JOGL - действительно хороший вариант. Однако это просто библиотека-оболочка для OpenGL. Это означает, что вам все равно придется самому заниматься своей работой. Если вам это нравится, и это соответствует вашим потребностям, на самом деле это не так сложно. Но это может быть довольно много времени и не знать вашу текущую базу кода. Я не знаю, насколько легко переносится.
Однако вы можете использовать двигатель, который может использовать JOGL. Что-то вроде JMonkey Engine, чтобы чисто назвать пример. Если вы посмотрите, вы наверняка найдете других. Посмотрите на них, их простоту использования и их функциональность, чтобы увидеть, что вам больше всего подходит. Вероятно, они не уберут от вас всю работу, но они могут сделать это немного легче.
Ответ 4
Смотрите также эту тему в Java 3D: вопросы жизнеспособности Java3D... https://forums.oracle.com/forums/thread.jspa?threadID=2150209&tstart=15
Август, InteractiveMesh
Ответ 5
Я использую 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) здесь.