3D 컴퓨터그래픽스 #5 - 매트릭스

Words
220
Reading
1 min
Listen
Play
8y

이 시리즈는 anicreator@anicreator님이 연재하시는 "애니 잡설"이랑 같이 읽으시면 좋을 것 같아요

3D 공간에서 물체를 이동시키거나 회전, 크기를 변하게 하는 것을 변환(Transformation)이라고 부릅니다. 그리고, 이 변환을 계산하기 위해서 매트릭스(Matrix), 곧 행렬이 사용됩니다. 이렇게 물체의 변환에 사용되는 행렬을 변환 행렬이라고 하는데요, 3D 변환은 4x4 행렬로 표현됩니다. 앞에서 예로 들었던 정육면체를 3D공간에서 움직이고, 회전시키고, 크기를 변환하려면 각 정점의 위치를 이 행렬에 곱하면 됩니다. 이 때, 4x4 행렬에 곱하기 위해 각 정점의 x, y, z위치값에 1을 추가해서 동차 좌표(homogeneous coordinate)로 만들어 계산합니다. 즉, x=1, y=2, z=-1 위치에 있는 정점은 (1, 2, -1, 1)로, x=-1, y=1, z=0 위치에 있는 정점은 (-1, 1, 0, 1)로 해서 사용합니다.

3Dtransformations.png
http://www.c-jump.com/bcc/common/Talk3/Math/Matrices/W01_0100_3d_transformations.htm

변환중에 위치, 회전, 크기 등만을 변환시키는 것을 어파인 변환(Affine Transformation)이라고 합니다. 날아가는 비행기나 굴러가는 당구공과 같이 물체의 형태가 변하지 않고 움직이는 것은 이 어파인 변환에 의해서라고 이해하시면 될 거에요. 이제 우리는 정점으로 이루어진 폴리곤이 모여서 표현된 3D 물체를 3D 공간 가운데 어파인 변환에 의해 배치시켜 놓을 수가 있게 되었습니다. 장면을 구성하게 된 것이지요. 이제 이 장면을 컴퓨터가 렌더링하기 위해서는 무엇이 또 필요할까요? 바로 빛입니다.


http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices

실제로 우리 눈이 사물을 보게 되는 것은, 광원으로부터 나온 빛이 물체의 표면에서 반사해서 우리 눈으로 들어오기 때문이지요? 컴퓨터 그래픽스의 렌더링도 마찬가지입니다. 다음 편에서 이 빛을 어떻게 계산하는지 알아보겠습니다.

©2018 gyedo@gyedo

3D 컴퓨터그래픽스 #5 - 매트릭스 | Ecency