2016-07-06 7 views
0

출력 병합 단계에서 z 버퍼와 같은 것을 알고 있습니다. 그리고 ref 값과 버퍼 값을 비교하여 포인트가 전달 될 수 있는지 여부를 결정합니다.스텐실 버퍼는 무엇을 사용합니까?

그러나 구현할 수있는 모든 효과는 항상 공통 버퍼로 구현할 수 있다고 생각합니다. render to texture를 사용하여 셰이더 리소스 뷰로 사용할 때는 픽셀 셰이더에 입력하십시오. 그런 다음 픽셀을 수동으로 클립할지 여부를 판단하고 결정하십시오. 코드는 다음과 같습니다. if (값 비교) clip (0); 스텐실 버퍼는 공용 버퍼로 대체 할 수 있으므로 여전히 사용합니다. 그래픽 하드웨어의 가속 기능을 사용할 수 있습니까? (일부 특별 지침)

+1

스텐실 링은 렌더링 파이프 라인의 추가 단계이므로 컬러 버퍼 및 스텐실 버퍼로 렌더링하는 데 한 번만 필요합니다. 컬러 버퍼를 사용할 때 유일한 문제는 컬러 버퍼가 동일한 속성 (형식, h 및 w)을 가져야한다는 것입니다. –

답변

2

"출력 합병"은 렌더링의 중요한 성능 경로 중 하나이므로 '고정 기능'으로 남아 있지만 현대 GPU는 프로그램이되었다 당신이 알파 블렌딩으로 할 수있는 시험의 종류뿐만 아니라, 같은 패스로 스텐실 데이터와 유사한 테스트를 수행 할 수 있습니다. 스텐실 버퍼와 같은 많은 기술에 사용되는

struct D3D11_DEPTH_STENCIL_DESC 
{ 
    BOOL DepthEnable; 
    D3D11_DEPTH_WRITE_MASK DepthWriteMask; 
    D3D11_COMPARISON_FUNC DepthFunc; 
    BOOL StencilEnable; 
    UINT8 StencilReadMask; 
    UINT8 StencilWriteMask; 
    struct D3D11_DEPTH_STENCILOP_DESC 
    { 
     D3D11_STENCIL_OP StencilFailOp; 
     D3D11_STENCIL_OP StencilDepthFailOp; 
     D3D11_STENCIL_OP StencilPassOp; 
     D3D11_COMPARISON_FUNC StencilFunc; 
    } FrontFace, BackFace; 
}; 

그림자, 반사, 처짐 등을 포함 할 수 있습니다. 을 참조하십시오.

0

첫 번째 : 네, 스텐실 버퍼로 수행 할 수있는 작업은 의심의 여지없이 다른 방법으로 수행 할 수 있습니다. 그래픽 카드의 대부분의 부분과 마찬가지로, 추가 하드웨어로 작업을 더 빠르게 수행 할 수 있는지 여부도 문제입니다 (그리고 나는 대답이 '예'라고 확신합니다).

예를 들어 광고 카피와 같이 일반적으로 일반적으로 발생하는 한 가지 이미지는 일몰시 해상 총처럼 일부 미리 정의 된 모양으로 잘린 이미지를 가지고 있습니다. 쓰기 :

http://www.tipsquirrel.com/wp-content/uploads/2011/07/Sunset.jpg

스텐실 버퍼는 하드웨어에서 매우 빠르게 할이 완전히 사소한 수 있습니다. 스텐실 버퍼에 텍스트를 렌더링 한 다음 스텐실 버퍼가 활성화 된 상태에서 그림을 정상적으로 렌더링합니다.

이 기능은 텍스트가 영화의 제목/크레딧 인 영화 제목과 같은 경우 특히 효과적이며 사진은 모든 프레임을 변경하여 영화의 소개입니다. 이 경우 스텐실 버퍼를 한 번 설정 한 다음이를 업데이트하기 전에 여러 차례 연속 프레임에 대해 다시 사용할 수 있습니다 (예 : 다음 크레딧 세트 사용).

이제는 다른 방법 (예 : 픽셀 쉐이더)에서도 동일한 작업을 수행 할 수 있습니다. 그러나 스텐실 버퍼가 대부분의 대안보다 빠르고 저렴합니다. 스텐실 버퍼가 거의 영원히 존재한다는 역사적인 사실이 있습니다. 프로그래밍 가능한 셰이더보다 훨씬 오래갑니다.

+0

고맙습니다. – FireFLO

+0

이해했습니다. 스텐실 버퍼가 프로그래밍 가능한 셰이더보다 빠릅니다. 따라서 속도는 더 빠르지 만 유연하지 않습니다. 효과를 구현하려면 먼저 스텐실을 사용하려고합니다. 충분하지 않으면 우리는 고급 쉐이더를 사용하는 것을 고려합니다. – FireFLO