기초 수학
1.선형 변환
변환 t가
t(u+v) = t(u) + t(v)
t(ku) = kt(u)
이 두 성질을 만족할 때 t를 선형변환이라 부른다.
이러한 선형변환은 행렬의 곱셉으로 표현할 수 있다.
2.아핀 변환 ★
선형 변환 t에 이동 벡터 b를 추가로 더한 변환을 아핀변환이라고 한다.
(아핀 변환을 a라 할 때)
a(u) = t(u) + b
3차원에 대한 아핀변환은 4차원 행렬과 4차원 벡터의 곱셉으로 표현 할 수 있다.
a =
t t t 0
t t t 0
t t t 0
bbb1
이때 곱하는 벡터의 w요소가 1이면 점, 0이면 벡터를 나타낸다.
점일때는 선형변환 후 b가 더해져 이동까지 이루어 지지만 벡터일때는 선형변환만 발생하고 b는 더해지지 않는다.
점은 이동할 수 있지만 벡터는 이동하지 않는 다는 점이 적용되었다.
[x,y,z,1] x a (점에 대한 아핀변환)
[x,y,z,0] x a (벡터에 대한 아핀변환)
3.기본 변환 ★
비례
Sx 0 0 0
0 Sy 0 0
0 0 Sz 0
0 0 0 1
회전
73p참고
이동
1 0 0 0
0 1 0 0
0 0 1 0
x y z 1
4.좌표 변경 행렬 ★
좌표계 A에서 B로의 좌표 표현 변경 행렬은 다음과 같다.
ux uy uz 0
vx vy vz 0
wx wy wz 0
Qx Qy Qz 1
u,v,w는 A의 기저벡터들을 B좌표계로 표현한 벡터들이며 Q는 B좌표계로 표현한 A좌표의 원점이다.
해당 행렬에 벡터를 곱하면 원점계산은 처리 되지않고 좌표계들의 회전과 스케일만 계산되어 변환된다.
점을 곱하면 좌표계들의 원점 위치 차이까지 계산된다.
5. 변환행렬 vs 좌표 변경 행렬
변환행렬은 좌표변경행렬로도 해서 가능하고 반대로 좌표변경행렬도 변환행렬로 해석가능하다.
상황에 맞춰 각 행렬들과 벡터 속 값들의 의미를 정확히 정의하여 사용하자.
관련 라이브러리
1.DirectXMath 변환 함수들
DirectXMath라이브러리는 여러 기본 변환 행렬들을 XMMATRIX로 리턴해주는 함수들을 제공한다
90p참고
참고서적
DirectX 12를 이용한 3D 게임 프로그래밍 입문
'그래픽스 > DirectX12' 카테고리의 다른 글
[Directx12][5장]렌더링 파이프라인 (0) | 2023.03.21 |
---|---|
[Directx12][4장][2]Direct3D 기본 구조 (0) | 2023.03.21 |
[Directx12][4장][1]Direct3D 초기화 - 기본 지식 (0) | 2023.03.21 |
[Directx12][2장]기초 수학 - 행렬 및 관련 라이브러리 (0) | 2023.03.21 |
[Directx12][1장]기초 수학 - 벡터 및 관련 라이브러리 (0) | 2023.03.21 |