Version: 2023.2
언어: 한국어
ShaderLab 커맨드: BlendOp
ShaderLab 커맨드: Conservative

ShaderLab 커맨드: ColorMask

컬러 채널 작성 마스크를 설정하여 GPU가 렌더 타겟의 채널에 작성하지 못하게 합니다.

기본적으로 GPU는 모든 채널(RGBA)에 작성합니다. 일부 효과의 경우 일부 채널을 수정하지 않은 상태로 두는 것이 좋습니다. 예를 들어, 컬러 렌더링을 비활성화하여 채색되지 않은 섀도우를 렌더링할 수 있습니다. 이러한 커맨드가 자주 사용되는 또 다른 사용 사례는 다른 버퍼에 작성하지 않고도 하나의 버퍼를 채울 수 있도록 컬러 작성을 완전히 비활성화하는 것입니다(예: 렌더 타겟에 작성하지 않고도 스텐실 버퍼 채우기).

렌더 파이프라인 호환성

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

사용법

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

서명 예제 구문 기능
ColorMask <channels> ColorMask RGB 기본 렌더 타겟의 특정 채널로 작성합니다.
ColorMask <channels> <render target> ColorMask RGB 2 특정 렌더 타겟에 한하여 위와 동일합니다.

유효한 파라미터 값

파라미터 기능
render target 07의 정수. 렌더 타겟 인덱스입니다.
channels 0 R, G, B, A 채널로의 컬러 작성을 비활성화합니다.
R 빨간색 채널로의 컬러 작성을 활성화합니다.
G 초록색 채널로의 컬러 작성을 활성화합니다.
B 파란색 채널로의 컬러 작성을 활성화합니다.
A 알파 채널로의 컬러 작성을 활성화합니다.
공백 없는 R, G, B, A의 모든 조합. 예: RB 특정 채널로의 컬러 작성을 활성화합니다.

예제

Shader "Examples/CommandExample"
{
    SubShader
    {
         // The rest of the code that defines the SubShader goes here.

        Pass
        {    
              // Enable writing only to the RGB channels for this Pass, which disables writing to the alpha channel
              ColorMask RGB

              // The rest of the code that defines the Pass goes here.
        }
    }
}

이 예제 코드는 SubShader 블록에서 이 커맨드를 사용하기 위한 구문을 나타냅니다.

Shader "Examples/CommandExample"
{
    SubShader
    {
         // Enable writing only to the RGB channels for this SubShader, which disables writing to the alpha channel
         ColorMask RGB

         // The rest of the code that defines the SubShader goes here.        

        Pass
        {    
              // The rest of the code that defines the Pass goes here.
        }
    }
}
ShaderLab 커맨드: BlendOp
ShaderLab 커맨드: Conservative