이번시간에는 3D에서의 Transform 을 배워볼 것이다.
[3차원 Scaling]
[3차원 Rotation]
2차원 회전은 항상 '점'중심이었습니다.
3차원 회전 축을 중심으로 회전합니다.
ex_1) z축 회전
x랑 y만 변한다. (z좌표는 rotation 후에도 유지된다.)
R 구간을 변경하면 된다.
ex_2) x축 회전
ex_3) y축 회전
ex_4) CCW vs CW rotation
반시계 방향 회전 Θ가 양수
시계방향 회전 은 Θ가 음수로 된다.
[3차원 Translation]
2차원에서 처럼 사이즈1만큼 더큰 Idnetity행렬을 곱해준다.
4x4 Identity 행렬에 이동할 만큼의 변위벡터 Dx Dy Dz 만 집어 넣어주면 된다.
[ 3차원 변호나을 4X4 곱셈으로 표현하기 ]
ex_1) Scaling
ex_2) Rotation
ex_3) Translation
[ World space / Object Space ]
" Object Space"
모델링해서 나온 결과물들은 원점을 기준으로 만들어져 있고, 배치되어 져 있다.
"Word Space"
이 결과물들을 실제 게임이나 영화에서의 3차원 공간에 배치해 놓으려면
적당한 변환을 통해 놓아야한다. 그것이 "월드스페이스" 라고 한다.
"Transform 의 필요성"
Object Space 에서 World Space 로 옮길때 Transform 이 필요하다.
[Q : T구간은 언제 그대로 나오고 언제 L과 결합되서 나오나요?]
chat-GPT 답변 :
RT 구간에서 T 구간은 일반적으로 3차원 공간에서 객체의 위치를 변환하는 작업을 의미합니다. T 구간에서는 객체를 이동시키는 변환(translation) 값뿐만 아니라, 회전(rotation) 값과 크기 조절(scale) 값도 포함될 수 있습니다.
따라서, RT 구간에서 T 구간에서 Translation 값만 나오는 경우는 객체를 이동시키는 변환 작업만 수행하고 회전이나 크기 조절 등의 변환 작업을 수행하지 않았을 때입니다. 이 경우, 변환 행렬은 아래와 같이 나타낼 수 있습니다.
|1 0 0 Tx|
|0 1 0 Ty|
|0 0 1 Tz|
|0 0 0 1 |
위 행렬에서 Tx, Ty, Tz는 객체를 이동시키는 변환 값으로, Translation 값과 같은 값을 갖습니다. 그러나 객체의 회전이나 크기 조절 등 다른 변환 작업을 수행했다면 T 구간에서의 변환 값은 Translation 값과 다를 수 있습니다.
[ Rotation 과 Object Space Basis]
- Object 와 Object Space 는 항상 딱 붙어있다.
- 회전은 물체의 방향을 바꾸는 것이다. -> 물체는 object space 와 꽉 붙어있다. -> 회전된 물체의 방향은 object space's basis 의 방향으로 특징 지을 수 있다.
ex_1) Rotation 예시
object space : { u, v, n }
world space : {e1,e2,e3}
회전 전 : Object Space 와 World Space 는 동일하다.
e1 = u = x축
e2 = v = y축
e3 = n = z축
회전 후 : Object Space 와 World Space 는 달라진다.
e1 = u n = x축
e2 = v = y축
e3 = n -u = z축
- Object Space Basis 인 (u, v, n) 이 알려졌다 > R은 즉각 계산이 가능하다.
- R 이 주어졌다. -> 회전(R)에 의해서 변환된 Object Space Basis 도 바로 알 수 있다. 컬럼 그냥 따오면 된다.
1:15:00 부터 다시듣기
[임의의 축에 대한 회전]
임의의축 에 대한 회전한 object 의 object space basis (u, v, n)을 알 수 있다면,
우리는 R(회전) 행렬 을 그냥 구할 수 있다.
'ComputerGraphics [고려대학교_한정현]' 카테고리의 다른 글
Android + OpenGLES로 사각형 그리기 (0) | 2023.04.02 |
---|---|
5강(1) - 랜더링 과정 중에서 View Transform ( World Space -> Camera Space 변환) (0) | 2023.03.26 |
4강(2) - Transform 3x3행렬의 L구간, T구간 (0) | 2023.03.25 |
4강(1)- 변환(transform) - scaling, rotation, translation (0) | 2023.03.25 |
1강 그래픽스란 ,2강 수학 (0) | 2023.03.25 |