Developpez.com - Rubrique Java

Le Club des Développeurs et IT Pro

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

Le 2007-03-20 23:19:09, par akito, Membre régulier
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
  Discussion forum
19 commentaires
  • TanEk
    Membre expérimenté
    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.
  • pan99
    Membre à l'essai
    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.
  • FrenchFrogger
    Membre du Club
    En fait on s'est mal compris: je veux parler de JavaMonkeyEngine (que j'ai abrégé par JME) et non des applications mobiles...
  • Akira
    En attente de confirmation mail
    Je te donne donc mon avis qui ne vaut pas énormément mais bon vu que tu demande

    Du point de vu de la complexité Java3D est un peu une surcouche de Jogl dans le sens ou il masque une grande partie des difficultés de programmer de la 3D.

    En fait si tu veux juste de familliariser avec la 3D dans le but de faire des "jeux" je pense qu'utiliser java3d est suffisant car tu sera rapidement amener par la suite à utiliser des moteurs 3D tout fait. Si au contraire ton but est de faire ces même moteur 3D alors là je te conseille plutot Jogl.

    Un avantage de jogl sur java3D c'est qu'il bénéficie de toutes la documentation (livre, forum, site spé ...) lier à openGl dont il reprend totalement la syntaxe.

    Voila en espérant t'avoir été un minimun utile.

    A.
  • afrikha
    Membre chevronné
    Bonsoir,

    Je te conseille de jeter un coup d'oeil à cet excellent article : Les api 3D pour java

    @+
  • akito
    Membre régulier
    Merci pour vos réponse.

    J'ai deja regardé cette article (c'est ce que j'appelé a tore la faq sur les technos) mais ce qui me freine sur java 3D c'est cette exemple :
    ftp://ftp-developpez.com/gfx/demos/j...BooksDemo.jnlp

    Chez moi ca tourne tres tres mal, chez vous aussi?

    Pourtant c'est une exemple pris sur ce site, donc je pensais que c'etait optimisé.

    Peut etre est-ce lié a ma machine mais les exemples de LWJGL sont tres performant meme sur ma machine, pareil pour LG3D ca marche bien.

    Encore merci
  • sinok
    Expert éminent sénior
    Non non chez moi ça tourne bien (java3d 1.5.0, java6) sur un laptop Acer d'il y a un an et demi (ATI X700 128MO en CG, 1go de Ram et un AMD turion en proc).

    Mais si tu veux de la perf pure passes directement par JOGL. Toute surcouche à un coût (que ce soit en 3D ou ailleurs)
  • akito
    Membre régulier
    Merci pour ta réponse;

    Chez moi, quand je clique sur un livre, ca met quelques secondes avant qu'il s'affiche en 3D, et la rotation n'est pas du tout fluide... Pourtant j'ai un bon pc...

    Je ne cherche pas de la perf pure, mon jeu serai tres simple, mais quand j'ai vu cette exemple avec une simple forme qui ramait, je me demandais si il y avait pas un probleme.

    Encore merci pour ta reponse!
  • eclesia
    Rédacteur
    si tu veux de la performance sans avoir a manipuler directement (j'entends par la JOGL ou LWJGL) tourne toi vers JavaMonkeyEngine.

    pour avoir testé 4 moteurs (Java3D, Xitdh3D, JME,JPCT).

    Avantage :
    - complet
    - peu gourmand en memoire
    - bonne performance
    - un forum actif

    Defaut:
    - doc en anglais (mais plein d'exemple dans les sources)
    - basé sur LWJGL (ce n'est pas un vrai defaut mais je prefere JOGL), mais ils ont prevus de se tourner vers JOGL, et je leur fais confiance, ils le feront .

    au bout d'un mois (j'avais zero connaisance du monde 3D) avec JavaMonkeyEngine :
    http://img222.imageshack.us/img222/7172/ig1ec5.jpg
    http://img205.imageshack.us/img205/9636/exemplesx1.jpg
  • akito
    Membre régulier
    Merci eclesia pour ta réponse!

    En fait, je ne cherche pas la perf, car mon jeu sera tres simple.

    Je cherche a apprendre rapidement, et si possible sur une librairie la plus utilisé. Il me semblait que java3D etait tres utilisé donc c'est pour cela que je me suis tourné vers ça.

    Mais JavaMonkeyEngine est peut etre trés utilisé.

    En tout cas, chapeau d'avoir fait ca en un mois

    A+