v 0.437500 0.164063 0.765625
...
vn 0.664993 -0.200752 0.719363
...
f 47//1 1//1 3//1
...
f 1//7 11//7 9//7
f 1//7 9//7 3//7
Ecco come appare il mio file obj. Potresti per favore aiutarmi a capire questo file .obj. Cosa significa ogni riga e colonna? Come lo visualizzo. Sto provando a caricare un modello usando l'API Java3D.
Link al caricamento del file .obj
glNormal3f(normals[it->norm_indices[0] -1 ].x,
normals[it->norm_indices[0] -1 ].y,
normals[it->norm_indices[0] -1 ].z);
Quindi, non potevo capire il codice di cui sopra. Voglio sapere che cosa fa esattamente il codice.
risposte:
2 per risposta № 1normals
è un std::vector
contenente una struttura con x
, y
e z
galleggianti. Questi sono gli stessi di quelli in vn
linee nel file .obj. Questi sono indicizzati con indici basati su 0.
it
è un iteratore di un vettore contenente strutture con vert_indices
e norm_indices
, questi sono gli stessi che vedrai nel f
Linee. Questi sono 1 indici basati.
In questo modo è possibile ottenere la normalità di un punto ottenendo le norm_indices del viso e sottraendo 1.