Pregunta

He creado un un cargador OBJ que puede importar archivos .obj que se exportaron de 3DS Max en mi sencilla OpenGL espectador / aplicación. En el corazón de este era un Vector3.h escrito con la ayuda de algunos tutoriales.

funcionado muy bien en un par de modelos que he utilizado, pero el que yo quiero trabajar con tiene algo diferente que no se contabiliza. Dispone de 4 puntos en sus vértices en lugar de 3. Este es un ejemplo de una línea estoy trabajando con:

g Box02
usemtl Wood_Bark
s 4
f 1/1/1 2/2/1 3/3/1 4/4/2
f 4/1/3 3/2/3 5/3/3 

La primera línea 'f' tiene 4 vértices Estoy interesado en. Mi Vertex3.h toma X, Y, Z. En los otros modelos que tenía, todas las líneas eran como el segundo 'f' línea, con sólo 3 elementos . Me estoy haciendo un vértice fuera de rango, así que cuando fui a comprobar dónde estaba ocurriendo, vi que era en esta línea, así que supuse porque no hay más datos sobre la línea que se puede manejar. Aquí está toda la Vertex3.h

http://pastebin.com/dgGSBSFe

Y esta es la línea de código que falla. vértices es un Vector3.

tempVertices.push_back ( vertices[--vertex] );

Mi pregunta es, ¿cuál es el punto cuarto? ¿Cómo explica usted que, en algo así como mi archivo Vector3.h? Parece que necesito para crear un Vector4.h, e ignorar el cuarto var si sólo hay 3 en la línea. Pero me gustaría saber más acerca de lo que estoy tratando, y algunos consejos sobre cómo hacerlo. Es el cuarto elemento de un alfa o algo? ¿Cómo debería ser utilizado, o se debe utilizar en absoluto en mis cálculos en Vector3.h?

¿Fue útil?

Solución

Una cara con cuatro puntos se denomina quad. Por lo general, si quieres hacerla usted debe dividirla en dos triángulos.

Así, por ejemplo, tiene la siguiente:

 ___
|   |
|   |
|___|

Es necesario para convertirlo en esto:

 ___
|\  |
| \ |
|__\|

Suponiendo que los vértices van hacia la izquierda (el valor por defecto en OpenGL), a partir de la parte superior izquierda, se puede hacer dos triángulos. vértices El primero de triángulo serían primero del quad, segundo, y tercer vértices. vértices El segundo de triángulo serían tercero, cuarto, y los primeros vértices del cuádruples.

Otros consejos

¿Por qué no se exporta, ya que sólo triángulos? Convertir a Emesh en 3ds max, hacen todas las aristas visibles, exportación. O simplemente utilizar la opción apropiada de exportación OBJ.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top