Version: Unity 6.0 (6000.0)
언어 : 한국어
ShaderLab 레퍼런스의 Offset 커맨드
ShaderLab의 ZClip 커맨드 레퍼런스

ShaderLab의 스텐실 커맨드 레퍼런스

GPU의 스텐실 버퍼와 관련된 설정을 구성합니다.

렌더 파이프라인 호환성

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

구문

서명 예제 구문 기능
Stencil
{
    Ref <ref>
    ReadMask <readMask>
    WriteMask <writeMask>
    Comp <comparisonOperation>
    Pass <passOperation>
    Fail <failOperation>
    ZFail <zFailOperation>
    CompBack <comparisonOperationBack>
    PassBack <passOperationBack>
    FailBack <failOperationBack>
    ZFailBack <zFailOperationBack>
    CompFront <comparisonOperationFront>
    PassFront <passOperationFront>
    FailFront <failOperationFront>
    ZFailFront <zFailOperationFront>
}

모든 파라미터는 선택 사항입니다.
Stencil
{
    Ref 2
    Comp equal
    Pass keep
    ZFail decrWrap
}
특정 파라미터에 따라 스텐실 버퍼를 설정합니다.

파라미터

파라미터 기능
ref 정수이며, 0–255입니다. 기본값은 0입니다. 레퍼런스 값입니다.

GPU는 comparisonOperation에 정의된 연산을 사용하여 스텐실 버퍼의 현재 콘텐츠를 이 값과 비교합니다.

이 값은 읽기 작업인지 쓰기 작업인지에 따라 readMask 또는 writeMask로 마스킹됩니다.

Pass, Fail, ZFail의 값이 Replace인 경우 GPU는 스텐실 버퍼에 이 값을 작성할 수도 있습니다.
readMask 정수이며, 0–255입니다. 기본값은 255입니다. GPU는 스텐실 테스트를 수행할 때 이 값을 마스크로 사용합니다.

스텐실 테스트 등식은 위를 참조하십시오.
writeMask 정수이며, 0–255입니다. 기본값은 255입니다. GPU는 스텐실 버퍼에 작성할 때 이 값을 마스크로 사용합니다.

다른 마스크와 마찬가지로 작업에 포함할 비트를 지정합니다. 예를 들어 값이 0이면 쓰기 작업에 비트가 포함되지 않는다는 의미이지 스텐실 버퍼가 0 값을 수신한다는 의미는 아닙니다.
comparisonOperation 비교 작업입니다. 유효값은 비교 작업 값을 참조하십시오. 기본값은 Always입니다. GPU가 모든 픽셀에 대한 스텐실 테스트를 위해 수행하는 작업입니다.

이는 방향에 관계없이 모든 픽셀에 대한 작업을 정의합니다. 이 값이 comparisonOperationBack과 comparisonOperationFront에 추가로 정의된 경우 이 값은 해당 값을 오버라이드합니다.
passOperation 스텐실 작업입니다. 유효값은 스텐실 작업 값을 참조하십시오. 기본값은 Keep입니다. 픽셀이 스텐실 테스트와 뎁스 테스트를 모두 통과할 때 스텐실 버퍼에서 GPU가 수행하는 작업입니다.

이는 방향에 관계없이 모든 픽셀에 대한 작업을 정의합니다. 이 값이 passOperationBack과 passOperationFront에 추가로 정의된 경우 이 값은 해당 값을 오버라이드합니다.
failOperation 스텐실 작업입니다. 유효값은 스텐실 작업 값을 참조하십시오. 기본값은 Keep입니다. 픽셀이 스텐실 테스트에 불합격할 때 스텐실 버퍼에서 GPU가 수행하는 작업입니다.

이는 방향에 관계없이 모든 픽셀에 대한 작업을 정의합니다. 이 값이 failOperationBack과 failOperationFront에 추가로 정의된 경우 이 값은 해당 값을 오버라이드합니다.
zFailOperation 스텐실 작업입니다. 유효값은 스텐실 작업 값을 참조하십시오. 기본값은 Keep입니다. 픽셀이 스텐실 테스트는 통과하지만 뎁스 테스트는 불합격할 때 스텐실 버퍼에서 GPU가 수행하는 작업입니다.

이는 방향에 관계없이 모든 픽셀에 대한 작업을 정의합니다. 이 값이 zFailOperationBack과 zFailOperationFront 외에 정의된 경우 이 값은 해당 값을 오버라이드합니다.
comparisonOperationBack 비교 작업입니다. 유효값은 비교 작업 값을 참조하십시오. 기본값은 Always입니다. GPU가 스텐실 테스트를 위해 수행하는 작업입니다.

후면 픽셀에 대한 작업만 정의합니다. comparisonOperation이 정의된 경우 해당 값이 이 값을 오버라이드합니다.
passOperationBack 스텐실 작업입니다. 유효값은 스텐실 작업 값을 참조하십시오. 기본값은 Keep입니다. 픽셀이 스텐실 테스트와 뎁스 테스트를 모두 통과할 때 스텐실 버퍼에서 GPU가 수행하는 작업입니다.

후면 픽셀에 대한 작업만 정의합니다. passOperation이 정의된 경우 해당 값이 이 값을 오버라이드합니다.
failOperationBack 스텐실 작업입니다. 유효값은 스텐실 작업 값을 참조하십시오. 기본값은 Keep입니다. 픽셀이 스텐실 테스트에 불합격할 때 스텐실 버퍼에서 GPU가 수행하는 작업입니다.

후면 픽셀에 대한 작업만 정의합니다. failOperation이 정의된 경우 해당 값이 이 값을 오버라이드합니다.
zFailOperationBack 스텐실 작업입니다. 유효값은 스텐실 작업 값을 참조하십시오. 기본값은 Keep입니다. 픽셀이 스텐실 테스트는 통과하지만 뎁스 테스트는 불합격할 때 스텐실 버퍼에서 GPU가 수행하는 작업입니다.

후면 픽셀에 대한 작업만 정의합니다. zFailOperation이 정의된 경우 해당 값이 이 값을 오버라이드합니다.
comparisonOperationFront 비교 작업입니다. 유효값은 비교 작업 값을 참조하십시오. 기본값은 Always입니다. GPU가 스텐실 테스트를 위해 수행하는 작업입니다.

전면 픽셀에 대한 작업만 정의합니다. comparisonOperation이 정의된 경우 해당 값이 이 값을 오버라이드합니다.
passOperationFront 스텐실 작업입니다. 유효값은 스텐실 작업 값을 참조하십시오. 기본값은 Keep입니다. 픽셀이 스텐실 테스트와 뎁스 테스트를 모두 통과할 때 스텐실 버퍼에서 GPU가 수행하는 작업입니다.

전면 픽셀에 대한 작업만 정의합니다. passOperation이 정의된 경우 해당 값이 이 값을 오버라이드합니다.
failOperationFront 스텐실 작업입니다. 유효값은 스텐실 작업 값을 참조하십시오. 기본값은 Keep입니다. 픽셀이 스텐실 테스트에 불합격할 때 스텐실 버퍼에서 GPU가 수행하는 작업입니다.

전면 픽셀에 대한 작업만 정의합니다. failOperation이 정의된 경우 해당 값이 이 값을 오버라이드합니다.
zFailOperationFront 스텐실 작업입니다. 유효값은 스텐실 작업 값을 참조하십시오. 기본값은 Keep입니다. 픽셀이 스텐실 테스트는 통과하지만 뎁스 테스트는 불합격할 때 스텐실 버퍼에서 GPU가 수행하는 작업입니다.

전면 픽셀에 대한 작업만 정의합니다. zFailOperation이 정의된 경우 해당 값이 이 값을 오버라이드합니다.

비교 값

C#에서 이러한 값은 Rendering.CompareFunction 열거형으로 표시됩니다.

Rendering.CompareFunction 열거형에서 상응하는 정수값 기능
Never 1 픽셀을 절대 렌더링하지 않습니다.
Less 2 레퍼런스 값이 스텐실 버퍼 안의 현재 값보다 작은 픽셀을 렌더링합니다.
Equal 3 레퍼런스 값이 스텐실 버퍼 안의 현재 값과 같은 픽셀을 렌더링합니다.
LEqual 4 레퍼런스 값이 스텐실 버퍼 안의 현재 값보다 작거나 현재 값과 같은 픽셀을 렌더링합니다.
Greater 5 레퍼런스 값이 스텐실 버퍼 안의 현재 값보다 큰 픽셀을 렌더링합니다.
NotEqual 6 레퍼런스 값이 스텐실 버퍼 안의 현재 값과 다른 픽셀을 렌더링합니다.
GEqual 7 레퍼런스 값이 스텐실 버퍼 안의 현재 값보다 크거나 현재 값과 같은 픽셀을 렌더링합니다.
Always 8 픽셀을 항상 렌더링합니다.

스텐실 값

C#에서 이러한 값은 Rendering.Rendering.StencilOp 열거형으로 표시됩니다.

Rendering.StencilOp 열거형에서 상응하는 정수값 기능
Keep 0 스텐실 버퍼의 현재 콘텐츠를 유지합니다.
Zero 1 스텐실 버퍼에 0을 작성합니다.
Replace 2 버퍼에 레퍼런스 값을 작성합니다.
IncrSat 3 버퍼의 현재 값을 증가시킵니다. 값이 이미 255이면 255로 유지됩니다.
DecrSat 4 버퍼의 현재 값을 감소시킵니다. 값이 이미 0이면 0으로 유지됩니다.
Invert 5 버퍼의 현재 값의 모든 비트를 반전합니다.
IncrWrap 6 버퍼의 현재 값을 증가시킵니다. 값이 이미 255이면 0이 됩니다.
DecrWrap 7 버퍼의 현재 값을 감소시킵니다. 값이 이미 0이면 255가 됩니다.

추가 리소스

ShaderLab 레퍼런스의 Offset 커맨드
ShaderLab의 ZClip 커맨드 레퍼런스