2011-02-17 3 views
0

Si j'ai un cube dont les arêtes sont parallèles aux axes et est centré à l'origine, est-il correct que les normales soient parallèles aux axes ou en d'autres termes qu'une seule composante du vecteur normal puisse être non zéro et les deux autres composants doivent être zéro? IF x, y, z, est un vecteur normal alors si x n'est pas nul alors y et z doivent être nuls?Normales dans OpenGL ES

Dans l'application OpenGL ES, combien de normaux sont nécessaires pour un bon éclairage? Avons-nous besoin d'un normal par sommet, ou d'un normal par triangle ou d'un normal par surface?

Ces 2 lignes de code sont liés à cette question:

gl.glEnableClientState(GL10.GL_NORMAL_ARRAY); 
gl.glNormalPointer(GL10.GL_FLOAT, 0, mNormalBuffer); 

Comment OpenGL ES sait ce qui correspond normale avec quel triangle, ou un sommet ou une surface du maillage en cours d'élaboration?

Répondre

1

Les normales sont spécifiées par sommet et ne doivent pas nécessairement être parallèles à un axe (bien qu'elles soient dans le cas de votre cube), elles doivent être de longueur unitaire et perpendiculaires à la surface que votre maillage approche.

Consultez this answer pour une question similaire.