보수적 래스터화를 활성화하거나 비활성화합니다.
래스터화는 삼각형으로 덮이는 픽셀을 파악하여 벡터 데이터(삼각형 투사)를 픽셀 데이터(렌더 타겟)로 전환하는 렌더링 기법입니다. 보통 GPU가 픽셀 내 지점을 샘플링하여 삼각형으로 덮이는지 여부를 파악해서 픽셀의 래스터화 여부를 결정합니다. 커버리지가 충분하면 GPU가 픽셀이 덮임을 파악합니다. 보수적 래스터화는 GPU가 커버리지와 관계없이 삼각형에 의해 부분적으로 덮이는 픽셀을 래스터화한다는 의미입니다. 이는 확실성이 필요할 때(예: 오클루전 컬링 수행 시, GPU에서의 충돌 검사 시 또는 가시성 검사 시) 유용합니다.
보수적 래스터화는 GPU가 삼각형 모서리에서 더 많은 프래그먼트를 생성함을 의미합니다. 이로 인해 프래그먼트 셰이더가 더 많이 호출되어 GPU 프레임 시간이 늘어날 수 있습니다.
기능 이름 | 빌트인 렌더 파이프라인 | 유니버설 렌더 파이프라인(URP) | 고해상도 렌더 파이프라인(HDRP) | 커스텀 SRP |
---|---|---|---|---|
Conservative | 지원 | 지원 | 지원 | 지원 |
이 커맨드는 렌더 상태를 변경합니다. Pass
블록에서 사용하여 해당 패스의 렌더 상태를 설정하거나, SubShader
블록에서 사용하여 해당 서브셰이더에 있는 모든 패스의 렌더 상태를 설정할 수 있습니다.
Check for hardware support using the SystemInfo.supportsConservativeRaster API. On hardware that does not support this command, it is ignored.
서명 | 예제 구문 | 기능 |
---|---|---|
Conservative <enabled> |
Conservative True |
보수적 래스터화를 활성화하거나 비활성화합니다. DX 11.3+ 또는 GL_NV_conservative_raster가 필요합니다. |
파라미터 | 값 | 기능 |
---|---|---|
enabled | True |
보수적 래스터화를 활성화합니다. |
False |
보수적 래스터화를 비활성화합니다. |
Shader "Examples/CommandExample"
{
SubShader
{
// The rest of the code that defines the SubShader goes here.
Pass
{
// Enable conservative rasterization for this Pass.
Conservative True
// The rest of the code that defines the Pass goes here.
}
}
}
이 예제 코드는 SubShader 블록에서 이 커맨드를 사용하기 위한 구문을 나타냅니다.
Shader "Examples/CommandExample"
{
SubShader
{
// Enable conservative rasterization for this SubShader.
Conservative True
// The rest of the code that defines the SubShader goes here.
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}