2012-12-25 15 views
6

Sto leggendo diversi libri su OpenGL e in due di essi definiscono sempre i vertici in senso antiorario. Da quello che ho letto questo è molto cruciale perché determina dove sono il fronte e il retro.Vertices counter/clock

Ma sto anche leggendo il tutorial su http://www.arcsynthesis.org/gltut/ E li definisce in senso orario.

const float vertexPositions[] = { 
    0.75f, 0.75f, 0.0f, 1.0f, 
    0.75f, -0.75f, 0.0f, 1.0f, 
    -0.75f, -0.75f, 0.0f, 1.0f, 
}; 

Non dovrei usare sempre la notazione in senso antiorario, perché quella è l'impostazione predefinita in opengl?

Anche perché il tipo è float? Non dovrebbe essere un GLfloat?

risposta

9

Non dovrei usare sempre la notazione in senso antiorario, perché questo è il default in opengl?

Questa è la vostra scelta. È possibile utilizzare la notazione CCW o CW. È sempre possibile ignorare questo comportamento con glFrontFace(). Non c'è alcuna differenza per l'hardware, che modo di lavorare, ma, immagino, la scelta di CW potrebbe causare alcuni problemi inaspettati quando si tenta di utilizzare la libreria di terze parti che preferisce CCW o qualcosa del genere.

Anche perché il tipo è un galleggiante? Non dovrebbe essere un GLfloat?

Deve essere GLfloat. D'altra parte, sulla maggior parte delle piattaforme float e GLfloat sono esattamente le stesse e non si riesce a trovare alcuna differenza. L'utilizzo di GLfloat è una pratica migliore dal punto di vista della portabilità. Un'altra considerazione: sottolinea che la variabile viene utilizzata per il rendering grafico, quindi è una buona cosa da fare.

Problemi correlati