2011-11-07 19 views
8

Estoy tratando de "llenar" una superficie de una esfera que dibujé usando este algoritmo aquí: http://paulbourke.net/miscellaneous/sphere_cylinder/, el primer método. Sé que GL_QUADS ya no se usa en OpenGL 3+. SO he usado GL_TRIANGLE_FAN. ¿Es la misma cosa? El problema aquí es que las facetas de mi esfera son cuadrados. Entonces, si uso GL_TRIANGLE, entonces obtengo un "relleno" extraño, no toda la superficie está cubierta. ¿Lo estoy haciendo de la manera incorrecta? ¿Cómo funciona GL_TRIANGLE_FAN exactamente?GL_TRIANGLE FAN Explicación

+0

primer golpe en Google debe explicar por usted http://www.naturewizard.com/tutorial0104.html – stefan

+0

es que las nuevas versiones de OpenGL? –

+0

Triangle FAN es una primitiva básica que comparte el mismo concepto en todas las versiones OpenGL y Direct3D (XNA). – stefan

Respuesta

48

¿Cómo funciona exactamente GL_TRIANGLE_FAN?

El primer vértice de un triángulo de ventilador actúa como un cubo. Los vértices siguientes se conectan con el vértice anterior que no arranca y el centro.

enter image description here

1

Probablemente necesite una tira triangular en lugar de un ventilador.

ver la imagen en este enlace para ver la diferencia: http://www.vrarchitect.net/anu/cg/surfaceModeling/polygonMesh.en.html

+2

Dudo que una franja triangular lo ayude a teselar una esfera en una llamada al sorteo. Y para un solo cuadrante, un abanico de triángulo funciona tan bien como una franja triangular. –

+0

Puede usar una tira triangular, pero necesita duplicar estratégicamente los vértices al final de la tira para pasar a la siguiente tira. Los vértices duplicados crean triángulos vacíos, que OpenGL ignora. Sin embargo, usar triángulos rectos es ciertamente más sencillo. – prewett