Formation OpenGL

Le miroir (Tampon Stencil et Plan de Clipping)

Introduction

Usage du tampon stencil

Où et comment dessiner le reflet ?

Problème : si l'objet est derrière le miroir, le reflet apparaît devant

Une solution : le plan de clipping

Derrière le miroir : le Culling

Et voilà que l'idée étrange nous prend de regarder derrière le miroir :
dans cette image la théière est derrière le miroir,
et son reflet est donc devant le miroir par rapport à l'utilisateur,
mais derrière par rapport au miroir : le plan de clipping ne le supprime donc pas...

On met en oeuvre une dernière astuce : lors de l'affichage du miroir dans le Tampon Stencil, on n'affiche que sa face avant, c'est-à-dire que l'on n'affiche que les polygones qui sont orientés vers la caméra.

Pour ce faire, on supprime les faces arrières, c'est le Culling :
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);
On dessine le miroir, et on réactive si l'on veut l'affichage des faces arrières :
glDisable(GL_CULL_FACE);

ainsi, le Tampon Stencil ne sera marqué qu'avec l'endroit du miroir !

Exemple

Exercices



17 décembre 2012