D3D11_1_DDI_RASTERIZER_DESC 구조체(d3d10umddi.h)
래스터라이저 상태를 설명합니다. Windows WDDM(디스플레이 드라이버 모델) 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이면 드라이버가 샘플 수를 강제로 계산하지 않아야 합니다.
설명
그림자 버퍼 기반 그림자가 있는 아티팩트 중 하나는 "그림자 여드름"입니다(즉, 그림자 버퍼의 동일한 표면 깊이와 비교되는 셰이더에서 표면 깊이를 계산하는 부정확성으로 인해 간헐적으로 그림자를 드리우는 표면). 그림자 여드름을 완화하는 한 가지 방법은 섀도 버퍼를 렌더링할 때 DepthBias 및 SlopeScaledDepthBias 멤버를 사용하는 것입니다. 의도는 섀도 버퍼를 렌더링할 때 표면을 충분히 밖으로 푸시하는 것입니다. 그림자 테스트 중에 셰이더 계산 z를 통해 해당 표면을 자체적으로 비교하는 경우 비교 결과는 표면 전체에서 일관되며 로컬 자체 섀도는 방지됩니다.
그러나 DepthBias 및 SlopeScaledDepthBias 만 사용하면 몇 가지 아티팩트가 도입될 수 있습니다. 예를 들어 매우 가파른 다각형은 바이어스 방정식이 폭발하여 다각형을 그림자 맵의 원래 표면에서 매우 멀리 밀어 줍니다. 깊이 바이어싱에 의해 부모 개체의 차원과 관련하여 매우 멀리 밀어 내는 빛과 관련하여 가파른 얼굴을 고려하십시오. 이 얼굴이 바이어스 방정식이 훨씬 적게 밀어낸 얕은 얼굴로 둘러싸여 있다고 가정합니다. 결과 그림자 맵은 폭발한 얼굴보다 가까운 다른 표면에 한 표면에 의해 캐스팅되는 그림자의 구멍을 일으킬 수있는 거대한 불연속성을 가지고 있습니다. 이 특정 문제를 완화하는 데 도움이 되는 한 가지 방법은 z 바이어스의 크기에 애플리케이션 설정 가능 상한(양수 또는 음수)을 제공하는 DepthBiasClamp 멤버를 사용하는 것입니다.
요구 사항
| 지원되는 최소 클라이언트 | Windows 8 |
| 지원되는 최소 서버 | Windows Server 2012 |
| 헤더 | d3d10umddi.h(D3d10umddi.h 포함) |
피드백
다음에 대한 사용자 의견 제출 및 보기