스텐실 버퍼의 목적은 무엇입니까? 보다 정확하게는 컴퓨터 그래픽의 스텐실은 무엇입니까?


41

나는 스텐실 단어를 많이 읽었으며 컴퓨터 그래픽에서 실제 목적이 무엇인지 전혀 모른다.

Wikipedia에서 흑백으로 사진을 볼 때 여전히 문제가 있습니다.

왜 스텐실 또는 스텐실 버퍼를 사용합니까? Z- 버퍼와의 차이점은 무엇입니까? 왜 그래픽 디자인에 의미가있는이 단어를 사용합니까?


좋은 질문은, 그림자를 렌더링하는 데 사용된다는 것입니다 ... 그러나 그것에 대한 자세한 설명을 듣고 싶습니다!
Ricket

답변:


40

원래의 화신에서, 스텐실 버퍼는 픽셀 당 1 비트 (즉, 검은 색 또는 흰색이지만 회색은 없음) 프레임 버퍼였습니다. 다른 프레임 버퍼처럼 원하는대로 렌더링 할 수 있습니다. 그런 다음 나중에 해당 버퍼의 내용을 사용하여 일반 버퍼로 그릴 때 "스텐실"또는 마스크 아웃 할 수 있습니다.

예 : 운전 게임을하고 있다고 가정 해 봅시다. 차 뒤에 무엇이 있는지 보여주는 작은 백미러 화면이 필요합니다. 자동차 뒤를 가리키는 뷰를 렌더링해야하지만 리어 뷰 미러의 작은 둥근 사각형 내에서만 렌더링을 원합니다. 일반적인 해결책은 다음과 같습니다.

  1. 둥근 사각형 모양을 스텐실 버퍼로 렌더링합니다.
  2. 스텐실 링을 활성화합니다.
  3. 뒤로 가리키는 뷰를 일반 버퍼로 렌더링하십시오.

그런 다음 스텐실에서 마스킹하여 거울 모양으로 만 그릴 수 있습니다.

이제 렌더 파이프 라인이 훨씬 유연하고 프로그래밍 가능해 졌으므로 스텐실 버퍼는 원하는대로 무엇이든 할 수있는 일반적인 1 비트 프레임 버퍼로 사용됩니다. 그림자는 일반적인 사용 사례입니다.


10
즉, 기본적으로 실제 스텐실과 동일한 기능을 가지고있어 잉크를 도포 할 때 부품을 가리게됩니다.
Kaj

4
오늘날 거의 모든 장치는 8 비트 스텐실 버퍼를 지원합니다.
Chris Howe

나는 실제로 당신의 예를 얻지 못합니다. 두 번째 절두체가있는 것과 같습니다. 장면의 다른 부분을 래스터 화합니까? 그림자로 예를 들어 줄 수 있습니까?
jokoon

두 번째 프레임 버퍼입니다. 절두체를 렌더링하기 전에 항상 절두체를 변경할 수 있지만 (섀도우 시스템이 생각하는 것임) 핵심 개념의 일부가 아닙니다.
munificent

9

사람들이 이미 논의한 스텐실 버퍼의 기능적 사용 외에도 스텐실 버퍼를 최적화에 사용할 수도 있습니다.

때문에 그래픽 파이프 라인 (인 스텐실 테스트의 위치로 이전 픽셀 쉐이딩), 스텐실 테스트는 그들이 필요하지 않을 때 무거운 음영 작업을 수행 픽셀을 죽이는 데 사용 할 수 있습니다. 종종 이것은 단지 단일 픽셀보다 더 거친 입도로 수행 될 수있다. 픽셀 타일을 사용하므로 거친 래스터 화 단계에서도 작업을 종종 수행 할 수 있습니다.


4

다각형을 렌더링 할 때 수정할 수있는 픽셀을 제어하는 ​​버퍼 일뿐입니다. 각 픽셀마다 해당 스텐실 값이 있으며 이러한 값에 따라 픽셀을 조건부로 수정 / 무시할 수 있습니다.

가장 간단한 방법으로 물리적 스텐실과 같이 사용할 수 있습니다. 마스크는 일부 픽셀을 통과시키고 다른 픽셀의 수정을 중지합니다.

z- 버퍼와 동작이 매우 유사합니다. 깊이 테스트와 같은 방식으로 스텐실 테스트는 참 / 거짓 테스트이며 스텐실 테스트를 제어하기위한 설정이 비슷합니다 (크거나 작거나 같으면 통과). 그러나 깊이를 쓰지 않고 스텐실 섀도우 알고리즘에서 사용되는 것처럼 픽셀에 그려 질 때 미리 정의 된 값을 쓰거나 증가 / 감소합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.