큐브맵을 사용해서 스카이박스를 만드는데 자꾸만 뒤집혀서 나온다. 이리저리 찾아본 결과 큐브맵에 사용되는 unwrapped cube texture는 좌표계가 조금 특이하다는걸 알게되었다.
출처: http://www.belanecbn.sk/3dtutorials/index.php?id=24
위 글의 코멘트에 어느분이 질문을 했고(이게 내가 궁금했던거고..) 굉장히 친절하게 답변해주셨다.
-----------------------------------------------------------
cube map texture
(3) | (-y) | (u)
(1) (4) (0) (5) | (-x) (+z) (+x) (-z) | (b) (r) (f) (l)
(2) | (+y) | (d)
0: GL_TEXTURE_CUBE_MAP_POSITIVE_X
1: GL_TEXTURE_CUBE_MAP_NEGATIVE_X
2: GL_TEXTURE_CUBE_MAP_POSITIVE_Y
3: GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
4: GL_TEXTURE_CUBE_MAP_POSITIVE_Z
5: GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
-Yu
| +Zr
| /
|/
-Xb---|---+Xf ==> textures as we want them to be seen
/|
/ |
-Zl |
+Yd
roated 180 degrees around the X axis
+Yd
| -Zl
| /
|/
-Xb---|---+Xf => textures stored in cube map in OpenGL
/|
/ |
+Zr |
-Yu
-----------------------------------------------------------
큐브맵 텍스쳐의 6면이 내가 생각했던것과 반대였고, 그래서 계속해서 뒤집혀진 스카이박스가 출력되었던 것이다. (DirectX에서 내가 원래 생각했던 순서가 맞았다..)
'Graphics Note' 카테고리의 다른 글
device context and rendering context (0) | 2014.02.24 |
---|---|
Bezier curve (0) | 2014.02.04 |
Normal Matrix (1) | 2013.12.15 |
glHint (0) | 2013.12.14 |
Vector/Matrix class (0) | 2013.12.02 |