이번 포스팅에선 월드 변환의
3가지 행렬에 관하여 포스팅 하겠습니다.
Wolrd Transformation에서는
3가지 변환을 할 수 있습니다.
1. Translation(이동)
2. Rotation(회전)
3. Scaling(규모조정)
DirectX에선 다음과 같이 사용되고 있습니다.
// 행렬 선언
D3DXMATRIX Rx, Ry, TrnsX, Scl, Run;
Device->SetTransform(D3DTS_WORLD, &Run);
D3DXMATRIX Rx, Ry, TrnsX, Scl, Run;
// 이동
D3DxmatrixTranslation(&TrnsX, 5.0f, 0.0f, 0.0f);
// 회전
D3DXMatrixRotationX(&Rx, D3DX_PI * 0.2f);
D3DXMatrixRotationY(&Ry, y);
// 규모조정
D3DXMatrixScaling(&Scl, 5.0f, 5.0f, 5.0f);
// 행렬 종합
Run = Rx * Ry * TrnsX * Scl;
Device->SetTransform(D3DTS_WORLD, &Run);
위의 요점은
각각 계산해줄 행렬 선언후
이동, 회전, 스케일링후
하나의 행렬로 곱한다음
이를 원드 좌표에 적용한것이
메커니즘입니다.
참고로 이 소스는 저번의
IndexBuffer를 이용한 Color Cube만들기에서
조금 수정한것입니다.
IndexBuffer를 이용한 Color Cube만들기에서
조금 수정한것입니다.
수정된 소스는 x위치와 스케일, 카메라가 조정되었습니다.
'개발실 ◐ ━━ > DirectX' 카테고리의 다른 글
Texture와 Filtering설정 (0) | 2012.03.26 |
---|---|
Rendering Pipeline 과정 (0) | 2012.01.30 |
IndexBuffer를 이용한 Color Cube만들기 (0) | 2012.01.26 |
다이렉트 초기화 (2) | 2012.01.14 |