Bonjour, Bonsoir,
Je ne suis pas sur que la section dans laquelle je postes ce message soit la bonne car je ne suis plus totalement débutant avec java (3eme année de License info) mais on ne peut pas dire que je soit un expert non plus.
Je souhaites implémenter un système de gestion d'objets 3D en Java. C'est a dire, je souhaites gérer des solides (en 3D) puis par des opérations mathématiques les afficher sur l'écran (2D). Pour l'instant, j'ai réussi a implémenter la structure de donnée correspondant a mon solide, c'est a dire, une ArrayList de surface et chaque surface est une ArrayList de Points.
Puis, je projettes mes surfaces sur l'écran (c'est a dire que je crée un nouvel objet nomme Surface2D qui contient la ArrayList du projeté de tous les points de la surface associée). A noter que je fais une projection sur un plan vers un point arbitraire (pour conserver la perspective).
J'ai défini des opérations simples, telles que la rotation et la translation, et lorsque j'affiche le cube en "fils de fer" ca marche sans problème.
Mon problème apparait lorsque je souhaites colorier mes faces. Il arrive que les faces de l'arrière de mon cube soient dessinées après mes faces avant et donc soient "au dessus" de celles-ci.
Je ne vois qu'une solution possible qui serait un procédé lent; a savoir implémenter un système de "tri" ou d'"ordre" d'affichage (et dans ce cas tester pour de nombreux pixels de mon solide la profondeur).
C'est donc la que je bloque et je ne sais pas trop comment faire...
Je sais qu'il existe des bibliothèques Java permettant de gérer un environnement 3D mais j'ai envie de savoir un implémenter un, pour pouvoir un jour, si besoin est implémenter une telle interface dans un langage qui ne possède pas de telle bibliothèque.
Merci d'avance de votre aide et de vos conseils.
P.S.: je joins mon code au post pour les courageux qui se sentent l'envie de le lire.
Partager