XNA를 처음 사용하고 그래픽 스택을 지정된 상태로 복원하기위한 기본 제공 워크 플로가 있는지 궁금합니다. 예를 들어, 내 3D 장면을 렌더링 스프라이트 후 발견, 3 차원 부분이 SpriteBatch.begin를 호출 한 후 작동이 중지() 나는SetRenderTarget()과 같은 함수로 인해 XNA 특성 변경이 다시 발생합니다.
GraphicsDevice.BlendState = BlendState.Opaque;
GraphicsDevice.DepthStencilState = DepthStencilState.Default;
GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap;
하여 문제를 해결했다 가진 glPushAttrib 같은 뭔가 /) (거기 glPopAttrib()를 사용하여 스프라이트 엔진이 변경된 상태를 아는 대신 이것을 래핑 할 수 있습니까?
내 현재 문제는 렌더 타겟을 가지고 놀고 있는데, 내가 생성 한 후 SetRenderTarget()을 호출 한 후 3D 부분이 망가져있는 것 같습니다.
예를 들어 설명서의 내용에서 그래픽 장치를 null로 설정하면 다음 두 가지 기능을 모두 호출해야합니다.
GraphicsDevice.SetRenderTarget(target);
GraphicsDevice.SetRenderTarget(null);
위의 첫 번째 행을 주석 처리하면 3D 렌더링이 올바로 유지되므로 일부 통화 상태가 변경 될 수 있습니다. 이러한 상태 변경은 호출에 의해 문서화되거나 상태를 명시 적으로 저장하고 일부 작업을 마쳤을 때 상태를 복원하는 방법이 있습니까? 렌더 타겟에 대한 몇 가지 문서가있다