[Common]3DS MAX, D3D, OpenGL의 좌표계에 대하여...

2015. 9. 27. 11:49프로그래밍/3D Graphics

좌표계

3차원 공간의 좌표는 세 개의(x, y, z) 축으로 표현된다.

보통 xy축이 나타내는 방향은 같으며, z축의 방향에 따라 왼손 좌표계, 오른손 좌표계로 구분되어 진다.



3DS MAX, OPENGL, D3D의 좌표계


가장 많이 사용되는 모델링 툴인 MAX 3D 그래픽 라이브러리인 OpenGL오른손 좌표계

D3D는 왼손 좌표계를 사용한다.

MAX의 경우 오른손 좌표계를 사용하지만, Z축이 위를 향하고 있다는 것을 잊지 말자.


좌표계 변환

[MAX->D3D]

MAX에서 Exporting한 모델링 파일을 D3D에서 표현하기 위해서는 좌표계를 변환해야 한다.

변환 : x = x, y = z, z = y

 

[MAX->OPENGL]

OpenGLMAX와 동일하게 오른손 좌표계를 사용한다.

하지만 Y축의 방향이 서로 다르기 때문에 MAX 좌표계를 그대로 사용하면, 모델의 정면이 아닌 아래쪽이 표현된다물론 회전을 해서 그리면 해결되지만, 편의를 위해 주로 좌표를 맞춘다. 이는 위의 dx도 마찬가지...

변환 : x = x, y = z, z = -y

 

[D3D <-> OPENGL]

D3D는 왼손OpenGL은 오른손 좌표계를 사용하기 때문에 Z축의 방향이 반대이다.

상호간 변환을 위해서는 Z축의 방향만 바꿔주면 된다.

변환 : x = x, y = y, z = -z