▶ 평행이동 (Translation)
T(t)=\left ( \begin{array}{cccc}
1 & 0 & 0 & t_{x}\\
0 & 1 & 0 & t_{y}\\
0 & 0 & 1 & t_{z}\\
0 & 0 & 0 & 1\\
\end{array} \right )
→ 평행이동의 역변환
T^{-1}(t)=T(-t)=\left ( \begin{array}{cccc}
1 & 0 & 0 & -t_{x}\\
0 & 1 & 0 & -t_{y}\\
0 & 0 & 1 & -t_{z}\\
0 & 0 & 0 & 1\\
\end{array} \right )
▶ 회전 (Rotation)
R_{x}(\phi)=\left ( \begin{array}{cccc}
1 & 0 & 0 & 0\\
0 & cos\phi & -sin\phi & 0\\
0 & sin\phi & cos\phi & 0\\
0 & 0 & 0 & 1\\
\end{array} \right )
R_{y}(\phi)=\left ( \begin{array}{cccc}
cos\phi & 0 & sin\phi & 0\\
0 & 1 & 0 & 0\\
-sin\phi & 0 & cos\phi & 0\\
0 & 0 & 0 & 1\\
\end{array} \right )
R_{z}(\phi)=\left ( \begin{array}{cccc}
cos\phi & -sin\phi & 0 & 0\\
sin\phi & cos\phi & 0 & 0\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1\\
\end{array} \right )
→ 모든 3x3 행렬 R에서 대각 원소들의 합 tr(R)은 축과 무관하게 상수값을 가진다.
tr(R)=1+2cos\phi
이 합을 trace라고 부른다.
→ 모든 회전행렬은 직교 행렬이므로
R^{-1}=R^{T}
과 같이, 역행렬은 전치행렬과 같다. 역행렬을 구하는 다른 방법은
R_{i}^{-1}(\phi)=R_{i}(-\phi)
이다.
→ 회전행렬의 판별자는 항상 1개 뿐이다.
→ (예) 특정 점 p를 중심으로 z축을 따라 φ라디안 만큼 물체를 회전시키는 변환 행렬은
(-p) 만큼 평행이동 → z축으로 φ회전 → (p) 만큼 평행이동 시키는 것이다.
X=T(p)R_{z}(\phi)T(-p)
▶ 크기 조정 (Scaling)
S(s)=\left ( \begin{array}{cccc}
s_{x} & 0 & 0 & 0\\
0 & s_{y} & 0 & 0\\
0 & 0 & s_{z} & 0\\
0 & 0 & 0 & 1\\
\end{array} \right )
단,s_{x}=s_{y}=s_{z} 인경우 uniform(isotropic)이라 하고, 그렇지 않은경우 non-uniform(anisotropic)이라 한다.
역변환은
S^{-1}(s)=S(\frac{1}{s_{x}}, \frac{1}{s_{y}}, \frac{1}{s_{z}})
특히, uniform이고 동차좌표를 이용하는 경우에는 w 성분을 이용하여 역변환을 표현할 수 있다.
S(s)=\left ( \begin{array}{cccc}
s & 0 & 0 & 0\\
0 & s & 0 & 0\\
0 & 0 & s & 0\\
0 & 0 & 0 & 1\\
\end{array} \right )=\left ( \begin{array}{cccc}
1 & 0 & 0 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & \frac{1}{s}\\
\end{array} \right )
→ 성분들 가운데 하나 또는 세 개가 음수이면 거울 행렬(mirror matrix)이라고도 불리는 반사 행렬(reflection matrix)이 만들어진다. 이렇게 되면 정점들의 감기 순서(winding order)가 반대로 바뀐다.
→ 좌측 상단 3x3 행렬의 판별자의 값이 음수이면 주어진 행렬이 반사 행렬이다.
▶ 변환의 결합
변환의 결합은 순서가 중요하며 다음과 같은 순서로 결합한다.
C=TRS
TRSp=(T(R(Sp)))
→ 평행이동의 역변환
▶ 회전 (Rotation)
→ 모든 3x3 행렬 R에서 대각 원소들의 합 tr(R)은 축과 무관하게 상수값을 가진다.
이 합을 trace라고 부른다.
→ 모든 회전행렬은 직교 행렬이므로
과 같이, 역행렬은 전치행렬과 같다. 역행렬을 구하는 다른 방법은
이다.
→ 회전행렬의 판별자는 항상 1개 뿐이다.
→ (예) 특정 점 p를 중심으로 z축을 따라 φ라디안 만큼 물체를 회전시키는 변환 행렬은
(-p) 만큼 평행이동 → z축으로 φ회전 → (p) 만큼 평행이동 시키는 것이다.
▶ 크기 조정 (Scaling)
단,
역변환은
특히, uniform이고 동차좌표를 이용하는 경우에는 w 성분을 이용하여 역변환을 표현할 수 있다.
→ 성분들 가운데 하나 또는 세 개가 음수이면 거울 행렬(mirror matrix)이라고도 불리는 반사 행렬(reflection matrix)이 만들어진다. 이렇게 되면 정점들의 감기 순서(winding order)가 반대로 바뀐다.
→ 좌측 상단 3x3 행렬의 판별자의 값이 음수이면 주어진 행렬이 반사 행렬이다.
▶ 변환의 결합
변환의 결합은 순서가 중요하며 다음과 같은 순서로 결합한다.
'3D그래픽' 카테고리의 다른 글
Phong Shading (0) | 2011.09.10 |
---|---|
Bézier, Gouraud, Fresnel 의 발음 (0) | 2011.09.08 |
Goraud shading vs. Phong shading (0) | 2011.09.02 |
Normal Transform(법선벡터 변환) (0) | 2011.09.02 |
COLLADA (3D Asset Exchange Schema) (0) | 2011.08.31 |