2
OpenGL에서 그림자 매핑을보고 있습니다. 내가 바이어스 행렬을 찢어 경우, 지금그림자 매핑의 바이어스 매트릭스
// This is matrix transform every coordinate x,y,z
// x = x* 0.5 + 0.5
// y = y* 0.5 + 0.5
// z = z* 0.5 + 0.5
// Moving from unit cube [-1,1] to [0,1]
const GLdouble bias[16] = {
0.5, 0.0, 0.0, 0.0,
0.0, 0.5, 0.0, 0.0,
0.0, 0.0, 0.5, 0.0,
0.5, 0.5, 0.5, 1.0};
// Grab modelview and transformation matrices
glGetDoublev(GL_MODELVIEW_MATRIX, modelView);
glGetDoublev(GL_PROJECTION_MATRIX, projection);
glMatrixMode(GL_TEXTURE);
glActiveTextureARB(GL_TEXTURE7);
glLoadIdentity();
glLoadMatrixd(bias);
// concatating all matrice into one.
glMultMatrixd (projection);
glMultMatrixd (modelView);
// Go back to normal matrix mode
glMatrixMode(GL_MODELVIEW);
:
나는 같은 코드를 참조하십시오. 코드가 작동하지 않습니다. 다른 쉐도우 맵핑 코드를 검색 할 때, 나는 설명없이 똑같은 바이어스 매트릭스를 본다. x, y, z를 0.5 * x + 0.5, 0.5 * y + y로 매핑하는 이유는 무엇입니까?
감사합니다.