Génération de terrain (1/2)
Par Xavier Michelon


 
   
Faces avant et arrière

Il y a quelques temps, je vous ai présenté la fonction permettant de définir le mode de remplissage des polygones, et je vous ai laissé entendre qu’il était possible de remplir différemment les faces avant et arrière d’un polygone, ce qui nécessite de pouvoir distinguer une face avant et arrière pour chaque polygone. Par défaut, si le points constituant un polygone sont affichés à l’écran dans le sens inverse des aguilles d’une montre, la face dessinée et la face avant. Il est possible de modifier ce comportement avec

glFrontFace(GLenum mode);

Si ‘mode’ vaut GL_CCW, les faces avant sont celles orientées dans le sens contraire des aiguilles d’une montre (CounterClockWise en anglais). Si ‘mode’ vaut GL_CW, les faces avant sont celle orientées dans le sens des aiguilles d’une montre (ClockWise).

Le masquage des faces arrières (backface culling)

Le masquage de face arrière est une fonctionnalité permettant de ne pas afficher les faces arrières d’un objet.  Jusqu’à aujourd’hui, cette fonctionnalité ne présentait pas beaucoup d’intérêt visuel, puisque nous travaillions avec un cube fermé et nous ne voyions aucune face arrière. En réalité, OpenGL permet de masquer les faces avant, arrières ou les deux face (ce qui est relativement inutile, je vous le concède). Les faces à masquer sont définies avec

GlCullFace(GLenum mode);

GL_FRONT correspond aux faces avants, GL_BACK aux faces arrière et GL_FRONT_AND_BACK aux deux faces. Pour activer le masquage, il suffit ensuite d’appeler glEnable(GL_CULL_FACE).