Je réalise un affichage 3d sur le moteur irrSpintz (irrlicht avec un buffer 32bits).
Je crée un fichier OBJ qui contient des points (x,y,z) appelé « v » et applique une image (texture) appelé « vt ».
Le point « vt » contient 2 données U / V qui représente la position dans l’image :
-0.5 / 0.5 au centre.
-0.0 / 1.0 en haut à gauche
-1.0 / 0.0 en bas à droite
-Etc…
Ensuite on mappe (donne la correspondance de v et vt) avec la donnée « f » exemple :
f v/vt v2/vt2 v3/vt3 v4/vt4.
Un exemple simple, un carré composé lui-même de 4 carrés :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| # x y z
v 1 1 1
v 2 1 1
v 3 1 1
v 1 2 1
v 2 2 1
v 3 2 1
v 1 3 1
v 2 3 1
v 3 3 1
# u v
vt 0.0 1.0
vt 0.5 1.0
vt 1.0 1.0
vt 0.0 0.5
vt 0.5 0.5
vt 1.0 0.5
vt 0.0 0.0
vt 0.5 0.0
vt 1.0 0.0
# face nb_v/nb_vt
f 1/1 2/2 5/5 4/4
f 2/2 3/3 6/6 5/5
f 4/4 5/5 8/8 7/7
f 5/5 6/6 9/9 8/8 |
Résultat dans mon moteur 3d, parfait :
Cette fois un exemple sur une mappe cartographique en 3d.
Nous avons maintenant 301 colonnes et 251 lignes.
Il faut donc diviser U/V par ces nombres.
Mais cette fois l’image ne s’affiche que bizarrement, quelqu’un a-t-il une piste ??
Merci
Partager