Bonjour à tous,
Bien que je compte utiliser une bibliothèque pour ça par la suite, j'aimerais mieux comprendre le fonctionnement des *.obj afin de les charger dans OpenGL.
J'ai réalisé un loader simple mais fonctionnel, cependant, il me reste à comprendre comment réorganiser les données afin que les textures soient bien rendues. Comme je le comprends, nous ne pouvons utiliser qu'un seul "GL_ELEMENT_ARRAY_BUFFER", et les indices doivent donc correspondre aussi bien aux positions des vertex, que celles des Textures et des normales.
Cependant, les fichiers *.obj nous fournissent des indices séparés du type "f 1/11/2 7/14/2 5/12/2" (vertex, texture, normal). Je me suis alors dit qu'il suffisait de réorganiser les données, mais il se trouve que, dans les fichiers que j'ai, il n'est pas rare d'avoir un nombre de coordonnées des vertex différent du nombre de coordonnées de textures...
Pour cette raison, j'en appelle à votre connaissance : "comment, dans le fichier ci-dessous (pour l'exemple, en réalité, je charge des modèles bien plus complexes), je peux réorganiser les données afin que les indices correspondent (f 1/1/1 7/7/7 5/5/5) ?" Sinon, existe-t'il une méthode permettant d'afficher les textures selon un IBO différent de celui des vertex ?
Je vous remercie d'avance ! La source :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
33
34
35
36
37
38
39
40
41
42
43 # cube.obj # o cube v 0.0 0.0 0.0 v 0.0 0.0 1.0 v 0.0 1.0 0.0 v 0.0 1.0 1.0 v 1.0 0.0 0.0 v 1.0 0.0 1.0 v 1.0 1.0 0.0 v 1.0 1.0 1.0 vt 0.25 0.0 vt 0.5 0.0 vt 0 0.25 vt 0.25 0.25 vt 0.5 0.25 vt 0.75 0.25 vt 0.0 0.5 vt 0.25 0.5 vt 0.5 0.5 vt 0.75 0.5 vt 0.25 0.75 vt 0.5 0.75 vt 0.25 1.0 vt 0.5 1.0 vn 0.0 0.0 1.0 vn 0.0 0.0 -1.0 vn 0.0 1.0 0.0 vn 0.0 -1.0 0.0 vn 1.0 0.0 0.0 vn -1.0 0.0 0.0 f 1/11/2 7/14/2 5/12/2 f 1/11/2 3/13/2 7/14/2 f 1/7/6 4/4/6 3/3/6 f 1/7/6 2/8/6 4/4/6 f 3/1/3 8/5/3 7/2/3 f 3/1/3 4/4/3 8/5/3 f 5/10/5 7/6/5 8/5/5 f 5/10/5 8/5/5 6/9/5 f 1/11/4 5/12/4 6/9/4 f 1/11/4 6/9/4 2/8/4 f 2/8/1 6/9/1 8/5/1 f 2/8/1 8/5/1 4/4/1
Partager