API LWJGL

Omega

Omega Le 24 mai 2016 à 23:17 (Édité le 25 janvier 2019 à 17:51)

Bonjour, depuis quelques jours je m'intéresse à l'API de développement de jeux vidéos java LWJGL et, après avoir fais quelques recherches, il reste certaines zones d'ombres. La plus importante étant : à quoi correspondent les class GL1, GL2...GL30...?
annabelle

annabelle Le 3 juin 2016 à 05:35

Bonjour,
Je conseille vivement à ceux qui veulent se mettre à apprendre la programmation à suivre des cours en ligne et utiliser comme autres supports les formations et les tutoriels. Je témoigne parce que j’ai bien réussi à maitriser la programmation java à travers des cours en ligne.

Ades03

Ades03 Le 24 juin 2016 à 15:40

Tu peux apprendre depuis "Le site du Zéro" Dis moi si il te convient...:D
Omega

Omega Le 24 juin 2016 à 16:11

Je crois que je ne me suis pas fais comprendre dans ce sens où je sais développer en java. Je voudrais juste avoir un site qui explique comment utiliser cette API
kinginventeur

kinginventeur Le 27 février 2017 à 05:31

Ptite question puisque tu t'y connais en java , c'est vraiment indispensable d'avoir ce genre de chose pour faire un jeu ?  On peux pas juste coder nous même le jeu de a à z en java 😀 ?
Omega

Omega Le 28 février 2017 à 20:17

Non parce que les rendus en 3D avancés ne sont possibles qu'avec des API telles que celles -ci. Pour faire simple le système de rendu est basé sur du calcul matriciel et vectoriel et seul OpenGL permet cela. 
TheFlameflo

TheFlameflo Le 1 mars 2017 à 15:27

Salut !

En fait, on peut faire des rendus en 3D avancés sois-même en le programmant tout seul, mais c'est beaucoup (vraiment beaucoup) de travail.
OpenGL te permet de ne pas avoir à refaire tout ce travail.

Cependant, si tu souhaites faire de la 3D "simple", il existe plusieurs tutoriels sur YouTube qui te permettent de faire un moteur 3D, mais c'est très basique et pas super stable ! 😉

Je ne peux pas vraiment aider à propos de LWJGL, mais je pense qu'il y a la doc qui est plutôt complète.
Si tu ne trouves pas la doc assez précise, il y a sûrement des forums spécialisés pour LWJGL ! 😀
Omega

Omega Le 1 mars 2017 à 15:47

Le premier message que j'ai posté étant assez ancien j'ai depuis étudié la doc et des forums mais certaines fonctionnalités telles que les animations d'objet 3D et autres ne sont pas trouvables.
TheFlameflo

TheFlameflo Le 1 mars 2017 à 21:20

Salut !

Je ne m'y connais pas trop, mais tu peux toujours essayer de le faire en récupérant tes points et utiliser une formule mathématique pour calculer leur nouvelle positions avec un axe de rotation donné.

J'ai trouvé ça aussi, je ne sais pas si ça marche : [url=http://nehe.gamedev.net/tutorial/3d_shapes/10035/]rotation 3d lwjgl
[/url]
J'espère t'avoir aidé ! 😀
Omega

Omega Le 5 mars 2017 à 00:17

Sans vouloir paraître condescendant le fait que tu ne "T'y connaisses pas trop" fausse un peu ta compréhension du problème. Le fait est que OpenGL constitue tout un pipeline minutieusement agencé et ce n'est pas avec "une formule mathématique" qu'on règle le problème (en vérité j'ai trouvé comment faire).
TheFlameflo

TheFlameflo Le 5 mars 2017 à 01:09

C'est pour ça que je l'ai précisé, pour ne pas faire croire que je connaissais très bien le sujet.
Je me disais juste que si je suis tombé "par hasard" sur la solution, ça aurait pu aider. 😀

Pourrais-tu expliquer comment tu as résolu le problème, ça pourrait aider des gens qui se posent la même question et passer le sujet en résolu. 😉
Omega

Omega Le 5 mars 2017 à 16:05

L'expliquer précisément serait très long mais voici un lien où tout est expliqué : https://www.youtube.com/playlist?list=PLRIWtICgwaX2tKWCxdeB7Wv_rTET9JtWW?&ab_channel=ThinMatrix

En gros le principe est de reproduire le mécanisme utilisé dans des logiciels graphiques permettant de faire des animations type Blender. 
Pour ça il faut voir (En openGL moderne ) qu'un modèle 3D est composé d'un VAO (Vertex Array Object) qui est en fait une sorte de liste dans laquelle on va stocker des VBO (Vertex Buffer Object) qui sont aussi des listes qui cette fois vont correspondre à une caractéristique de du modèle (exemple : coordonnées des sommets, coordonnées des textures, indices, normales...). A tous ces éléments s'ajoute une matrice 4x4 : la matrice de transformation dans laquelle se trouvent la rotation, la position et l'échelle du modèle 3D.
Ensuite le pipeline OpenGL est composé de plusieurs principales étapes : les données brutes récupérées des modèles 3D et autres, le vertex shader qui correspond à toutes les modifications relatives aux sommets (c'est là qu'on va exploiter les valeurs de la matrice de transformation par exemple), le geometry shader qui n'est pas obligatoire mais qui permet de créer de modifier les sommets de manière dynamique (c'est avec cela qu'on simule les feuilles qui bougent ou les mouvements en relief de l'eau), le fragment shader qui lui va gérer l'espace entre les sommets (c'est là que la les couleurs des modèles seront calculées (il faut garder en mémoire que c'est un code couleur RGB) en prenant en compte des données type sources lumineuses pour calculer l'ombre portée etc...) et le post processing ou FBO (Frame Buffer Object) qui va permettre de travailler sur l'image rendue après le processing (on y trouve l'anti-aliasing, le contraste) et va pour cela récupérer les informations du fragment shader.
Maintenant pour en revenir aux animations d'objets 3D pour être le plus concis possible : dans un modèle destiné à être animé on a des 'Joints' qui correspondent aux articulations des parties du modèle. Le principe est de recalculer la position de chaque sommet lorsque le(s) Joint(s) duquel(desquels) ils dépendent sont en mouvement. Le mouvement des Joints se fait avec un principe d'images clés (keyframes). Pour faire simple on va définir une position de départ et une position d'arrivée pour un ou plusieurs Joints et à chaque image a position des angles et des Joints sera recalculée pour qu'au bout de x temps défini dans le fichier du modèle 3D la position des sommets et des Joints soit celle de l'image clée suivante et ainsi de suite.
La partie la plus compliquée n'est pas la compréhension mais la réalisation. Il y a plusieurs solutions mais le travail reste très laborieux le plus compliqué étant de créer le parser du format choisi (.md5anim, .dae...) et ensuite le traitement des différentes informations tout au long du pipeline (shaders et matrice de transformation par exemple dans la cas d'une animation d'un joueur qui court où en plus de faire l'animation celui-ci doit avancer).

J'espère que cela en aura aidé quelques uns n'hésitez pas si vous avez des questions.
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte