[Java][LWJGL] Java+OpenGL: un topic pour causer techniques (algos)

Java+OpenGL: un topic pour causer techniques (algos) [Java][LWJGL] - Java - Programmation

Marsh Posté le 05-03-2004 à 21:25:25    

'lut,
 
j'ai pompé quelques sources de NeHe et je joue avec la lib LWJGL. (www.lwjgl.org)
 
je commence donc la prog 3D, j'ai écrit une petite classe qui lit des DXF basiques ainsi qu'une classe Model (le modèle en trwadé)
 
question rapide:
 
existe-t-il un moyen pour bouger l'objet d'un coup au lieu de passer par un GL.glTranslatef(...) suivi d'une suite de GL.glVertex3f(...); de chaque vertex ?
 
:jap:


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 05-03-2004 à 21:25:25   

Reply

Marsh Posté le 06-03-2004 à 00:39:13    

Je ne sais pas, mais [:abnocte invictus] quand même :o

Reply

Marsh Posté le 06-03-2004 à 02:48:51    

pourrait avoir un bout de code et un screenshot stp? :)

Reply

Marsh Posté le 06-03-2004 à 09:57:08    

TBone a écrit :

'lut,
 
j'ai pompé quelques sources de NeHe et je joue avec la lib LWJGL. (www.lwjgl.org)
 
je commence donc la prog 3D, j'ai écrit une petite classe qui lit des DXF basiques ainsi qu'une classe Model (le modèle en trwadé)
 
question rapide:
 
existe-t-il un moyen pour bouger l'objet d'un coup au lieu de passer par un GL.glTranslatef(...) suivi d'une suite de GL.glVertex3f(...); de chaque vertex ?
 
:jap:


 
Une liste d'affichage ?
 

Reply

Marsh Posté le 06-03-2004 à 10:44:18    

Drapal

Reply

Marsh Posté le 06-03-2004 à 11:07:19    

Idem :p

Reply

Marsh Posté le 06-03-2004 à 16:06:09    

the real moins moins a écrit :

pourrait avoir un bout de code et un screenshot stp? :)


faudra attendre un peu car je n'ai pas de doc OpenGL et pour l'instant c'est assez moche (fond + modèle 3D).
 
je ne sais pas encore quelles sont les instructions nécessaires pour faire varier la couleur d'une face en fonction de sa position par rapport à la source lumineuse... -> on ne voit qu'une "tache" ayant le contour de mon objet... :(
 
tu veux le bout de code de kwa ? du modèle ? du loader ?
le code pour afficher mon objet c'est un dérivé du tuto NeHe08.


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 06-03-2004 à 16:07:47    

pascal_ a écrit :


Une liste d'affichage ?


pour l'instant, chaque object Model boucle dans Face[] et chaque Face s'affiche via GL.glVertex3f(...) petit à petit.
 
je n'ai pas trouvé mieux après une première leçon de 5h de jeu :)


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 06-03-2004 à 16:19:09    

TBone a écrit :


faudra attendre un peu car je n'ai pas de doc OpenGL et pour l'instant c'est assez moche (fond + modèle 3D).
 
je ne sais pas encore quelles sont les instructions nécessaires pour faire varier la couleur d'une face en fonction de sa position par rapport à la source lumineuse... -> on ne voit qu'une "tache" ayant le contour de mon objet... :(
 
tu veux le bout de code de kwa ? du modèle ? du loader ?
le code pour afficher mon objet c'est un dérivé du tuto NeHe08.

peu importe que ça soit moche;)
et euh j'aurais pensé à un bout de code de tout ça en fait :whistle:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-03-2004 à 16:22:42    

je n'ai pas de connexion web sur mon pc de dev :(
 
je tâcherai de te filer ça au max lundi. (d'ici là ce sera pit-être plus joli :) )
 
ma classe Model est très (trop) limitée pour l'instant car elle n'accepte que des objets 3D triangulés, non texturés et (pire) monochrome.
 
mais ça va (doit) changer :D


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 06-03-2004 à 16:22:42   

Reply

Marsh Posté le 06-03-2004 à 16:29:00    

ok [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-03-2004 à 16:29:08    

ct justepour voir à quoi ça ressemblait :D


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 07-03-2004 à 02:07:28    

Pour voir ce qu'on peut faire en 3D avec Java. Allez ici : http://www.javagaming.org/cgi-bin/ [...] 1071038323
Bon à la place de LWJGL, c'est JOGL (API officielle de sun) avec le render Xith 3D. Faites chauffer les cartes 3D et Java Web Start


Message édité par kayl667 le 07-03-2004 à 02:10:08
Reply

Marsh Posté le 07-03-2004 à 10:46:54    

kayl667 a écrit :

Pour voir ce qu'on peut faire en 3D avec Java. Allez ici : http://www.javagaming.org/cgi-bin/ [...] 1071038323
Bon à la place de LWJGL, c'est JOGL (API officielle de sun) avec le render Xith 3D. Faites chauffer les cartes 3D et Java Web Start


Je crois que je vais m'y mettre  :love:

Reply

Marsh Posté le 07-03-2004 à 19:53:44    

je pose un drapal

Reply

Marsh Posté le 07-03-2004 à 20:09:22    

kayl667 a écrit :

Pour voir ce qu'on peut faire en 3D avec Java. Allez ici : http://www.javagaming.org/cgi-bin/ [...] 1071038323
Bon à la place de LWJGL, c'est JOGL (API officielle de sun) avec le render Xith 3D. Faites chauffer les cartes 3D et Java Web Start


 
Ben Java3D c'est pas une API pour la 3D ? :??:

Reply

Marsh Posté le 07-03-2004 à 20:22:02    

[:drapo]
Va falloir que je mette au java, un jour...

Reply

Marsh Posté le 07-03-2004 à 20:55:49    

osama a écrit :


 
Ben Java3D c'est pas une API pour la 3D ? :??:

oui, tu as raison ! mais JOGL, anciennement Jungle, a été vite repéré par Sun comme ayant un grand potentiel :) C'est ainsi que Sun l'a adopté dans la Java Gaming Initiative.

Reply

Marsh Posté le 07-03-2004 à 22:01:25    

kayl667> tu as réussi à installer Xith3D ?
Pas moyen de compiler un exemple en suivant http://xith.org/installing.php  :o

Reply

Marsh Posté le 08-03-2004 à 00:25:55    

j'ai eu des problèmes aussi avec la classe Perf (sun.misc.Perf). Il semblerait que c'est une classe cachée (timer très précis) mais je ne sais pas comment l'utiliser, donc j'ai effacé les parties de codes qui l'utilisaient !

Reply

Marsh Posté le 08-03-2004 à 00:27:07    

kayl667 a écrit :

oui, tu as raison ! mais JOGL, anciennement Jungle, a été vite repéré par Sun comme ayant un grand potentiel :) C'est ainsi que Sun l'a adopté dans la Java Gaming Initiative.


 
Je savais pas, c'est récent alors ?? Sun laisse tomber Java3D au profit d'une nouvelle API plus performante alors ?

Reply

Marsh Posté le 08-03-2004 à 16:35:01    

the real moins moins a écrit :

ct justepour voir à quoi ça ressemblait :D


 
'oilà... c'est bô comme un camion :D
 
http://tbonefox.free.fr/OPENGL.JPG
 
il me reste à trouver un format de fichier décent qui gère les coords d'une texture appliquée paske là c'est la misère le DXF :)
 
(les couleurs chiadées c'est à cause d'un random pour chaque face :) )


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 08-03-2004 à 16:37:08    

et j'oubliais pour les curieux http://tbonefox.free.fr/FORUM.ZIP pour les sources (mais pas le dxf fourni je crois)
 
il suffit de créer un objet dont les faces sont triangulées et vous devriez voir qque chose. (c'est cochonné comme code car code de test -> paths en dur dans le code)


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 08-03-2004 à 16:56:03    

vais voir ça :)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 08-03-2004 à 19:12:51    

Question très générale de débutant : c'est quoi openGL ??
 
Définition de HFR : Protocole d'affichage en 3D développé par Silicon Graphics, il existe deux implémentations principales : "Microsoft OpenGL" de Microsoft et "Cosmo OpenGL" de Silicon Graphics. Un autre standard de rendu 3D est Direct3D de Microsoft.
 
C'est pas très explicite... Concrètement, ce sont des bibliothèques de fonctions ? Quel lien entre JOGL (ou Java3D) et openGL ? Est ce que l'un utilise l'autre ?

Reply

Marsh Posté le 08-03-2004 à 19:17:22    

osama a écrit :

Question très générale de débutant : c'est quoi openGL ??
 
Définition de HFR : Protocole d'affichage en 3D développé par Silicon Graphics, il existe deux implémentations principales : "Microsoft OpenGL" de Microsoft et "Cosmo OpenGL" de Silicon Graphics. Un autre standard de rendu 3D est Direct3D de Microsoft.
 
C'est pas très explicite... Concrètement, ce sont des bibliothèques de fonctions ?


 
Oui, pour faire du graphique. Open graphics library, difficile de faire plus explicite...;)
 

osama a écrit :

Quel lien entre JOGL (ou Java3D) et openGL ? Est ce que l'un utilise l'autre ?


JOGL, si j'ai bien compris, est une implémentation d'openGL pour Java...


Message édité par skeye le 08-03-2004 à 19:17:37
Reply

Marsh Posté le 08-03-2004 à 19:22:59    

skeye > Ok merci j'ai pigé !! Donc en fait l'openGL est une sorte de bibliothèque abstraite (d'où l'appelation "protocole" ), dont il existe plusieurs implémentations : MS OpenGL, Cosmo OpenGL, et maintenant JOGL...


Message édité par Osama le 08-03-2004 à 19:23:59
Reply

Marsh Posté le 08-03-2004 à 19:24:56    

osama a écrit :

skeye > Ok merci j'ai pigé !! Donc en fait l'openGL est une sorte de bibliothèque abstraite (d'où l'appelation "protocole" ), dont il existe plusieurs implémentations : MS OpenGL, Cosmo OpenGL, et maintenant JOGL...


wala, en gros c'est ça.

Reply

Marsh Posté le 09-03-2004 à 22:12:45    

euh... j'ai des books en cours de download... qq'un pourrait m'expliquer comment on gère les ombres ? c'est "naturel" ou il faut coder une projection du contour au sol ?
 
de même, comment qu'on code un changement de position de caméra ? en bougeant tous les objets et en appliquant une rotation sur le point pivot de la caméra ?
 
ch'sé pas si c'est clair :)
 
paske si c'est ça, je n'aurai pas fini de coder d'ici des plombes... (le temps que je comprenne déjà :D)


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 10-03-2004 à 10:58:53    

J'y connais rien en 3D mais il me semble que les ombres dans les jeux, c'est typiquement le genre de truc super lourd en CPU à mettre en place. D'ailleurs dans les démos, les ombres étaient souvent (ou toujours ?) calculées soit à l'avance, soit faisaient appel à des méga-astuces. Bref, il me semble que les ombres, c'est très difficile (ou lourd) de les calculer en temps réel

Reply

Marsh Posté le 10-03-2004 à 12:43:23    

Qqn peut me dire ce qu'est LWJGL par rapport à JOGL ? Et Xith3D ?  
Ce serait bien d'avoir un dictionnaire de tous ces termes parce que franchement on s'y perd...

Reply

Marsh Posté le 10-03-2004 à 13:47:28    

machinbidule1974> c'est ce que je craignais
je viens de passer toute la soirée d'hier sur nehe.gamedev.net, un pur bonheur de tutoriels en tous genres :)
 
osama> LWJGL: www.lwjgl.org
je n'ai pas (encore) été voir JOGL ni Xith3D.


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 10-03-2004 à 14:13:19    

Ok bon je tente une brève récap :
 

  • JOGL : une implémentation OpenGL pour Java
  • LWJGL : une bibliothèque orientée jeu pour Java (gère le graphisme, le son, l'interation utilisateur...)
  • Xith3D : "an open source 3D scenegraph for Java" (?)


Message édité par Osama le 10-03-2004 à 14:13:58
Reply

Marsh Posté le 11-03-2004 à 12:41:34    

osama> un scenegraph est, il me semble, un arbre de dépendance d'objets, d'actions, d'interactions, de lumières,...  
 
toutes ces "choses" interragissent et forme un monde que tu peux voir à travers une vue.
 
enfin, c'est ce que j'ai compris de ma lecture en diagonale de la doc Java3D.


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 11-03-2004 à 13:03:05    

TBone a écrit :

osama> un scenegraph est, il me semble, un arbre de dépendance d'objets, d'actions, d'interactions, de lumières,...  
 
toutes ces "choses" interragissent et forme un monde que tu peux voir à travers une vue.
 
enfin, c'est ce que j'ai compris de ma lecture en diagonale de la doc Java3D.


Ce serait donc plutôt un quivalent du vrml?

Reply

Marsh Posté le 11-03-2004 à 13:26:51    

TBone a écrit :

osama> un scenegraph est, il me semble, un arbre de dépendance d'objets, d'actions, d'interactions, de lumières,...  
 
toutes ces "choses" interragissent et forme un monde que tu peux voir à travers une vue.
 
enfin, c'est ce que j'ai compris de ma lecture en diagonale de la doc Java3D.


 
Xith3D serait une implémentation possible de l'utilisation de scènes en 3D, au même titre que Java3D alors :??:


Message édité par Osama le 11-03-2004 à 13:36:48
Reply

Marsh Posté le 11-03-2004 à 13:55:17    

skeye> VRML c'est pas une techno de stockage de modèles 3D ?
 
osama> il me semble. mais "more game oriented" d'après la FAQ.


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 11-03-2004 à 16:47:18    

TBone a écrit :

skeye> VRML c'est pas une techno de stockage de modèles 3D ?


bah je suis pas sûr de ce que tu veux dire par "modèle 3D", mais VRML repose sur des graphes de scène...

Reply

Marsh Posté le 11-03-2004 à 17:03:37    

Le VRML permet de créer des mondes virtuels. Chat 3D...

Reply

Marsh Posté le 17-03-2004 à 13:58:05    

Bon, je viens de récupérer JOGL, et je tente de m'en servir...mais je bloque sur une connerie (probablement - ma production de code java devant à peine dépasser le millier de lignes jusqu'ici...).
 
Donc, j'ai défini ma classe ppale comme descendant de java.awt.Frame et implémentant GLEventListener (et donc les méthodes display, displaychanged, init et reshape). Jusqu'ici tout va bien.
Seulement j'aimerais faire tourner le bête carré que j'affiche actuellement...donc j'ai modifié mon display ainsi :

Code :
  1. [...]
  2. gl.glPushMatrix();
  3. gl.glRotatef(angle, 0.0f, 0.0f, 1.0f);
  4. //code d'affichage
  5. gl.glPopMatrix();
  6. angle += 1.0;


Rien de bien extraordinaire...
 
Le problème arrive maintenant : j'aimerais bien déclencher un réaffichage à la fin de mon display, histoire d'avoir vraiment un machin qui tourne, bref, comme si je faisais un glutPostRedisplay() à la fin...et je ne trouve pas comment!:/

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed