http://3dmpengines.tistory.com
왼손(DX)의 경우 V*A(=행기준 행렬)=V'
이러한 순서가 되며
오른손 (Opengl)의 경우는 A(=열기준 행렬)*V=V'
의 순서가 됩니다
이해하기 쉬우려면 벡터 V 에 대한 좌표변환(회전 또는 위치) 의 각 성분들 중 공통인것끼리만 벡터 V와 곱하면 되는데
즉
왼손의 경우 V가 행렬 A에 의해 변환된다고 할때 =V'의 x 성분은
각 A축의 x성분, B축의 x성분 C축의 x성분 그리고 pos위치의 x 성분과 각 값을 곱하면 그것이 V'의 x성분이 됩니다
Vx*Ax + Vy*Bx + Vz*Cx + 1*posx = V'x
나머지 V'y, V'z, V'w 성분도 동일합니다
오른손도 마찬가지입니다
그런데 카메라 행렬에서는 이것이 방법과는 약간 미묘한 차이를 보입니다
즉 이동부분과 회전부분에 대해서 각가 다른것을 볼 수 있는데요
회전부분은 월드 위치를 반대로 회전시켜야 하기때문에 A의 회전부분 3x3 부분이 전치가 되어있는 것이고
이동또한 카메라에서 월드세계를 볼때 월드세계의 오브젝트(정점)들이 반대로 이동되게 되면 현실세계에서의
카메라 이동과 동일함으로 이동부분에 - 가 붙게 됩니다
카메라의 경우는 그렇다 치고 일반적인 월드공간 변환과 유사하게
정규직교기저인 벡터 3개만 있다면?
그렇슴돠~~!!!! 자신이 원하는 공간으로 변환할 수 있게 되는 것이죠!!!
p.s 기초적인것이지만 이 활용도는 생각외로 큽니다
반응형
'수학 (Mathematics) > 3D수학' 카테고리의 다른 글
근사 편미분 파동방정식, 경계 범위 식구하기 [구현] (0) | 2013.02.22 |
---|---|
근사 편미분 파동방정식, 경계 범위 식구하기 (0) | 2013.02.22 |
기초 : 행기준 행렬과 열기준 행렬 (0) | 2013.01.09 |
기초 : 오브젝트 법선벡터 추리기 : Backface Culling (0) | 2013.01.01 |
카메라 클래스 - 쿼터니온 (0) | 2012.11.18 |