본문으로 이동

스텐실 버퍼

위키백과, 우리 모두의 백과사전.

이 이미지에는 스텐실 버퍼의 1과 0을 각각 나타내는 흰색 영역과 검은색 영역이 있다. 그런 다음 스텐실 버퍼의 값을 반전시켜 줄무늬 위에 모양을 그린다. 해당 픽셀의 버퍼 값이 0(검은색)인 경우 픽셀 색상을 흰색(1)으로 지정하고 그 반대의 경우도 마찬가지이다.

스텐실 버퍼(stencil buffer)는 최신 그래픽 하드웨어에서 발견되는 컬러 버퍼 및 Z 버퍼 외에 추가 데이터 버퍼이다. 버퍼는 픽셀당이며 일반적으로 픽셀당 1바이트 깊이의 정수 값에서 작동한다. Z 버퍼와 스텐실 버퍼는 종종 그래픽 하드웨어 RAM에서 동일한 영역을 공유한다.

가장 간단한 경우 스텐실 버퍼는 렌더링(스텐실링) 영역을 제한하는 데 사용된다. 스텐실 버퍼의 고급 사용에서는 렌더링 파이프라인에서 Z 버퍼와 스텐실 버퍼 간의 강력한 연결을 활용한다. 예를 들어 깊이 테스트에 실패하거나 통과한 모든 픽셀에 대해 스텐실 값을 자동으로 늘리거나 줄일 수 있다.

깊이 테스트와 스텐실 수정자의 간단한 조합을 통해 다양한 효과(예: 스텐실 섀도 볼륨, 양면 스텐실,[1] 합성, 데칼링, 디졸브, 페이드, 스와이프, 실루엣, 윤곽선 그리기 또는 복잡한 프리미티브 간의 교차점 강조 표시)를 만들 수 있다. 여러 렌더링 패스가 필요한 경우가 많기 때문에 그래픽 하드웨어에 과도한 부하를 줄 수 있다.

가장 일반적인 응용 부문은 여전히 3D 응용 부문에 그림자를 추가하는 것이다. 평면 반사에도 사용된다.

포털 렌더링과 같은 다른 렌더링 기술은 스텐실 버퍼를 다른 방식으로 사용한다. 예를 들어 포털에 의해 가려진 화면 영역을 찾아 해당 픽셀을 올바르게 다시 렌더링하는 데 사용할 수 있다.

스텐실 버퍼와 해당 수정자는 OpenGL, Direct3D, 벌컨 또는 메탈과 같은 API를 사용하여 컴퓨터 그래픽에서 액세스할 수 있다.

각주

[편집]