Avant de t´exposer la solution, un petit cours de maths :
tu as un point x,y,z.
tu as une caméra a une position < plouf>
ce que tu veux, toi, c´est la position
x2,y2,z2, dans le repere de la caméra : ou x2,y2 seront la coordonnée dand le frustrum, et z2 la position relative de ton polygone
c´est sur z2 qu´intervient le z-buffer, autrement dit, si tu as z2, tu peux faire ton tri.
( apres, openGL calcule x3,y3, ( z3) pour obtenir la position x3,y3 qui sera sur ton écran)
Donc toi, tu veux x2,y2,z2 :
c´est tres simple :
( x2,y2,z2) = Matrix_View * ( x,y,z)
et ta matrix_view est a jour juste apres que tu appelles ton glRotate ( qui ne fait que mettre a jour ta matrix_view)
Techniquement : juste apres ton glRotate, tu fais :
glMatrixMode(GL_MODELVIEW);
ensuite, soit tu calcules a la main en récupérant la matrice ( avec glGet() )
soit tu triches et tu utilises :
glMultMatrix
en chargeant des valeurs bidons dans les autres colonnes que la premiere.
