D3D11_1_DDI_RASTERIZER_DESC 구조체(d3d10umddi.h)

래스터라이저 상태를 설명합니다. WDDM(Windows Display Driver Model) 1.2 이상 사용자 모드 디스플레이 드라이버에서 사용됩니다.

구문

typedef struct D3D11_1_DDI_RASTERIZER_DESC {
  [in] D3D10_DDI_FILL_MODE FillMode;
  [in] D3D10_DDI_CULL_MODE CullMode;
  [in] BOOL                FrontCounterClockwise;
  [in] INT                 DepthBias;
  [in] FLOAT               DepthBiasClamp;
  [in] FLOAT               SlopeScaledDepthBias;
  [in] BOOL                DepthClipEnable;
  [in] BOOL                ScissorEnable;
  [in] BOOL                MultisampleEnable;
  [in] BOOL                AntialiasedLineEnable;
  [in] UINT                ForcedSampleCount;
} D3D11_1_DDI_RASTERIZER_DESC;

멤버

[in] FillMode

기본 형식의 채우기 모드를 지정하는 값입니다. 이 멤버는 D3D10_DDI_FILL_MODE 열거형에서 다음 값 중 하나로 설정해야 합니다.

의미
D3D10_DDI_FILL_WIREFRAME (2) 와이어프레임을 채웁니다.
D3D10_DDI_FILL_SOLID (3) 고체를 채웁니다.

[in] CullMode

후면 삼각형이 컬링되는 방법을 지정하는 값입니다(있는 경우). 이 멤버는 D3D10_DDI_CULL_MODE 열거형에서 다음 값 중 하나로 설정해야 합니다.

의미
D3D10_DDI_CULL_NONE (1) 삼각형은 컬링하지 마세요.
D3D10_DDI_CULL_FRONT (2) 앞면을 컬링합니다.
D3D10_DDI_CULL_BACK (3) 뒤로 얼굴을 컬링합니다.

[in] FrontCounterClockwise

래스터라이저와 관련하여 시계 반대 방향으로 제공되는 꼭짓점이 전면에 있는지 여부를 지정하는 부울 값입니다. TRUE 는 임을 나타냅니다. FALSE 는 시계 반대 방향 꼭짓점이 뒤를 향하고 있음을 나타냅니다.

[in] DepthBias

바이어스 수식에 사용할 깊이 바이어스 상수입니다. DepthBias에 대한 자세한 내용은 설명 섹션을 참조하세요.

[in] DepthBiasClamp

편차 수식에 사용되는 단정밀도 부동 소수 자릿수 벡터입니다. DepthBiasClamp에 대한 자세한 내용은 설명 섹션을 참조하세요.

[in] SlopeScaledDepthBias

편차 수식에 사용되는 단정밀도 부동 소수 자릿수 벡터입니다. SlopeScaledDepthBias에 대한 자세한 내용은 설명 섹션을 참조하세요.

[in] DepthClipEnable

드라이버가 뷰포트 깊이 범위에 대해 꼭짓점 z 좌표를 클립해야 하는지 여부를 지정하는 부울 값입니다. TRUE 는 클립을 나타냅니다. FALSE 는 클립하지 않음을 나타냅니다.

[in] ScissorEnable

드라이버가 적절한 가위 사각형 영역 밖에 있는 픽셀을 삭제해야 하는지 여부를 지정하는 부울 값입니다. TRUE 는 삭제를 나타냅니다. FALSE 는 삭제하지 않음을 나타냅니다.

[in] MultisampleEnable

드라이버가 여러 샘플링된 래스터화 규칙을 따라야 하는지 여부를 지정하는 부울 값입니다. TRUE 는 규칙을 따르도록 나타냅니다. FALSE 는 다음 규칙이 필요하지 않음을 나타냅니다. 렌더링 대상에 단일 샘플만 포함되더라도 다중 샘플링 래스터화 규칙은 true로 유지됩니다.

[in] AntialiasedLineEnable

드라이버가 앤티앨리어스된 선 래스터화 규칙을 따르는 선을 렌더링해야 하는지 여부를 지정하는 부울 값입니다. TRUE 는 규칙을 따르도록 나타냅니다. FALSE 는 다음 규칙이 필요하지 않음을 나타냅니다. 다중 샘플링 래스터화 규칙을 대신 사용하는 경우 드라이버는 AntialiasedLineEnable 의 값을 무시합니다.

[in] ForcedSampleCount

UAV(순서가 지정되지 않은 액세스 뷰) 또는 RTV(렌더링 대상 뷰)를 렌더링하는 동안 샘플 수를 강제 적용할지 여부와 최대 샘플 수를 지정합니다. 유효한 값은 0, 1, 4, 8 및 16입니다.

0이면 드라이버가 샘플 수를 강제로 적용해서는 안 됩니다.

설명

섀도 버퍼 기반 그림자가 있는 아티팩트 중 하나는 "그림자 여드름"입니다(즉, 그림자 버퍼의 동일한 표면 깊이와 비교되는 셰이더에서 표면의 깊이를 계산하는 비실용성으로 인해 간헐적으로 그림자를 드리는 표면). 그림자 여드름을 완화하는 한 가지 방법은 섀도 버퍼를 렌더링할 때 DepthBiasSlopeScaledDepthBias 멤버를 사용하는 것입니다. 의도는 그림자 버퍼를 렌더링할 때 표면을 충분히 밖으로 푸시하는 것입니다. 섀도 테스트 중에 셰이더 계산 z를 통해 해당 표면을 자체와 비교하면 비교 결과가 표면 전체에서 일관되며 로컬 자체 그림자를 방지할 수 있습니다.

그러나 DepthBiasSlopeScaledDepthBias 만 사용하면 몇 가지 아티팩트가 도입됩니다. 예를 들어 매우 가파른 다각형은 바이어스 수식이 폭발하여 다각형을 그림자 맵의 원래 표면에서 매우 멀리 밀어 줍니다. 깊이 바이어스에 의해 부모 개체의 차원과 관련하여 매우 멀리 밀어 내는 빛과 관련하여 가파른 얼굴을 고려하십시오. 이 얼굴이 바이어스 방정식이 훨씬 적게 밀어낸 얕은 얼굴로 둘러싸여 있다고 가정해 보겠습니다. 결과 그림자 맵은 폭발한 얼굴보다 가까운 다른 표면에 한 표면에 의해 캐스팅되는 그림자에 구멍을 일으킬 수있는 거대한 불연속성을 가지고 있습니다. 이 특정 문제를 완화하는 한 가지 방법은 Z 바이어싱의 크기에 애플리케이션 설정 가능 상한(긍정 또는 부정)을 제공하는 DepthBiasClamp 멤버를 사용하는 것입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
머리글 d3d10umddi.h(D3d10umddi.h 포함)