Bonjour à tous,
je ne sais pas si c'est le bon endroit pour poser ma question car je suis nouvelle sur ce site ....
voila ma question :
quand je lit un fichier .obj d'un objet 3D j'aurai pour chaque sommet ses coordonnées de texture, mais comment je peux obtenir les coordonnées de texture d'un point (x,y,z) quelconque dans l'espace a partir de la texture de cette objet
J'apprécie toutes sorte d'aide et merci d'avance
Dernière modification par ilelle (27-07-2010 12:01:25)
Hors ligne
quand tu crée ton scene node il crée un matérial pour le rendue, il stocke les texture et aussi les matrices des textures, il te faut juste faire une fonction pour savoir les coordonée d'une texture a partir de c'est matrice
http://irrlicht.sourceforge.net/docu/cl … _node.html // scene node doc
http://irrlicht.sourceforge.net/docu/cl … erial.html // material doc
http://irrlicht.sourceforge.net/docu/cl … trix4.html // matrices doc
je me demande encore pourquoi personne cherche un minimum sur la doc ... il y a tout dessus -.-
bref c'est rare de voire des damoisel dans se domaine .. bonne continuation :')
Hors ligne
Je ne sais pas si ce qu'a dit Magun à répondu à ta question , voila ce que je ferais :
-si le point (x,y,z) n'est pas sur le mesh ; on ne peut rien dire évidement ;
-si le point (x,y,z) est sur le mesh :
-déterminer sur quel triangle du mesh il est ;
-une fois le triangle trouvé , accéder à ses sommets notés A,B,C
-récupérer la position des sommets (xA,yA,zA) (xB,yB,zB) (xC,yC,zC) ( expression dans le même repère que (x,y,z) ).
-résoudre le système linéaire en a,b,c :
| a+b+c=1
| a*xA+b*xB+c*xC = x
| a*yA+b*yB+c*yC = y
-une fois trouvée a,b,c , pour obtenir les coordonnées de texture (u,v) tu point (x,y,z) il faut faire :
u = a*uA+b*uB+c*uC
v= a*vA+b*vB+c*vC
Ceci te donnera une interpolation linéaire des coordonnées de texture mais d'autre solution son possible par exemple en utilisant des aires plutot que les barycentres. Tout dépend de ce que tu veux faire .
Hors ligne