데칼링(Direct3D 9)

Direct3D 애플리케이션은 전사를 사용하여 특정 원형 이미지에서 어느 픽셀을 렌더링 대상 화면에 그릴지 제어할 수 있습니다. 애플리케이션은 공면 다각형이 올바로 렌더링될 수 있도록 원형의 이미지에 전사를 적용합니다.

예를 들어 도로에 타이어 마크와 노란색 선을 적용할 때 표시가 도로 바로 위에 나타나야 합니다. 그러나 표시와 도로의 z 값은 동일합니다. 따라서 깊이 버퍼가 두 표시를 명료하게 분리하지 못할 수 있습니다. 후면 원형의 일부 픽셀이 전면 원형 위에, 또는 그 반대로 렌더링될 수 있습니다. 결과 이미지가 프레임마다 어른거려 보입니다. 이 효과를 z 플라이팅 또는 플리머링이라고 합니다.

이 문제를 해결하기 위해 스텐실을 사용하여 데칼이 표시될 후면 원형의 섹션을 마스킹합니다. Z 버퍼링을 끄고 전면 원형의 이미지를 렌더링 대상 표면의 마스킹된 영역에 렌더링합니다.

다중 텍스처 혼합을 사용하여 이 문제를 해결할 수 있지만 그러면 애플리케이션이 생성할 수 있는 다른 특수 효과의 수가 제한됩니다. 스텐실 버퍼를 사용하여 데칼을 적용하면 다른 효과를 위한 텍스처 혼합 단계를 확보할 수 있습니다.

스텐실 버퍼 기술