2011-01-05 4 views
0

XNA 4.0에서는 "두 번째 패스"셰이더를 설정하여 렌더링 된 프레임을 가져온 다음 셰이더 프로그램을 통해 렌더링 된 전체 화면을 실행하려는 올바른 방법은 무엇입니까?XNA에서 두 번째 패스 셰이더를 실행하는 올바른 방법은 무엇입니까?

세 번째 패스도 실행할 수 있습니까?

+0

셰이더 자체에서 두 번째 패스가 발생하는 것에 대해 이야기하고 있습니까? –

+0

다음은 귀하와 귀하의 질문에 대한 독자가 흥미로워 할만한 관련 기사입니다. http://blogs.msdn.com/b/shawnhar/archive/2009/08/17/combining-shaders.aspx –

답변

1

예 가능합니다. RenderTarget2D에서 장면을 렌더링 한 다음 픽셀 쉐이더를 사용하여 장치에서 텍스처를 렌더링해야합니다.

RenderTarget2D target; // needs to instanciate in LoadContent(); 
Effect myEffect; // this one too. 
Draw(GameTime gametime) 
{ 
    GraphicsDevice.SetRenderTarget(target); 
    RenderScene(); 
    GraphicsDevice.SetRenderTarget(null); 

    spriteBatch.Begin(); 
    myEffect.CurrentTechnique.Passes[0].Apply(); 

    spriteBatch.Draw(.... , target, ...); 
    spriteBatch.End(); 
} 
관련 문제