🎨DirectX
[DX] 공간변환, D3DXVec3TransformCoord/D3DXMatrix3TransformNormal
공대 컴린이
2023. 2. 4. 22:10
728x90
🎪 공간변환
공간변환에 사용되는 mul 함수는 mul(input.position, world) 라고 작성되었을 때 position의 값을 world로 변환하겠다라는 의미로 사용된다.
기존의 position이 (0, 0, 0)이었다면 world공간의 x축으로 10만큼 이동한 결과는 position(10, 0, 0)이 될 것이다.
이런식으로 position의 값을 world의 공간으로 변환해 주는것이 mul이다.
이러한 mul 함수는 쉐이더의 명령이고 DirectX에도 같은 기능을 수행하는 명령이 있다.
⭐ D3DXVec3TransformCoord(Vector, Matrix) / D3DXMatrix3TransformNormal(Vector, Matrix)
두 함수의 차이는 D3DXVec3TransformCoord 함수는 벡터의 값이 위치면 Coord를 사용하고,
D3DXMatrix3TransformNormal 함수는 벡터의 값이 방향이면 Normal을 사용한다는 점이다.
그러나 두 함수 모두 방향벡터든 위치벡터든 해당 공간으로 변환해주는 함수이다.
회전공간 세개 X,Y,Z를 곱해서 회전공간을 만들었으니, 카메라가 회전하여 직선방향에서 대각선 방향을 바라보도록 변화했다면 카메라가 봐야하는 Matrix공간도 대각선 방향으로 회전해야 하므로 이때 위 함수들을 사용하면 된다.
728x90