본문 바로가기

그래픽스

[DX12] 좌표계 변환 행렬

카메라 기준으로 좌표가 바뀌기 때문에 좌표계의 변환은 수시로 일어난다. 그래서 새로운 좌표계를 기준으로 행렬을 변환하는 것은 중요하다. 예시로 아래 그림의 좌표 M을 A좌표계에서 B좌표계로 변환해서 표현해보겠다.

 

 

1.벡터 AM을 AB+BM으로 나눈다.

2.AB를 넘기고 BM을 그림처럼 (...)u2 + (...)v2 형식으로 표현한다.

 

식을 행렬로 표현하면 

(x,y,z,1)와  Ux Uy Uz 0 를 곱한 것이 된다.

              Vx Vy Vz 0

            Wx Wy Wz 0  

             Qx Qy Qz  1

 

X = xUx + yUy + zUz ,  

Y = xVx + yVy + zVz ,

Z = xWx + yWy + zWz 는 A좌표를 B좌표계 기준으로 표현한 것이다.

 

만약 위치벡터가 아닌 기하벡터(방향벡터)라면 시작점이 존재하지 않기 때문에 행렬의 가장 밑 줄, translation 성분(qx,qy, qz)은 사라진다. 행렬식을 적용할 때 변화하는 대상이 위치(좌표)라면 (x,y,z,1)로 계산하고 방향(벡터)라면 (x,y,z,0)으로 계산한다.

 

'그래픽스' 카테고리의 다른 글

[DX12] Normal Mapping  (0) 2022.02.28
[DX12] Projection, Screen 변환 행렬  (0) 2022.02.26
[DX12] World, View 변환 행렬  (0) 2022.02.26
[DX12] 삼각형 그리기  (0) 2022.02.24
[DX12] 장치 초기화 개요  (0) 2022.02.20