Débat Java : Java3D ou OpenGL pour des scènes 3D ?

Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux


 Discussion forum

Le , par akito, Membre du Club
Bonjour!

Je voulais savoir si il était plus interessant de développer un petit jeu en JOGL ou Java3D?

D'un coté, java3D à l'air plus abordable, de l'autre il a l'air moins performant.
J'ai testé une demo trouvé sur developpez.com :
[URL="ftp://ftp-developpez.com/gfx/demos/java3d/BooksDemo.jnlp"]

Je trouve cette demo pas du tout fluide, en tout cas chez moi ca ram enormement, alors que c'est une appli tres tres basique.
Est-ce pareil chez vous?

Donc Jogl est-il abordable pour un debutant en prog 3D?

J'ai vu un tuto ou rien que pour faire une fenetre vite, il y a vait une page de code, alors qu'en java3D, cela ne prend que quelques lignes.

Merci par avance en tout cas!

PS : Sinon je vois qu'il y a LWJGL, est-il interessant?

Je precise que j'ai lu la FAQ concernant ces techno mais je voulais avoir vos avis. Merci


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de gouessej gouessej
http://www.developpez.com
Membre confirmé
le 17/05/2008 14:55
Citation Envoyé par eclesia  Voir le message
ils ont prevus de se tourner vers JOGL, et je leur fais confiance, ils le feront .

Désolé, je leur ai déjà parlé de ça, les développeurs m'avaient dit que ça se ferait, ça fait des années, je leur avais proposé mon aide pour faire ça et à ma connaissance, JME utilise LWJGL mais il est prévu pour qu'on puisse utiliser un autre binding d'OpenGL en principe, le pas n'a pas été franchi.
Avatar de gouessej gouessej
http://www.developpez.com
Membre confirmé
le 29/04/2009 10:43
Citation Envoyé par gouessej  Voir le message
Désolé, je leur ai déjà parlé de ça, les développeurs m'avaient dit que ça se ferait, ça fait des années, je leur avais proposé mon aide pour faire ça et à ma connaissance, JME utilise LWJGL mais il est prévu pour qu'on puisse utiliser un autre binding d'OpenGL en principe, le pas n'a pas été franchi.

Voilà, les choses ont évolué. JMonkeyEngine supporte bien JOGL mais il y a encore pas mal de problèmes au niveau de la gestion des entrées via AWT, j'ai corrigé quelques petites choses. Si vous voulez voir ce que ça peut donner, voici à ma connaissance la seule démonstration technique de JME avec JOGL, la mienne :
http://download.tuxfamily.org/tuer/tuer.jnlp
Elle sert aussi à tester mon implémentation du portal culling.

Je vous préviens, ça marche très mal sous Windows (ça marche à peu près sous Linux), on se retrouve parfois à ne plus pouvoir arrêter de tourner. Le correctif de bogue consistera à mimer ce qui a déjà été fait dans JagaToo.

Il faut que je mette le build à jour car j'ai réussi à avoir un frame rate 2 à 4 fois supérieur à celui que vous avez là.

Vous pouvez aussi vous tourner vers Ardor3D mais le support de JOGL est encore plus primitif bien que le renderer ait été implémenté directement par Kenneth Russell (à l'origine de JOGL).
Avatar de TanEk TanEk
http://www.developpez.com
Membre Expert
le 04/05/2009 8:17
Ce que je vais dire est un point de vue que j'ai eu en août 2008 (cela a peut-être changé depuis mais ça m'étonnerait...) :
  • java3d est à l'abandon, sun préférant se concentrer sur javafx
  • java3d a plusieurs bugs très génants
  • java3d a une très mauvaise conception, le code est littéralement illisible et non documenté, j'avais voulu ajouter un système de color picking bien intégré dans java3d, j'ai vite abandonné
  • java3d a été conçu essentiellement dans l'optique d'optimiser les compilations des display lists, display lists qui sont maintenant obsolètes...


Donc mon point de vue : tout sauf java3d.
Avatar de gouessej gouessej
http://www.developpez.com
Membre confirmé
le 04/05/2009 13:39
Citation Envoyé par TanEk  Voir le message
[java3d a été conçu essentiellement dans l'optique d'optimiser les compilations des display lists, display lists qui sont maintenant obsolètes...

C'est pire que ça, regarde le code source, la méthode compile qui est sensé faire ça est vide en fait Ca ne sert donc à rien.
Avatar de pan99 pan99
http://www.developpez.com
Candidat au titre de Membre du Club
le 04/05/2009 18:32
Bonjour à tous.

Pour réaliser de la 3D efficace en java, il existe l'excellent langage 'Processing'.
Java 3D étant absolument inefficace en termes de performances.

http://processing.org/learning/libraries/

Ce langage permet de mélanger de la 3D, pour le dessin, avec du code java, pour l'interface.
Excellent !!

Bon courage.
Avatar de eclesia eclesia
http://www.developpez.com
Rédacteur
le 04/05/2009 19:39
Je conseil Ardor3D pour usage professionnel, et pour les jeux JME.

Ardor3D est supposé etre un fork de JME mais au vue du nombre assez important de developpeurs qui ont suivi, j'ai presque envi de dire que JME a été coupé en deux tout simplement avec une version pro (Ardor) et une version Jeu (JME).
Toutefois les architectures sont en train de se dépareiller donc si vous devez "choisir votre camp" il faudrat le faire dans les quelques mois a venir.

Personnellement j'ai pris Ardor3D et j'en suis satisfait.
Avatar de FrenchFrogger FrenchFrogger
http://www.developpez.com
Nouveau Membre du Club
le 06/08/2009 15:14
Pour faire un petit jeu sous forme d'applet 3D, est-ce que JME reste utilise, ou est-ce qu'il est trop lourd (performance, données à télécharger,...)?
Du genre par exemple que l'utilisateur ne mette pas trois heures à télécharger l'applet.
Avatar de Akira Akira
http://www.developpez.com
Membre régulier
le 06/08/2009 16:05
Bonjour FrenchFrogger,

Il me semble que tu as mal compris quelque chose.
Un Applet (3D ou non) est, pour faire simple une application classique java qui se lance et s'exécute à partir d'un navigateur internet et qui respecte quelques règles de sécurités.

Au contraire JME est une "sous version" de Java qui est destiné au plateforme mobile. Un sous ensemble dans le sens ou pour faire fasse au restriction imposé par la plateforme (mémoire, puissance proc, taille écran ...) Sun à décidé de faire une version allégée de son langage.

Donc pour répondre à ta question soit tu veux développer sur Mobile et dans ce cas tu dois te tourner vers J2ME. Soit tu souhaite faire une application classique mais qui sera lancer depuis un navigateur dans ce cas tu peux faire une applet ou peut être regarder du coté de Java Web Start.

En espérant avoir été clair et utile.
Cordialement,
Avatar de FrenchFrogger FrenchFrogger
http://www.developpez.com
Nouveau Membre du Club
le 06/08/2009 17:18
En fait on s'est mal compris: je veux parler de JavaMonkeyEngine (que j'ai abrégé par JME) et non des applications mobiles...
Avatar de Akira Akira
http://www.developpez.com
Membre régulier
le 07/08/2009 10:35
Houla effectivement j'avais mal lu ton post et surtout les posts précédents désolé.

Sinon pour te répondre j'ai peur que JME soit effectivement un peu trop volumineux pour être utiliser dans une Applet.

Le problème c'est que si elle met trop de temps à ce lancer l'utilisateur à de grande chance de ne pas attendre.

Bonne courage pour la suite.
Avatar de gouessej gouessej
http://www.developpez.com
Membre confirmé
le 14/09/2009 15:29
Je ne suis pas tout à fait d'accord avec Akira. De toute façon, soit tu réinventes l'eau chaude avec une API de moins haut niveau, soit tu utilises un moteur 3D et JMonkeyEngine 2.0 peut fonctionner dans une applet, Ardor3D ne peut pas encore faire ça mais ça devrait changer soit dans la version 0.6. Tu peux aussi essayer le moteur 3dzzd qui est plutôt orienté applet et assez compact.
Offres d'emploi IT
Ingénieur système windows h/f
CDI
Sogeti - IDF - EUPS - Ile de France - Issy les Moulineaux (92136)
Parue le 11/09/2014
Développeur siebel
Freelance
1GLINK CONSULTING - Ile de France - ile de france
Parue le 18/09/2014
Ingénieur logiciel embarqué c plateforme h/f
CDI
PARROT - Ile de France - Paris (75000)
Parue le 01/09/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula