답변:
원래의 화신에서, 스텐실 버퍼는 픽셀 당 1 비트 (즉, 검은 색 또는 흰색이지만 회색은 없음) 프레임 버퍼였습니다. 다른 프레임 버퍼처럼 원하는대로 렌더링 할 수 있습니다. 그런 다음 나중에 해당 버퍼의 내용을 사용하여 일반 버퍼로 그릴 때 "스텐실"또는 마스크 아웃 할 수 있습니다.
예 : 운전 게임을하고 있다고 가정 해 봅시다. 차 뒤에 무엇이 있는지 보여주는 작은 백미러 화면이 필요합니다. 자동차 뒤를 가리키는 뷰를 렌더링해야하지만 리어 뷰 미러의 작은 둥근 사각형 내에서만 렌더링을 원합니다. 일반적인 해결책은 다음과 같습니다.
그런 다음 스텐실에서 마스킹하여 거울 모양으로 만 그릴 수 있습니다.
이제 렌더 파이프 라인이 훨씬 유연하고 프로그래밍 가능해 졌으므로 스텐실 버퍼는 원하는대로 무엇이든 할 수있는 일반적인 1 비트 프레임 버퍼로 사용됩니다. 그림자는 일반적인 사용 사례입니다.
다각형을 렌더링 할 때 수정할 수있는 픽셀을 제어하는 버퍼 일뿐입니다. 각 픽셀마다 해당 스텐실 값이 있으며 이러한 값에 따라 픽셀을 조건부로 수정 / 무시할 수 있습니다.
가장 간단한 방법으로 물리적 스텐실과 같이 사용할 수 있습니다. 마스크는 일부 픽셀을 통과시키고 다른 픽셀의 수정을 중지합니다.
z- 버퍼와 동작이 매우 유사합니다. 깊이 테스트와 같은 방식으로 스텐실 테스트는 참 / 거짓 테스트이며 스텐실 테스트를 제어하기위한 설정이 비슷합니다 (크거나 작거나 같으면 통과). 그러나 깊이를 쓰지 않고 스텐실 섀도우 알고리즘에서 사용되는 것처럼 픽셀에 그려 질 때 미리 정의 된 값을 쓰거나 증가 / 감소합니다.