Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemo con los render targets

Iniciado por Hans, 20 de Marzo de 2010, 09:59:13 AM

« anterior - próximo »

Hans

Estoy intentando usar deferred shadows y a parte de ya de por sí odiar bastante tener que meterme con este tipo de cosas (me va más la lógica que programar cosas gráficas en sí mismas) cuando no encuentro soluciones aún lo odio más, si cabe  >:D

Si hago esto:


            for (int i = 0; i < scene.Count; i++) scene[i].Draw(Camera.ViewMatrix, Camera.ProjectionMatrix, true, null, true);






Pero si intento renderizar esa misma escena a un render target y luego dibujarla a vía spritebatch me sale todo blanquecino, como mezclado con el difuso. Y no tengo ni pajolera idea de qué está mal.

            GraphicsDevice.SetRenderTarget(0, basicSceneTexture);
            for (int i = 0; i < scene.Count; i++) scene[i].Draw(Camera.ViewMatrix, Camera.ProjectionMatrix, true, null, true);
            GraphicsDevice.SetRenderTarget(0, null);


            GraphicsDevice.Clear(Color.Black);

            spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState);
            spriteBatch.Draw(basicSceneTexture.GetTexture(), Vector2.Zero, Color.White);
            spriteBatch.End();






La idea era sacar un rendertarget con la escena básica, un render target con la escena con las deferred shadows y luego mezclarlas, a ver cómo quedaba la cosa. Pero tengo problemas hasta con la escena básica :-[

blau

Parece como si se te hubiese quedado por ahi algun renderstate raro.

¿Que pasa si cambias el SpriteBlendMode.AlphaBlend a SpriteBlendMode.None?


Hans

He encontrado el problema, era a la hora de crear el rendertarget.

Cambiar

new RenderTarget2D(GraphicsDevice, width, height, 1, SurfaceFormat.Single, RenderTargetUsage.DiscardContents);

por

new RenderTarget2D(GraphicsDevice, width, height, 1, SurfaceFormat.Color, RenderTargetUsage.DiscardContents);

Single por color :P


Gracias de todas formas Blau ;)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.