728x90
게임에서 회전 크기 위치 관련을 사용을 할 때 행열을 사용하는데 기본적인 행렬 상태는 이렇게 되어 있다.
중요한 건 이 행렬의 위치마다 각각의 값이 적용되는데 살펴보면
크기
더보기



크기의 행열을 보면 대각선으로 알 수가 있는데 여기서 크기에서 제일 중요한 점은 절대로 0이 들어가면 안되는데 그 이유는 크기가 0이면 그림이 안보이기 때문이다.
그렇기 때문에 맨처음 D3DXMATRIX 변수를 D3DXMatrixIdentity 해당 함수로 초기화 시키는 이유가 크기 부분에 1로 초기화 기본 상태로 만들어 놓고 world 값을 조합한다
아래 그림으로 예시를 보면 (2D 이기 떄문에 Z값은 1로 고정한다)

보시다 싶이 X, Y만 변경이 된다
위치
더보기



위치는 아래 41, 42, 43 으로 X, Y, Z 값으로 해당값이 변경할때 변동 된다
아래 그림은 위치 값을 변경 했을때의 화면 모습

2D기준 Z값은 깊이 관련 이므로 의미 없기 때문에 0으로 셋팅함
회전
더보기




위치와 크기를 보면 해당영역만 변경 하는데 회전은 정말 골치 아프다 그 이유는 한축을 회전을 하면
다른 축의 값들이 변동되기 때문이다 우선 그림으로 보면

예를들어 x 값을 회전을 하면 x 영역을 제외한 부분이 변동이 된다. 아래 그림으로 X, Y, Z 기준으로 변경할때
어떻게 변경 하는지에 대한 예시를 보면
X

Y

Z

보시다 싶이 자기 영역을 제외한 크기도 포함해서 값을 바꾸기 때문에 회전을 처리 할땐 조심해서 해야한다
모든게 변동되기 때문이다..
'DirectX > 보충' 카테고리의 다른 글
DirectX 11 렌더링 파이프 라인 (0) | 2021.06.28 |
---|---|
Matrix 함수 (0) | 2020.12.27 |
Vertex 좌표, Texture좌표(UV 좌표) (0) | 2020.12.20 |