관련 색인이 없습니다.
스텐실 버퍼 스테이트
 
Microsoft DirectX 9.0

스텐실 버퍼 스테이트


애플리케이션은, 스텐실 버퍼를 사용해, 렌더링 타겟 표면에 픽셀을 기입할지 어떨지를 결정한다.

더 자세한 정보는, 「스텐실 버퍼 테크닉」을 참조할것.

C++ 로 기술한 애플리케이션으로, 스텐실 처리를 유효 또는 무효로 하려면 ,IDirect3DDevice9::SetRenderState 메서드를 호출한다. 제 1 인수의 값으로 D3DRS_STENCILENABLE 를 건네준다. 스텐실 처리를 유효하게 하려면 제 2 인수의 값을 TRUE 로 설정해, 무효로 하려면 FALSE 로 설정한다.

Microsoft® Direct3D® 의 스텐실 테스트로 사용하는 비교 함수는,IDirect3DDevice9::SetRenderState 를 호출해 설정한다. 제 1 인수의 값을 D3DRS_STENCILFUNC 로 설정한다. 제 2 인수의 값으로 D3DCMPFUNC 열거형의 멤버를 건네준다.

스텐실 참조값이란, 스텐실 함수가 테스트에 사용하는, 스텐실 버퍼내의 값이다. 디폴트에서는 스텐실 참조값은 제로이다. 애플리케이션에서는,D3DRENDERSTATETYPE 를 호출해 이 값을 설정할 수 있다. 제 1 인수의 값으로 D3DRS_STENCILREF 를 건네준다. 제 2 인수의 값을 새로운 참조값으로 설정한다.

Direct3D 모듈은, 픽셀에 대한 스텐실 테스트를 실행하기 전에, 스텐실 참조값과 스텐실 마스크값의 비트적 (AND)을 계산한다. 그 결과는, 스텐실 비교 함수에 의해 스텐실 버퍼의 내용이라고 비교된다. 애플리케이션에서는,D3DRENDERSTATETYPE 를 호출해 스텐실 마스크를 설정할 수 있다. 제 1 인수의 값으로 D3DRS_STENCILMASK 를 건네준다. 제 2 인수를 새로운 스텐실 마스크로 설정한다.

스텐실 테스트가 실패했을 때의 Direct3D 의 처리를 설정하려면 ,IDirect3DDevice9::SetRenderState 를 호출해, 제 1 인수로서 D3DRS_STENCILFAIL 를 건네준다. 제 2 인수는 D3DSTENCILCAPS 이다.

또, 스텐실 테스트는 성공했지만 z 버퍼 테스트가 실패했을 때의 Direct3D 의 처리도 애플리케이션으로 제어할 수 있다. IDirect3DDevice9::SetRenderState 를 호출해, 제 1 인수로서 D3DRS_STENCILZFAIL 를 건네주어, 제 2 인수에 D3DSTENCILCAPS 를 사용한다.

게다가 애플리케이션에서는, 스텐실 테스트와 z 버퍼 테스트의 양쪽 모두가 성공했을 때의 Direct3D 의 처리도 제어할 수 있다. IDirect3DDevice9::SetRenderState 를 호출해, 제 1 인수로서 D3DRS_STENCILPASS 를 건네준다. 이 경우도, 제 2 인수는 D3DSTENCILCAPS 이다.

스텐실 버퍼에 기입하는 값에 쓰기 마스크를 적용할 수 있다. 스텐실 버퍼의 쓰기 마스크를 설정하려면 ,IDirect3DDevice9::SetRenderState 를 호출해, 제 1 인수로서 D3DRS_STENCILWRITEMASK 를 건네준다. 제 2 인수로서 쓰기 마스크의 값을 건네준다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP