Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

codingfarm

6. Direct3D의 그리기 연산 - 래스터화기 상태 본문

computer graphics/DX12 book

6. Direct3D의 그리기 연산 - 래스터화기 상태

scarecrow1992 2021. 6. 19. 15:51

래스터화 단계

  • 프로그래밍 불가, 구성만 가능
    • rendering pipeline의 많은 부분이 프로그래밍이 가능하지만, 일부는 구성(설정)만 가능하며, 래스터화 단계그 가 중 하나다.
  • 래스터화기 상태(rasterizer state)를 통해서 구성
  • D3D12_RASTERIZER_DESC 구조체로 상태를 대표
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef struct D3D12_RASTERIZER_DESC {
  D3D12_FILL_MODE                       FillMode;
  D3D12_CULL_MODE                       CullMode;
  BOOL                                  FrontCounterClockwise;
  INT                                   DepthBias;
  FLOAT                                 DepthBiasClamp;
  FLOAT                                 SlopeScaledDepthBias;
  BOOL                                  DepthClipEnable;
  BOOL                                  MultisampleEnable;
  BOOL                                  AntialiasedLineEnable;
  UINT                                  ForcedSampleCount;
  D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D12_RASTERIZER_DESC;
cs

rasterizer state를 서술한다.

 

매개변수

1,2,3,8 번째 이외의 멤버들은 고급기법을 위한것이므로 여기서는 설명을 생략한다.

 

1.D3D12_FILL_MODE                       FillMode;

  • rendering시 사용할 fill mode를 지정한다.
  • D3D12_FILL_WIREFRAME : wireframe 렌더링
  • D3D12_FILL_SOLID : 면의 속을 채운(solid) rendering (default value)

 

2.D3D12_CULL_MODE                       CullMode;

  • 지정된 방향을 향하는 삼각형이 그려지지 않도록 지정한다.
  • D3D12_CULL_NONE : 선별을 끈다
  • D3D12_CULL_BACK : 후면 삼각형들을 선별(제외) 한다. (default value)
  • D3D12_CULL_FRONT : 전면 삼각형들을 선별

 

3.BOOL                                  FrontCounterClock

  • 삼각형이 전면 또는 후면인지를 결정한다.
  • false
    • 전면삼각형 : 시계방향으로 감긴 삼각형(카메라 기준)
    • 후면삼각형 : 반시계방향으로 감긴 삼각형
    • default value
  • true : false와 반대

 

8.BOOL                                  MultisampleEnable;

  • 가위판정 활성화 여부를 결정한다.
    • true : 가위 판정을 활성화
    • false : 비활성화 (default value)

 

다음 코드는 와이어 프레임 모드를 켜고 후면 선별을 끄는 래스터화기 상태를 생성하는 방법을 보여준다.

1
2
3
CD3DX12_RASTERIZER_DESC rsDesc(D3D12_DEFAULT);
reDesc.FillMode = D3D12_FILL_WIREFRAME;
rsDesc.CullMode = D3D12_CULL_NOME;
cs

 

 

Comments