BLOG main image   

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 기초적인것이지만 이 활용도는 생각외로 큽니다




반응형

+ Recent posts