Estoy intentando cambiar RenderTargets en tiempo de ejecución, así que puedo dibujar algunos elementos en tiempo de ejecución, manipularlos y finalmente dibujar la textura en la pantalla. El problema es que la pantalla se vuelve morada si cambio RenderTarget en el tiempo de ejecución. Aquí está el código que tengo en Draw:¿Cambiar los resultados de RenderTarget en pantalla morada?
RenderTarget2D tempTarget = new RenderTarget2D(GraphicsDevice, 128, 128, 1,
GraphicsDevice.DisplayMode.Format, GraphicsDevice.PresentationParameters.MultiSampleType,
GraphicsDevice.PresentationParameters.MultiSampleQuality, RenderTargetUsage.PreserveContents);
GraphicsDevice.SetRenderTarget(0, tempTarget);
GraphicsDevice.Clear(ClearOptions.Target, Color.SpringGreen, 0, 0);
GraphicsDevice.SetRenderTarget(0, null);
No parece importar cómo creo el RenderTarget, si lo hago en tiempo de ejecución (y yo lo necesito para crear texturas en memoria en tiempo de ejecución y dibujar sobre ellos con SpriteBatch) resulta en una pantalla totalmente violeta. ¿Qué puedo hacer para arreglar esto?
Este fue mi problema. ¿Sabes la razón por la que no se puede hacer en el método de sorteo, o por qué el color es de color púrpura? –
Gracias a nuestros señores de Google por completar automáticamente "xna rendertarget" con "morado". Separé mi llamada a gráfico de escena 'Dibujar' en' PreDibujar-> Borrar-> Dibujar' y dibujar en el objetivo de renderizado durante 'PreDibujar'. [Shawn Hargreaves respondió] (http://xboxforums.create.msdn.com/forums/t/6264.aspx) que esto es para que [el comportamiento del objetivo de procesamiento sea coherente entre Windows y XBOX] (http: //blogs.msdn. com/b/shawnhar/archive/2007/11/21/rendertarget-changes-in-xna-game-studio-2-0.aspx). Desde ese último enlace, parece que también podría ser posible usar 'RenderTargetUsage.PreserveContents' al costo de rendimiento. – cod3monk3y