Skip to main content

스텐실 버퍼 란 무엇입니까?

Computer Computer Graphics 프로그래밍에서 스텐실 버퍼는 다른 효과를 달성하기 위해 다른 그래픽 버퍼와 관련하여 그려지고 사용할 수있는 메모리 영역입니다.스텐실 버퍼는 흑백 이미지와 유사한 픽셀 당 버퍼이며, 버퍼의 각 위치는 최대 1 바이트 길이가 가장 많지만 1 비트만큼 작을 수있는 값을 보유 할 수 있습니다.버퍼는 원래 실제 스텐실과 마찬가지로 참 또는 오 탐 마스크 역할을하도록 설계되었으므로 스텐실 버퍼의 다른 영역의 값을 0 이외의 값으로 설정하여 장면 영역을 가리거나 무시할 수 있습니다.그림자 볼륨을 그리거나 물체 주위에 후광 구현 또는 물체가 서로 겹치는 영역을 찾는 등 간단한 마스킹 이외의 버퍼에는 여러 가지 용도가 있습니다.많은 경우에, 버퍼는 그래픽 카드의 그래픽 메모리에 유지되므로 렌더링 중에 빠르게 액세스 할 수 있습니다.정점이 그래픽 파이프 라인을 통해 이동함에 따라 3 차원 (3D) 장면에 적용됩니다.3D 정점의 위치가 일단 균형이 잡히면 스텐실 버퍼의 영역과 관련하여 0으로 설정되지 않은 경우 해당 정점을 무시하고 나머지 파이프 라인 처리가 건너 뛸 수 있습니다.이를 통해 프로그래머는 장면의 작은 부분 만 렌더링하거나 이미지를 불규칙한 모양의 뷰포트로 렌더링 할 수있는 방법을 사용하여 거울의 모양이버퍼와 반사가 그 모양을 통해 반사됩니다.

메모리 문제로 인해 스텐실 버퍼의 원래 형태는 버퍼의 각 픽셀 만 참 또는 거짓일 수있는 단일 비트 값의 그리드로 이어졌습니다.그래픽 카드가 개발됨에 따라 대부분의 버퍼는 각 픽셀 위치에서 전체 바이트 값을 유지하여 프로그래머가 위치에 더 복잡한 값을 가질 수있게되었습니다.이를 통해 버퍼가 객체가 겹치는 영역을 감지하는 데 사용될 수 있으며, 이는 객체가 화면에서 해당 픽셀을 재주 할 때 해당 픽셀을 차지하는 경우 위치에서 버퍼의 값을 증가시켜 수행 할 수 있습니다.이 작업 후, 버퍼의 각 픽셀 위치의 값은 화면에서 해당 픽셀을 가로 지르는 물체의 수와 같습니다.

스텐실 버퍼에서 가장 인기있는 용도 중 하나는 볼륨 그림자를 만드는 것입니다.이것은 먼저 매우 희미한 조명으로 장면을 렌더링하여 모든 것이 음영 처리 된 것처럼 보입니다.다음으로, 광원에 의해 조명 된 장면의 모든 다각형 표면의 위치를 결정하기위한 계산이 이루어지며, 이러한 모양은 스텐실 버퍼로 전달됩니다.장면은 모든 물체가 완전히 켜진 것처럼 다시 렌더링되고 스텐실 모양을 통해 그림자가있는 장면으로 혼합되어 그림자가있는 물체가 포함 된 이미지를 효과적으로 만듭니다.