D3D12_RASTERIZER_DESC 구조체(d3d12.h)
래스터라이저 상태를 설명합니다.
구문
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;
멤버
FillMode
렌더링할 때 사용할 채우기 모드를 지정하는 D3D12_FILL_MODE 형식의 값입니다.
CullMode
지정된 방향을 향한 삼각형이 그려지지 않도록 지정하는 D3D12_CULL_MODE 형식의 값입니다.
FrontCounterClockwise
삼각형이 전면 또는 후면인지 확인합니다. 이 멤버가 TRUE이면 꼭짓점이 렌더링 대상에서 시계 반대 방향으로 표시되고 시계 방향인 경우 역방향으로 간주되는 경우 삼각형이 전면으로 간주됩니다. 이 매개 변수가 FALSE이면 그 반대의 경우는 true입니다.
DepthBias
지정된 픽셀에 추가된 깊이 값입니다. 깊이 바이어스에 대한 자세한 내용은 깊이 바이어스 를 참조하세요.
DepthBiasClamp
픽셀의 최대 깊이 바이어스입니다. 깊이 바이어스에 대한 자세한 내용은 깊이 바이어스 를 참조하세요.
SlopeScaledDepthBias
지정된 픽셀의 기울기에서 스칼라입니다. 깊이 바이어스에 대한 자세한 내용은 깊이 바이어스 를 참조하세요.
DepthClipEnable
거리에 따라 클리핑을 사용할지 여부를 지정합니다.
하드웨어는 항상 래스터화된 좌표의 x 및 y 클리핑을 수행합니다. DepthClipEnable이 기본값-TRUE로 설정된 경우 하드웨어는 z 값도 클리핑합니다(즉, 하드웨어는 다음 알고리즘의 마지막 단계를 수행).
0 < w
-w <= x <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
-w <= y <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
0 <= z <= w
DepthClipEnable을 FALSE로 설정하면 하드웨어는 z 클리핑(즉, 이전 알고리즘의 마지막 단계)을 건너뜁니다. 그러나 하드웨어는 여전히 "0w < " 클리핑을 수행합니다. z 클리핑을 사용하지 않도록 설정하면 픽셀 수준에서 부적절한 깊이 순서가 발생할 수 있습니다. 그러나 z 클리핑을 사용하지 않도록 설정하면 스텐실 섀도 구현이 간소화됩니다. 즉, 후면 클리핑 평면을 벗어나는 기하 도형에 대한 복잡한 특수 사례 처리를 방지할 수 있습니다.
MultisampleEnable
MSAA(다중 샘플 앤티앨리어싱) 렌더링 대상에서 사분면 또는 알파선 앤티앨리어싱 알고리즘을 사용할지 여부를 지정합니다. 사분면 선 앤티앨리어싱 알고리즘을 사용하려면 TRUE 로, 알파선 앤티앨리어싱 알고리즘을 사용하려면 FALSE 로 설정합니다. 이 멤버에 대한 자세한 내용은 비고를 참조하세요.
AntialiasedLineEnable
선 앤티앨리어싱을 사용할지 여부를 지정합니다. 선 그리기를 수행하고 MultisampleEnable 이 FALSE인 경우에만 적용됩니다. 이 멤버에 대한 자세한 내용은 비고를 참조하세요.
ForcedSampleCount
형식: UINT
UAV 렌더링 또는 래스터화 중 강제 적용되는 샘플 수입니다. 유효한 값은 0, 1, 4, 8 및 선택적으로 16입니다. 0은 샘플 수가 강제되지 않음을 나타냅니다.
- 깊이 스텐실 뷰를 바인딩하지 마세요.
- 깊이 테스트를 사용하지 않도록 설정합니다.
- 셰이더가 깊이를 출력하지 않는지 확인합니다.
- 렌더링 대상 뷰가 바인딩(D3D12_DESCRIPTOR_HEAP_TYPE_RTV)이고 ForcedSampleCount 가 1보다 큰 경우 모든 렌더링 대상에 단일 샘플만 있는지 확인합니다.
- 샘플 빈도로 셰이더를 작동하지 마세요. 따라서 ID3D12ShaderReflection::IsSampleFrequencyShader 는 FALSE를 반환합니다.
ConservativeRaster
보수적인 래스터화가 설정 또는 해제되어 있는지 여부를 식별하는 D3D12_CONSERVATIVE_RASTERIZATION_MODE 형식의 값입니다.
설명
D3D12_GRAPHICS_PIPELINE_STATE_DESC 래스터라이저 상태 구조를 포함합니다.
래스터라이저 상태는 래스터라이저 단계의 동작을 정의합니다.
일부 래스터라이저 상태를 지정하지 않으면 Direct3D 런타임은 래스터라이저 상태에 다음 기본값을 사용합니다.
시스템 상태 | 기본값 |
---|---|
FillMode | D3D12_FILL_MODE_SOLID |
CullMode | D3D12_CULL_MODE_BACK |
FrontCounterClockwise | FALSE |
DepthBias | 0 |
DepthBiasClamp | 0.0f |
SlopeScaledDepthBias | 0.0f |
DepthClipEnable | TRUE |
MultisampleEnable | FALSE |
AntialiasedLineEnable | FALSE |
ForcedSampleCount | 0 |
ConservativeRaster | D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF |
라인 렌더링 알고리즘 | MultisampleEnable | AntialiasedLineEnable |
---|---|---|
별칭 | FALSE | FALSE |
알파 앤티앨리어스 | FALSE | TRUE |
사변형 | TRUE | FALSE |
사변형 | TRUE | TRUE |
MultisampleEnable 및 AntialiasedLineEnable 멤버의 설정은 MSAA(다중 샘플 앤티앨리어싱) 렌더링 대상(즉, 샘플 수가 1보다 큰 렌더링 대상)에만 적용됩니다. 기능 수준 동작의 차이와 선 그리기를 수행하지 않거나 선이 사분면으로 렌더링되는 것을 신경 쓰지 않는 한 MSAA 렌더링 대상에서 렌더링할 때마다 항상 MultisampleEnable을 TRUE로 설정하는 것이 좋습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | d3d12.h |