Saltar al contenido

GL_TRIANGLE_STRIP frente a GL_TRIANGLE_FAN

Posterior a mirar en diversos repositorios y sitios de internet finalmente nos hemos encontrado la resolución que te enseñaremos aquí.

Solución:

Al saber la diferencia entre tira triangular y Abanico triangular una forma será fácil de hacer.

tira triangular

por ejemplo un tira triangular es un conjunto de triángulos conectados que comparten vértices.

Ejemplo de tira triangular

Usando tira triangular podremos obtener el siguiente resultado, usando esos vértices dados.

ingrese la descripción de la imagen aquí

Abanico triangular

Donde un Abanico triangular es también un conjunto de triángulos conexos, aunque todos estos triángulos tienen un vértice común, que es el vértice central.

En OpenGL el vértice central es el primer vértice dado, en el Abanico triangular.

Ejemplo de abanico triangular

Usando Abanico triangular y los mismos vértices que en el otro ejemplo, solo podremos obtener el área coloreada como salida. Esto se debe a la importancia del orden dispuesto de los vértices en Abanico triangular. Básicamente, todos los vértices deben ir alrededor del vértice central.

ingrese la descripción de la imagen aquí

Conclusión

Como puede ver en nuestros 2 ejemplos de conjuntos de vértices, esas “formas de salida” son únicas para ambos tira triangular y Abanico triangular.

Nota: Los ejemplos de imágenes utilizan el orden de giro en el sentido de las agujas del reloj, mientras que en OpenGL el el lado frontal utiliza un orden de bobinado en sentido contrario a las agujas del relojes decir, los ejemplos son literalmente de espaldas a la cámara. Este es un detalle importante si la eliminación de rostros está habilitada.

Extra

Hice una respuesta similar aquí, puedes leerla si quieres, en realidad usé las mismas imágenes ya que las preguntas están estrechamente relacionadas.

Difícil de responder en texto puro. Para Fan, una forma de S sería imposible (en general, recuerde que fan está limitado en que hay un punto común a cada triángulo).

En cuanto a lo contrario, es una pregunta capciosa. Triangle_strip puede hacer todos los polígonos de Triangle_fan, aunque requiere un poco de truco. Considere el siguiente polígono (el orden que se muestra es para Triangle_fan)

3--4--5
| | /|
2--1--6
   | |
   8--7

Esto podría hacerse de la siguiente manera

2-----4
|   /|
1--3/7| 
   | |
   6--5

Tenga en cuenta los polígonos superpuestos. Si no permite polis de doble cara o superposición, supongo que este sería un ejemplo de un poli de ventilador solamente.

Ten en cuenta comunicar este post si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *