Alternative à Java3D


Mes collègues utilisent Java3D pour visualiser les résultats de simulations par éléments finis. Le problème est que Java3D semble être en quelque sorte mort, et c'est une douleur sur OSX. C'est l'une des raisons pour lesquelles nous recherchons des alternatives. Beaucoup de travail a été consacré à notre implémentation actuelle basée sur Java3D, donc la question est de savoir combien d'efforts il faudrait pour s'éloigner de Java3D. JOGL est une option, mais ressemble à beaucoup de travail.

Quelqu'un a-t-il des suggestions d'alternatives? Tout expériences avec une telle migration?

Author: Bart, 2011-08-07

5 answers

JOGL fournit un accès direct aux fonctions OpenGL. Ces fonctions sont principalement des fonctions de dessin de bas niveau, et vous devez faire face à la nature "machine à états" d'OpenGL pendant que vous programmez.

Java3D résume cette machine d'état. Il vous permet de définir un arbre d'objets graphiques, placés dans une scène virtuelle, et rendus par une caméra. La manipulation de ces objets graphiques est plus facile avec une telle structure arborescente. Ensuite, c'est à Java3D de marcher à travers cet arbre et d'appeler le Fonctions de dessin OpenGL.

Ce type de bibliothèque est appelée scène graphique. Il existe de nombreuses bibliothèques scenegraph en java, certaines sont implémentées au-dessus de JOGL. Je n'ai pas de liste, mais ce mot-clé vous aidera dans vos recherches.

Dans notre projet, nous avons essayé 3 ou 4 bibliothèques différentes, mais personne n'a rempli toutes nos exigences. Nous avons fini d'écrire notre propre bibliothèque scenegraph (au-dessus de JOGL).

 9
Author: barjak, 2011-08-07 18:52:34

JMonkeyEngine, Ardor3D, jPCT ou Xith3D sont de bien meilleures options de nos jours.

 6
Author: Gavin, 2011-09-06 18:52:04

JOGL est en effet une bonne option. Cependant, il s'agit simplement d'une bibliothèque wrapper pour OpenGL. Cela signifie que vous devrez encore faire beaucoup de travail vous-même. Si vous êtes à l'aise avec cela et que cela convient à vos besoins, ce n'est pas si difficile. Mais cela peut prendre un peu de temps et ne pas connaître votre base de code actuelle, je ne sais pas à quel point le transfert est facile.

Vous pouvez cependant opter pour un moteur qui pourrait utiliser JOGL. Quelque chose comme JMonkey Engine pour nommer purement un exemple. Si vous regardez, vous en trouverez sûrement d'autres. Jetez un oeil à ceux-ci, leur facilité d'utilisation et leurs fonctionnalités pour voir ce qui vous convient le mieux. Ils ne vous enlèveront probablement pas tout le travail, mais ils pourraient le rendre un peu plus facile.

 3
Author: Bart, 2011-08-07 14:25:39

Voir aussi ce fil de discussion du forum Java 3D : Questions de viabilité Java3D... https://forums.oracle.com/forums/thread.jspa?threadID=2150209&tstart=15

Août, InteractiveMesh

 2
Author: InteractiveMesh, 2011-08-17 07:29:34

J'utilise JOGL 2.0 (qui est une liaison Java de bas niveau pour l'API OpenGL (et OpenGL-ES). J'ai récemment aidé quelqu'un à relancer Java3D. Maintenant, il ne repose que sur JOGL 2.0 et cela fonctionne mieux, en particulier sur Mac OS X. Vous pouvez trouver le code source ici: https://github.com/hharrison/java3d-core

Amusons-nous. Il est activement maintenu à nouveau ;)

P. S: j'ai écrit un article détaillé pour expliquer comment utiliser la toute dernière version de Java3D (1.6) ici.

 2
Author: gouessej, 2014-02-05 18:52:48