API LWJGL
- Accueil
- Forum
- Programmation
- Java
- API LWJGL
Omega Le 24 mai 2016 à 23:17 (Édité le 25 janvier 2019 à 17:51)
annabelle Le 3 juin 2016 à 05:35 (Édité le 1 janvier 1970 à 01:00)
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 Le 24 juin 2016 à 15:40 (Édité le 1 janvier 1970 à 01:00)
Omega Le 24 juin 2016 à 16:11 (Édité le 1 janvier 1970 à 01:00)
kinginventeur Le 27 février 2017 à 05:31 (Édité le 1 janvier 1970 à 01:00)
Omega Le 28 février 2017 à 20:17 (Édité le 1 janvier 1970 à 01:00)
TheFlameflo Le 1 mars 2017 à 15:27 (Édité le 1 janvier 1970 à 01:00)
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 Le 1 mars 2017 à 15:47 (Édité le 1 janvier 1970 à 01:00)
TheFlameflo Le 1 mars 2017 à 21:20 (Édité le 1 janvier 1970 à 01:00)
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 Le 5 mars 2017 à 00:17 (Édité le 1 janvier 1970 à 01:00)
TheFlameflo Le 5 mars 2017 à 01:09 (Édité le 1 janvier 1970 à 01:00)
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 Le 5 mars 2017 à 16:05 (Édité le 1 janvier 1970 à 01:00)
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.