누군가가 나에게 설명하기를 바라는 렌더링 타겟을 사용하는 데 문제가 있습니다. 일부 스프라이트를 렌더링하기 위해 렌더링 타겟을 사용하려고 시도하고 나서이 렌더 타겟을 일반 백 버퍼 50 % 불투명 (null)에 그립니다. 드로우 콜에서 대상을 두 번 이상 사용하는 경우를 제외하고는 훌륭하게 작동합니다.이 경우 마지막 그룹의 스프라이트 만 화면에 나타납니다.XNA 및 RenderTargets
여기에 몇 가지 가짜 코드가 있습니다.
// Normal Sprite Drawing.
DrawSomeSprites();
SetRenderTarget(CompositeTarget);
// These go on the render target.
DrawSomeMoreSprites();
SetRenderTarget(null);
// And now I draw onto the back buffer.
DrawSprite(CompositeTarget);
// So now I want to draw another bunch of sprites via my render target using the same approach.
SetRenderTarget(CompositeTarget);
// These are the only sprites that I can see on the screen.
DrawSomeMoreSprites();
SetRenderTarget(null);
DrawSprite(CompositeTarget);
나는 희망이있다. 렌더 타겟을 변경할 때마다 이전 렌더 타겟 (null)이 어떤 이유로 지워지는 것처럼 보입니다. 목표를 바꾸기 전에 모든 스프라이트 배치를 끝내고 있으며 오류가 발생하지 않으므로 여기서 무엇을해야할지 모르겠다. 분명히 목표는 동시에 모든 스프라이트 그룹을 화면에서 볼 수있게하는 것입니다. 나는 무엇을 여기에서 놓치고 있냐??
쥐! 지난 밤에 PIX 작업을 마침내 마쳤습니다. 예, 분명히 문제가되는 장소에서 다른 모든 클리어가 보입니다. 현재 렌더링 방식을 전혀 사용하지 않는 레이어 시스템이 있기 때문에 실제로 렌더링 순서를 변경할 수 없습니다. 대신 내가 원하는 효과를 내기 위해 픽셀 쉐이더를 사용할 수 있다고 생각합니까? –
@ A.R. 렌더링 대상 (또는 백 버퍼)에서 RenterTargetUsage를 변경하여 문제를 해결할 수 없었습니까? (아니면 Xbox를 목표로하고 있습니까?) –
그래, 렌더링 타겟 변경을 할 수는 있지만 엔진을 사용하여 결국 XBOX를 대상으로합니다. 따라서 발에서 자신을 쏠 수있는보다 흥미 진진한 방법을 찾고 싶습니다. =) 여하튼 Pixel Shader 아이디어에 대해 어떻게 생각하십니까? 내가 알고있는 일부 사람들은 그것이 효과가있을 것이라고 생각하지만, 그들은 정확히 프로가 아닙니다. –