Version: 2021.3
언어: 한국어
ShaderLab 커맨드: ColorMask
ShaderLab 커맨드: Cull

ShaderLab 커맨드: Conservative

보수적 래스터화를 활성화하거나 비활성화합니다.

래스터화는 삼각형으로 덮이는 픽셀을 파악하여 벡터 데이터(삼각형 투사)를 픽셀 데이터(렌더 타겟)로 전환하는 렌더링 기법입니다. 보통 GPU가 픽셀 내 지점을 샘플링하여 삼각형으로 덮이는지 여부를 파악해서 픽셀의 래스터화 여부를 결정합니다. 커버리지가 충분하면 GPU가 픽셀이 덮임을 파악합니다. 보수적 래스터화는 GPU가 커버리지와 관계없이 삼각형에 의해 부분적으로 덮이는 픽셀을 래스터화한다는 의미입니다. 이는 확실성이 필요할 때(예: 오클루전 컬링 수행 시, GPU에서의 충돌 검사 시 또는 가시성 검사 시) 유용합니다.

보수적 래스터화는 GPU가 삼각형 모서리에서 더 많은 프래그먼트를 생성함을 의미합니다. 이로 인해 프래그먼트 셰이더가 더 많이 호출되어 GPU 프레임 시간이 늘어날 수 있습니다.

렌더 파이프라인 호환성

기능 이름 빌트인 렌더 파이프라인 유니버설 렌더 파이프라인(URP) 고해상도 렌더 파이프라인(HDRP) 커스텀 SRP
Conservative 지원 지원 지원 지원

사용법

이 커맨드는 렌더 상태를 변경합니다. Pass 블록에서 사용하여 해당 패스의 렌더 상태를 설정하거나, SubShader 블록에서 사용하여 해당 서브셰이더에 있는 모든 패스의 렌더 상태를 설정할 수 있습니다.

SystemInfo.supportsConservativeRaster API를 사용하여 하드웨어 지원 여부를 확인하십시오. 이 커맨드를 지원하지 않는 하드웨어에서는 무시됩니다.

서명 예제 구문 기능
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.
        }
    }
}
ShaderLab 커맨드: ColorMask
ShaderLab 커맨드: Cull