2011-11-07 8 views
8

Sto cercando di "riempire" una superficie di una sfera che ho disegnato utilizzando questo algoritmo qui: http://paulbourke.net/miscellaneous/sphere_cylinder/, il primo metodo. So che GL_QUADS non è più utilizzato in OpenGL 3+. COSÌ ho usato GL_TRIANGLE_FAN. È la stessa cosa? Il problema qui è che le mie sfaccettature a sfera sono quadrate. Quindi, se uso GL_TRIANGLE, ho uno strano "riempimento", non tutta la superficie è coperta. Lo sto facendo nel modo sbagliato? In che modo GL_TRIANGLE_FAN funziona esattamente?GL_TRIANGLE FAN Spiegazione

+0

Primo colpo su google dovrebbe spiegare per voi http://www.naturewizard.com/tutorial0104.html – stefan

+0

è che per le nuove versioni di OpenGL? –

+0

Triangle FAN è una primitiva di base che condivide lo stesso concetto in tutte le versioni OpenGL e anche Direct3D (XNA). – stefan

risposta

48

Come GL_TRIANGLE_FAN funziona esattamente?

Il primo vertice di un ventilatore a triangolo funziona come un hub. I vertici seguenti si collegano con il vertice precedente non di partenza e l'hub.

enter image description here

1

Probabilmente hai bisogno di una striscia triangolare invece di una ventola.

vedere l'immagine in questo link per vedere la differenza: http://www.vrarchitect.net/anu/cg/surfaceModeling/polygonMesh.en.html

+2

Dubito che una striscia triangolare lo avrebbe aiutato a tessellare una sfera in una sola chiamata. E per un singolo quadrupolo un ventilatore a triangolo funziona come una striscia triangolare. –

+0

È possibile utilizzare una striscia triangolare, ma è necessario duplicare strategicamente i vertici all'estremità della striscia per passare alla striscia successiva. I vertici duplicati creano triangoli vuoti, che OpenGL ignora. Tuttavia, l'uso di triangoli dritti è sicuramente più semplice. – prewett