Cómo usar opengl para representar datos obj en un modelo 3D
Prefijo Parámetro 1 Parámetro 2 Parámetro 3...
Donde, el prefijo indica el tipo de información almacenada en el fila. Los parámetros son datos específicos. Un prefijo común para archivos OBJ es
v para indicar que la línea especifica un vértice. Este prefijo va seguido de tres números de punto flotante de precisión simple que representan las coordenadas X, Y y Z del punto fijo vt indica que la línea especifica las coordenadas de textura. Este prefijo va seguido de dos números de coma flotante de precisión simple. El prefijo va seguido de dos números de punto flotante de precisión simple, que representan los valores U y V de las coordenadas de textura. vn significa que la línea especifica un vector normal. Este prefijo va seguido de tres números de punto flotante de precisión simple que representan las coordenadas X, Y y Z del vector normal.
f indica que la línea especifica una cara. Una cara es en realidad un elemento triangular. El formato de parámetro de esta línea de prefijo se describirá en detalle más adelante.
usemtl Este prefijo va seguido de un parámetro. Este parámetro especifica el nombre del material para todas las superficies desde esta línea hasta la siguiente línea que comienza con usemtl. El material se puede encontrar en el archivo MTL adjunto a este archivo OBJ.
mtllib Este prefijo va seguido de un parámetro. Este parámetro especifica la ruta del archivo de la biblioteca de materiales (*.mtl) utilizado por este archivo OBJ
Ahora, veamos la estructura del archivo OBJ nuevamente. En el archivo OBJ, las primeras líneas que comienzan con el prefijo v, vt o vn especifican las coordenadas, las coordenadas de textura y las normales de todos los vértices. Luego, unas líneas que comienzan con f especifican los índices de los vértices, las coordenadas de textura y las normales correspondientes a cada triángulo. Los índices de vértices, coordenadas de textura y normales están separados por el símbolo "/". El formato de la línea f es el siguiente:
f 1 2 3 Dicha línea significa que los vértices 1, 2 y 3 forman un triángulo.
f 1/3 2/5 3/4 Una línea como esta representa un triángulo con los vértices 1, 2 y 3, donde la coordenada de textura del primer vértice está indexada por 3 y la coordenada de textura del segundo vértice está indexada por 3. Las coordenadas de textura están indexadas por 5 y las coordenadas de textura del tercer vértice están indexadas por 4.
f 1/3/4 2/5/6 3/4/2 Dicha línea representa un triángulo con los vértices 1, 2 y 3 respectivamente, donde la coordenada de textura del primer vértice es 3. Índice , la coordenada de textura del segundo vértice está indexada por 5 y la coordenada de textura del tercer vértice está indexada por 4.
f 1//4 2//6 3/2 Dicha línea representa un triángulo que consta de los vértices 1, 2 y 3, ignorando las coordenadas de textura. El primer vértice tiene un índice normal de 4; el segundo vértice tiene un índice normal de 6 y el tercer vértice tiene un índice normal de 2.
Vale la pena señalar que el valor de índice en el archivo comienza desde 1, que es completamente diferente del valor de índice que comienza desde 0 en el lenguaje C.