#0 

27-07-2010 12:00:53

ilelle
Petit nouveau
Date d'inscription: 27-07-2010
Messages: 2

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


#1 

27-07-2010 19:21:25

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 907
Corrections: 2
Site web

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

Code c++ :


((ISceneNode*)example)->getMaterial(0)->getTextureMatrix(numero_de_la_texture);



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


#2 

28-07-2010 19:19:17

firnafin
Abonné
Date d'inscription: 31-03-2007
Messages: 150

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


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
881 membres
1426 sujets
11116 messages
Dernier membre inscrit: Bidule
13 invités en ligne
Aucun membre connecté
RSS Feed