KoreanFoodie's Study
DirectX 11 2D 게임 프로그래밍 - 13. Rasterizer state과 좌표계 본문
DirectX 11 2D 게임 프로그래밍 - 13. Rasterizer state과 좌표계
Rasterizer State 설정하기
- FillMode는 정점들로 인해 만들어진 영역을 어떻게 채울 것인가에 대한 정보이다
- CullMode는 어떤 면을 보이지 않게 할 것인가에 대한 정보이다
- FrontCounterClockWise는 정점이 그려지는 순서에 따라 앞면과 뒷면을 정해주는 값이다.
Execute.cpp
먼저 Execute.h에서 rasterizer_state를 선언해 준 후, Execute.cpp에서 D3DX... 에 해당하는 값들을 세팅해준다.
ID3D11RasterizerState* rasterizer_state = nullptr;
// Create Rasterizer State
{
D3D11_RASTERIZER_DESC desc;
ZeroMemory(&desc, sizeof(D3D11_RASTERIZER_DESC));
desc.FillMode = D3D11_FILL_SOLID; // FillMode 어떻게 채울지를 결정
desc.CullMode = D3D11_CULL_BACK; // 어떤 면을 보이지 않게 할 것인지를 결정
desc.FrontCounterClockwise = false; // 정점이 그려지는 순서대로 앞면과 뒷면을 정해주는 값 (DirectX는 통상적으로 시계방향을 앞면으로 사용)
// Clipping : 그린 후에 데이터를 잘라내는 것
// Culling : 그리기 전에 데이터를 잘라내는 것
auto hr = graphics->GetDevice()->CreateRasterizerState(&desc, &rasterizer_state);
assert(SUCCEEDED(hr));
}
D3DXMatrixOrtho... 를 사용하여 좌표계 시작 지점을 변경할 수 있다. 이때, 좌표계에 맞게 CullMode나 FrontCounterClockwise값을 적절히 변경해 주어야 한다.
D3DXMatrixOrthoOffCenterLH(&view, 0, Settings::Get().GetWidth(), Settings::Get().GetHeight(), 0, 0, 1);
더 자세한 내용이 궁금하시다면 직접 들어보시는 걸 추천드립니다!
'Game Dev > DirectX' 카테고리의 다른 글
DirectX 11 2D 게임 프로그래밍 - 15. UV 좌표 조작과 Sampler State설정 (0) | 2021.11.04 |
---|---|
DirectX 11 2D 게임 프로그래밍 - 14. Texture 설정과 이미지 띄우기 (0) | 2021.11.03 |
DirectX 11 2D 게임 프로그래밍 - 12. 행렬 결합 : 이동과 회전 (0) | 2021.10.31 |
DirectX 11 2D 게임 프로그래밍 - 11. Constant Buffer 개념과 응용 (0) | 2021.10.31 |
DirectX 11 2D 게임 프로그래밍 - 10. 행렬을 이용한 공간 생성(view, projection) (0) | 2021.10.28 |
Comments