2013년 2월 12일 화요일

3×3 행렬 maya scripting


3×3 행렬  maya scripting 
2013/02/12 18:00
전용뷰어 보기
script 제작(특히 expression제작)이나 vfx를 위해서는 수학이 필요성이 절실합니다. 최상위 실력자가 되려면 3d 수학을 필히 학습하세요.  국내에는 도서가 없읍니다. 가르쳐 주는 곳도 없읍니다.

3d 프로그램에서의 3×행렬의 의미 

3d 프로그램은 공간에서 물체의 방향과 크기를 묘사하기 위해 3×행렬을 사용합니다.(, 3d프로그램은 공간에서 물체의 위치를 묘사하기 위해, 4×행렬을 사용합니다.)

아래의 행렬은 3×단위 행렬입니다이 단위 행렬은 방향과 크기에 어떠한 변화도 발생하지않은 상태를 의미하는 행렬입니다이 단위 행렬을 가지고물체의방향과 크기 변화를 설명하겠습니다.
    

 3×단위 행렬을 숫자들의 집합으로 생각하지 말고, 3d 프로그램(maya, xsi, Houdini)viewport의 가장자리에있는 axis icon으로 일단 간주하세요.

위의 단위 행렬에서 맨 첫 번째 줄(, 1 0 0) x축을 의미하고두번째 줄(, 0 1 0) y축을 의미하고세 번째 줄(, 0 0 1)은 z축을 의미한다고 생각하세요그러면위의 단위 행렬은 아래와 같은 행태로 생각할 수 있습니다.
그래서, x축은 x축을따라서 1 unit의 위치에 있는 지점을 의미하고, y축은y축을 따라서 1 unit의 위치에 있는 지점을 의미하고, z축은 z축을 따라서 1 unit의위치에 있는 지점을 의미한다고 간주할 수 있습니다.

만약 axis icon의 크기가 모든 방향으로 두 배로 크기가 커졌다면각각의 축에 따라서 원래 위치의 2배가 되는 위치로 이동시키면 됩니다그러면 아래와 같이 작성할 수 있습니다.

아래 비디오 클립은 axis icon을 두 배로 키울 때화면의 왼쪽 상단 부분에서, 3×행렬의 값이 어떤 식으로 변화하는 지를 보여주고 있읍니다.


지금까지 object의 위치를 묘사하기 위해서 3×행렬이 사용되는 방식을설명하였습니다.

다음으로 object의 회전을 묘사하기 위해서, 3×행렬이 사용되는 방식을설명하겠습니다.
설명의 용이성을 위해서다시 단위 행렬을 가지고 설명하겠습니다, axis 아이콘을 y축을따라서 반 시계방향으로 회전한 경우를 생각해 보세요이 경우기존의x축은 –z축 방향을 향하게 되고기존의 z축은 +x축방향을 향하게 됩니다.
그러면각각의 축은 아래와 같이 변경이 되었다고 생각할 수 있읍니다.

시각화를 위해서 아래 비디오 클립을 삽입하였습니다. Axis icony축으로 반 시계방향으로 회전할 때화면의 왼쪽 상단 부분에서3×행렬의 값이 어떤식으로 변화하는 지를 보여주고 있읍니다.

지금까지는 object가 회전하거나 크기가 변경된 후에 3×행렬의 값이 어떤식으로 변경되는 지를 관찰했읍니다그러나만약 object의 상태를 묘사하는 행렬이 아래와 같은 경우를 생각해 보겠습니다.

위의 행렬을 이 post의 맨 위쪽에서 설명한 3×단위 행렬과 비교하여설명하겠습니다위 행렬의 맨 첫 번째 줄과 단위 행렬의 맨 첫 번째 줄은 서로 동일하기 때문에크기나 방향에 어떠한 변화가 없습니다.
위 행렬의 두 번째 줄과 단위 행렬의 두 번째 줄을 비교하면위행렬은 y축 방향이 거꾸로 되어서 아래쪽을 향하게 됩니다.
위 행렬의 세 번째 줄과 단위 행렬의 세 번째 줄을 비교하면위행렬은 z축 방향이 거꾸로 된 것을 알 수 있습니다.
위 행렬 상태를 얻을 수 있는 방법에는 2가지 방법들이 있습니다.
한 방법은 scale tool을 사용해, y축 방향과 z축 방향으로 거꾸로 scaling하는 방법입니다.
다른 또 하나의 방법은 x축을 중심으로 180도 회전시키면 됩니다.

이 2가지 방법들 중 어느 하나의 방법을 사용하더라도위의 행렬 상태를 얻게 됩니다.


댓글 없음:

댓글 쓰기