Por lo tanto, tanto en D3D como en OpenGL hay capacidad para dibujar desde un búfer de índice.3 búferes de índice
El formato de archivo OBJ sin embargo hace algo raro. En él se especifica un grupo de vértices como:
v -21.499660 6.424470 4.069845 v -25.117170 6.418100 4.068025 v -21.663851 8.282170 4.069585 v -21.651890 6.420180 4.068675 v -25.128481 8.281520 4.069585
A continuación se especifica un grupo de normales como ..
vn 0.196004 0.558984 0.805680 vn -0.009523 0.210194 -0.977613 vn -0.147787 0.380832 -0.912757 vn 0.822108 0.567581 0.044617 vn 0.597037 0.057507 -0.800150 vn 0.809312 -0.045432 0.585619
A continuación se especifica un grupo de coordenadas tex como
vt 0.1225 0.5636 vt 0.6221 0.1111 vt 0.4865 0.8888 vt 0.2862 0.2586 vt 0.5865 0.2568 vt 0.1862 0.2166
ENTONCES especifica "caras" en el modelo como:
f 1/2/5 2/3/7 8/2/6 f 5/9/7 6/3/8 5/2/1
Donde estamos v/t/n el primer número es un índice en el conjunto de vértices, el segundo un índice en el conjunto de coordenadas de tex, el tercero, en el conjunto de normales.
Así, al tratar de hacer esto con buffers de vértices,
En OpenGL puedo usar glVertexPointer
, glNormalPointer
y glTexCoordPointer
para establecer indicadores para cada uno de los vértices, la normalidad y la textura de coordenadas matrices, respectivamente .. pero cuando se trata a dibujar con glDrawElements
, sólo puedo especificar UNO conjunto de índices, a saber, los índices se debe utilizar cuando se visita los vértices.
Ok, ¿entonces qué? Todavía tengo conjuntos de índices para visitar.
En su D3D la misma - que puedo configurar 3 corrientes: una para los vértices, uno para texcoords, y otra para las normales, pero cuando se trata de usar IDirect3DDevice9 :: DrawIndexedPrimitive, todavía sólo se puede especificar UNO buffer de índice, que se indexará en la matriz de vértices.
lo tanto, es posible para sacar de buffers de vértices utilizando diferentes matrices de índice para cada uno de los vértices, TexCoord y tampones normales (ya sea D3D o OpenGL!), O tengo que crear una sola agrupación entrelazada y luego visitar ¿ESO?
posible duplicado de [Procesamiento de mallas con índices múltiples] (http://stackoverflow.com/questions/11148567/rendering-meshes-with-multiple-indices) –