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 2Comp equalPass keepZFail 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가 됩니다. |