2011-04-25 17 views
7

Estoy tratando de dibujar múltiples tiras triangulares con una sola llamada a glDrawElements y mi investigación sobre el asunto me dice que necesito usar triángulos degenerados. Tal vez mi comprensión sobre el tema es incorrecta, pero pensé que esto debería permitirme "saltar" de una tira a otra.Problema con triángulos degenerados y GL_TRIANGLE_STRIP

Mi código completo para esto se puede encontrar en this recent question I posted, eche un vistazo allí si lo considera relevante.

Básicamente estoy tratando de dibujar 2 cuadrículas (para fines de simplificación) con 4 triángulos, por supuesto, pero separados el uno del otro. Para que utilizo índices como esto:

unsigned int indices[] = { 0, 256, 1, 257, 257, 2, 2, 258, 3, 259 }; 

El primer vértice de la primera tira se inicia en 0 y el primer vértice de la segunda tira se inicia en 256. Este es el resultado final de esta índices:

http://i.stack.imgur.com/6Q3FD.jpg

¿Es correcto o estoy en lo cierto al pensar que la línea "conectando" los 2 cuadrantes no debería estar allí para nada?

+1

Tenga en cuenta que si ejecuta en una tarjeta compatible con OpenGL 3.1, puede utilizar el reinicio primitivo con el mismo efecto, pero con menos problemas. Funciona insertando un índice especial (no utilizado, configurable) que hace que el GL inicie una nueva primitiva. – Damon

Respuesta

6

La imagen que se muestra es correcta. Este truco no funciona para wireframes. Si estuvieras dibujando triángulos rellenos, el triángulo con área cero no se mostraría, pero estás dibujando contornos.

+0

Interesante, es cierto lol. El marco de alambre era solo para fines de prueba, es más fácil ver si el mes está bien construido, simplemente no estaba al tanto de este pequeño capricho. –

Cuestiones relacionadas