voilà j'ai le code suivant (pas bien beau je vous l'accorde mais bon c'est essentiellement pour des tests ):
void
draw()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
GLfloat light_position[]={0.0, 1.0, 1.0, 0.0};
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glTranslatef(transX, transY,0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
(*glActiveTextureARB)(GL_TEXTURE0_ARB);
glBindTexture(GL_TEXTURE_2D, tex_name[WALL_ID]);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glEnable(GL_TEXTURE_2D);
(*glActiveTextureARB)(GL_TEXTURE1_ARB);
glBindTexture(GL_TEXTURE_2D, tex_name[LIGHTMAP_ID]);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
(*glMultiTexCoord2fARB)(GL_TEXTURE0_ARB, 0.0, 0.0);
(*glMultiTexCoord2fARB)(GL_TEXTURE1_ARB,0.0, 0.0);
glNormal3f(0.0, 0.0, 1.0);
glVertex3f(-5.0, -5.0, -10.0);
(*glMultiTexCoord2fARB)(GL_TEXTURE0_ARB,0.0, 1.0);
(*glMultiTexCoord2fARB)(GL_TEXTURE1_ARB,0.0, 1.0);
glNormal3f(0.0, 0.0, 1.0);
glVertex3f(-5.0, 5.0, -10.0);
(*glMultiTexCoord2fARB)(GL_TEXTURE0_ARB,1.0, 1.0);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB,1.0, 1.0);
glNormal3f(0.0, 0.0, 1.0);
glVertex3f(5.0, 5.0, -10.0);
(*glMultiTexCoord2fARB)(GL_TEXTURE0_ARB,1.0, 0.0);
(*glMultiTexCoord2fARB)(GL_TEXTURE1_ARB,1.0, 0.0);
glNormal3f(0.0, 0.0, 1.0);
glVertex3f(5.0, -5.0, -10.0);
glEnd();
glDisable(GL_TEXTURE_2D);
SwapBuffers(dc);
}
et j'aimerais savoir pourquoi lorsque j'applique une translation sur la matrice de textures seule la lightmap voit sa position modifiée ? A priori si j'en crois le redbook toutes les coordonnées de textures doivent être multipliées par la matrice de textures, donc la texture du mur devrait se déplacer aussi....
---------------
Une brève histoire du GPU - PS5, Xbox Series X : la fin du bond technologique