2010-09-21 4 views
5

은 깊이 버퍼를 사용하지 않도록 설정하는 기능인 GraphicsDevice 클래스의 멤버로 표시되지 않습니다. 누구나이 새로운 4.0 API로 어떻게 이루어 졌는지 알 수 있습니다.깊이 버퍼를 비활성화하는 방법은 무엇입니까?

어쨌든 어딘가에 RenderState과 같은 클래스에 액세스 할 수 있다면 좋을 것입니다. GraphicsDevice은 거의 전부가 아닌 것 같습니다.

답변

2

아 .. GraphicsDevice.DepthStencilStateDepthStencilState의 인스턴스로 설정하고 속성을 설정할 수 있습니다. RenderState이 다른 주를 무너 뜨린 것처럼 보입니다. 이전에 GraphicsDevice의 개별 속성을 찾고 있었지만 더 쉽게 상태를 관리 할 수 ​​있도록 정리 된 것 같습니다.

depthState = new DepthStencilState(); 
depthState.DepthBufferEnable = true; /* Enable the depth buffer */ 
depthState.DepthBufferWriteEnable = true; /* When drawing to the screen, write to the depth buffer */ 

GraphicsDevice.DepthStencilState = depthState; 
+1

예. 그러나 상태 객체를 한 번만 생성해야합니다 (그리는 방법이 아님). 자세한 내용은 Shawn 읽기 http://blogs.msdn.com/b/shawnhar/archive/2010/04/02/state-objects-in-xna-game-studio-4-0.aspx. – Empyrean

+1

또한 많은 일반적인 시나리오를 다루는 많은 미리 빌드 된 상태 개체가 있음을 명심하십시오. 이 경우 DepthStencilState.None을 사용하여 깊이 버퍼링을 비활성화하고 DepthStencilState.Default를 사용하여 쓰기를 활성화 할 수 있습니다 (여기 예제에서와 같이). –

관련 문제