Graphics/DX11 물방울책 연습문제 풀이

DirectX 11을 이용한 3D게임 프로그래밍 입문 연습문제 6 - 8

득과광 2021. 3. 21. 22:55

문제

상자를 와이어프레임 모드로 렌더링하라.

 

해결

따로 메서드를 만들어 그안에서 레스터라이저 스탯을 멤버변수에 할당할 것이다.

 

슬슬 패턴이 비슷해진다. 뭔가를 할당할때마다 구조체를 정의하고.. Create어쩌구를 호출하고.. 눈에보인다.

D3D11_RASTERIZER_DESC는 변수가 많지만 이번 문제해결에 쓰이는 변수는 하나밖에없다.

 

 

 

 

 

 

FillMode는 렌더링 방식에 대한 정보를 담고있다. D3D11_FILL_WIREFRAME이 와이어프레임모드. 기본값은 D3D11_FILL_SOLID이다.

CullMode는 이번문제랑 관련은없지만 재미를위해서 한번 건드려봤다. D3D11_CULL_NONE은 후면 삼각형을 선별하지 않으며 D3D11_CULL_BACK은 선별을 하여 렌더링에서 제외시킨다.

 

 

 

 

 

 

그리고자 하는 도형을 그리기전에 RSSetState함수를 호출하여 좀전에 할당한 변수를 넣어주면된다. 만약 기본모드로 돌아가고싶다면 0을 넣으면된다.

 

 

 

 

 

 

왼쪽은 CULL_NONE, 오른쪽이 CULL_BACK 모드이다.

비록 후면삼각형은 선별하여 제외시켰지만 와이어프레임모드여서 뒤에있는 도형은 우리에게 보여진다.