public override void Draw(Texture2D ImageToProcess, RenderHelper rHelper, GameTime gt, Engine.GraphicInfo GraphicInfo, IWorld world, bool useFloatingBuffer) { rHelper.PushRenderTarget(target); gbp.Draw(rHelper[PrincipalConstants.extra1RT], rHelper, gt, GraphicInfo, world, false); x = rHelper.PopRenderTargetAsSingleRenderTarget2D(); if (doubleBlur) { rHelper.PushRenderTarget(target2); gbp.Draw(x, rHelper, gt, GraphicInfo, world, false); x = rHelper.PopRenderTargetAsSingleRenderTarget2D(); } effect.Parameters["intensity"].SetValue(intensity); effect.Parameters["glowMapBlurried"].SetValue(x); effect.Parameters["colorMap"].SetValue(ImageToProcess); effect.Parameters["halfPixel"].SetValue(GraphicInfo.HalfPixel); if (useFloatingBuffer) { rHelper.RenderFullScreenQuadVertexPixel(effect, SamplerState.PointClamp); } else { rHelper.RenderFullScreenQuadVertexPixel(effect, GraphicInfo.SamplerState); } }
public override void Draw(Texture2D ImageToProcess, RenderHelper rHelper, GameTime gt, Engine.GraphicInfo GraphicInfo, IWorld world, bool useFloatingBuffer) { effect.Parameters["Params"].SetValue(new Vector4(GraphicInfo.BackBufferWidth, GraphicInfo.BackBufferHeight, world.CameraManager.ActiveCamera.FarPlane, intensity)); effect.Parameters["DepthBuffer"].SetValue(rHelper[PrincipalConstants.DephRT]); effect.Parameters["NormalBuffer"].SetValue(rHelper[PrincipalConstants.normalRt]); effect.Parameters["RandomTexture"].SetValue(RandomTexture); effect.Parameters["InvProj"].SetValue(Matrix.Transpose(Matrix.Invert(world.CameraManager.ActiveCamera.Projection))); effect.Parameters["View"].SetValue(world.CameraManager.ActiveCamera.View); effect.Parameters["jitter"].SetValue(jitter); effect.Parameters["halfPixel"].SetValue(GraphicInfo.HalfPixel); effect.Parameters["diffScale"].SetValue(diffscale); effect.Parameters["whiteCorrection"].SetValue(whiteCorrection); if (outputONLYSSAOMAP) { rHelper.RenderFullScreenQuadVertexPixel(effect); return; } rHelper.PushRenderTarget(target); rHelper.Clear(Color.Black, ClearOptions.Target); rHelper.RenderFullScreenQuadVertexPixel(effect); Texture2D r = rHelper.PopRenderTargetAsSingleRenderTarget2D(); if (blurMode == BlurMode.SINGLE || blurMode == BlurMode.DOUBLE) { rHelper.PushRenderTarget(target2); rHelper.Clear(Color.Black, ClearOptions.Target); gbp.Draw(r, rHelper, gt, GraphicInfo, world, useFloatingBuffer); Texture2D x = rHelper.PopRenderTargetAsSingleRenderTarget2D(); if (blurMode == BlurMode.DOUBLE) { rHelper.PushRenderTarget(target3); rHelper.Clear(Color.Black, ClearOptions.Target); gbp.Draw(x, rHelper, gt, GraphicInfo, world, useFloatingBuffer); x = rHelper.PopRenderTargetAsSingleRenderTarget2D(); } ssaofinal.Parameters["SSAOTex"].SetValue(x); } else if (blurMode == BlurMode.NONE) { ssaofinal.Parameters["SSAOTex"].SetValue(r); } rHelper.Clear(Color.Black, ClearOptions.Target); ssaofinal.Parameters["SceneTexture"].SetValue(ImageToProcess); ssaofinal.Parameters["halfPixel"].SetValue(GraphicInfo.HalfPixel); ssaofinal.Parameters["weight"].SetValue(Weight); if (useFloatingBuffer) { rHelper.RenderFullScreenQuadVertexPixel(ssaofinal, SamplerState.PointClamp); } else { rHelper.RenderFullScreenQuadVertexPixel(ssaofinal, GraphicInfo.SamplerState); } }
public override void Draw(Texture2D ImageToProcess, RenderHelper rHelper, GameTime gt, Engine.GraphicInfo GraphicInfo, IWorld world, bool useFloatingBuffer) { rHelper.PushRenderTarget(renderTarget1); Saturate.Parameters["current"].SetValue(ImageToProcess); Saturate.Parameters["halfPixel"].SetValue(GraphicInfo.HalfPixel); if (useFloatingBuffer) { rHelper.RenderFullScreenQuadVertexPixel(Saturate, SamplerState.PointClamp); } else { rHelper.RenderFullScreenQuadVertexPixel(Saturate, SamplerState.LinearClamp); } Texture2D t = rHelper.PopRenderTargetAsSingleRenderTarget2D(); rHelper.PushRenderTarget(renderTarget0); gaussian.Draw(t, rHelper, gt, GraphicInfo, world, useFloatingBuffer); Texture2D x = rHelper.PopRenderTargetAsSingleRenderTarget2D(); rHelper.Clear(Color.Black); Combine.Parameters["halfPixel"].SetValue(GraphicInfo.HalfPixel); Combine.Parameters["base"].SetValue(ImageToProcess); Combine.Parameters["last"].SetValue(x); if (useFloatingBuffer) { rHelper.RenderFullScreenQuadVertexPixel(Combine, SamplerState.PointClamp); } else { rHelper.RenderFullScreenQuadVertexPixel(Combine, GraphicInfo.SamplerState); } }
public override void Draw(Texture2D ImageToProcess, RenderHelper rHelper, GameTime gt, Engine.GraphicInfo GraphicInfo, IWorld world, bool useFloatingBuffer) { rHelper.PushRenderTarget(target); be.Draw(ImageToProcess, rHelper, gt, GraphicInfo, world, useFloatingBuffer); depht.Parameters["BlurScene"].SetValue(rHelper.PopRenderTargetAsSingleRenderTarget2D()); depht.Parameters["FarPlane"].SetValue(world.CameraManager.ActiveCamera.FarPlane); depht.Parameters["D1M"].SetValue(rHelper[PrincipalConstants.DephRT]); rHelper.Clear(Color.Black, ClearOptions.Target); SetShaderParameters(distance, range, world.CameraManager.ActiveCamera.NearPlane, world.CameraManager.ActiveCamera.FarPlane); if (useFloatingBuffer) { rHelper.RenderTextureToFullScreenSpriteBatch(ImageToProcess, depht, GraphicInfo.FullScreenRectangle, SamplerState.PointClamp); } else { rHelper.RenderTextureToFullScreenSpriteBatch(ImageToProcess, depht, GraphicInfo.FullScreenRectangle, GraphicInfo.SamplerState); } }