rendered paste body// TP3 if(shader.uniformLocation("shadow_matrix")>=0) { xform shadow_matrix; // Biais pour éviter le self-shadowing xform bias(0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.5f, 0.5f, 0.5f, 1.0f); shadow_matrix = shadow_matrix * bias; // Grab modelview and transformation matrices glGetDoublev(GL_MODELVIEW_MATRIX, _modelView_matrix); glGetDoublev(GL_PROJECTION_MATRIX, _projection_matrix); glMatrixMode(GL_TEXTURE); glActiveTextureARB(GL_TEXTURE7); glLoadIdentity(); glLoadMatrixd(bias); // concatating all matrices into one. glMultMatrixd (_projection_matrix); glMultMatrixd (_modelView_matrix); // Go back to normal matrix mode glMatrixMode(GL_MODELVIEW); shader.setUniformXform("shadow_matrix", shadow_matrix); } setupLighting(shader); // TP2 setupTextures(shader);