Подтвердить что ты не робот

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

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

Есть ли предложения по альтернативам? Любой опыт такой миграции?

4b9b3361

Ответ 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, чтобы чисто назвать пример. Если вы посмотрите, вы наверняка найдете других. Посмотрите на них, их простоту использования и их функциональность, чтобы увидеть, что вам больше всего подходит. Вероятно, они не уберут от вас всю работу, но они могут сделать это немного легче.

Ответ 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) здесь.