Stencil
{
Ref 2
Comp always
Pass replace
ZFail decrWrap
}
Ref : 참조할 값
(Comp가 always가 아니고 다른 것일 때) 비교하는 값이며/또는 (Pass, Fail이나 ZFail이 replace로 설정된 경우) 버퍼에 써넣을 값. 0-255 정수.
ReadMask : 읽기 마스크 값
0-255 정수 8비트 마스크, 버퍼 안의 값을 참조 값과 비교 할 때 사용합니다. (참조 값 & 읽기 마스크 값) 비교함수 (스텐실 버퍼 값 & 읽기 마스크 값). 기본 255.
WriteMask : 쓰기 마스크 값
0-255 정수 8비트 마스크, 버퍼에 값을 써넣을 때 사용합니다. 다른 쓰기 마스크와 마찬가지로, 쓰기로 인해 스텐실 버퍼의 어느 비트가 영향을 받을지 지정하는 데 사용 한다는 점을 유의 하세요. (예를 들어 WriteMask 0 이 뜻하는 것은 아무 비트도 영향을 받지 않는 다는 것이며 0을 쓴다는 의미가 아닙니다.) 기본 255.
Comp 비교 함수
버퍼 안의 현재 값과 참조 값을 비교할 때 사용할 함수. 기본 always.
Pass 스텐실 작업
스텐실 검사(와 깊이 검사)가 통과한 경우 버퍼 안의 값을 어떻게 할지 정합니다. 기본 keep.
Fail스텐실 작업
스텐실 검사가 실패한 경우 버퍼 안의 값을 어떻게 할지 정합니다. 기본 keep.
ZFail 스텐실 작업
Comp, Pass, Fail 그리고 ZFail은 Cull Front를 적용하지 않는 이상(하는 경우에는 뒷면 기하), 앞면 기하(geometry)에 적용됩니다. 또한 CompFront, PassFront, FailFront, ZFailFront (앞면 기하의 경우), 그리고 CompBack, PassBack, FailBack, ZFailBack (뒷면 기하의 경우)를 정의하여 명시적으로 양면의 스텐실 상태를 적용할 수 있습니다.
비교 함수
비교 함수는 다음 중 하나를 따릅니다.
Greater | 버퍼의 값보다 참조 값이 큰 픽셀만 그립니다. |
GEqual | 버퍼의 값보다 참조 값이 크거나 같은 픽셀만 그립니다. |
Less | 버퍼의 값보다 참조 값이 작은 픽셀만 그립니다. |
LEqual | 버퍼의 값보다 참조 값이 작거나 같은 픽셀만 그립니다. |
Equal | 버퍼의 값과 참조 값이 같은 픽셀만 그립니다. |
NotEqual | 버퍼의 값과 참조 값이 다른 픽셀만 그립니다. |
Always | 스텐실 검사가 무조건 통과됩니다. |
Never | 스텐실 검사가 무조건 실패합니다. |
스텐실 작업
스텐실 작업은 다음 중 하나를 따릅니다.
Keep | 버퍼의 현재 값을 유지합니다. |
Zero | 버퍼에 0을 써넣습니다. |
Replace | 버퍼에 참조 값을 써넣습니다. |
IncrSat | 버퍼의 현재 값을 올립니다. 값이 이미 255이면 255를 유지합니다. |
DecrSat | 버퍼의 현재 값을 내립니다. 값이 이미 0이면 0을 유지합니다. |
Invert | 모든 비트를 반전합니다. |
IncrWarp | 버퍼의 현재 값을 올립니다. 값이 이미 255이면 0으로 변합니다. |
DecrWarp | 버퍼의 현재 값을 내립니다. 값이 이미 0이면 255로 변합니다. |
'Shader > 이론' 카테고리의 다른 글
UNITY_UI_CLIP_RECT 란 무엇인가? (0) | 2022.08.03 |
---|---|
"Sprites/Default" (0) | 2022.05.18 |