Exemplo n.º 1
0
 protected override void OnRelease()
 {
     ProcessedTexture = null;
     Objects.Clear();
     PostProcessingActions = null;
     Material                = null;
     SourceTextureBuffer     = null;
     FirstTemporaryBuffer    = null;
     SecondTemporaryBuffer   = null;
     ColorCorrectionBuffer   = null;
     ColorCorrectionMaterial = null;
     BlurBuffer              = null;
     BlurMaterial            = null;
     BloomBuffer             = null;
     BloomMaterial           = null;
     DistortionBuffer        = null;
     DistortionMaterial      = null;
     SharpenBuffer           = null;
     SharpenMaterial         = null;
     NoiseBuffer             = null;
     NoiseTexture            = null;
     NoiseMaterial           = null;
     FXAABuffer              = null;
     FXAAMaterial            = null;
     VignetteMaterial        = null;
     TransparentTexture      = null;
     AlphaDiffuseMaterial    = null;
     AddDiffuseMaterial      = null;
     OpaqueDiffuseMaterial   = null;
 }
Exemplo n.º 2
0
        public override void OnRender()
        {
            var cacheRT = RenderTexture.GetTemporary(mContext.CurrentRenderRT.descriptor);

            var descriptor   = mContext.CurrentRenderRT.descriptor;
            var bloomBlur1RT = RenderTexture.GetTemporary(descriptor.width >> 1, descriptor.height >> 1, 0, RenderTextureFormat.ARGBHalf);//1/2

            descriptor = mContext.CurrentRenderRT.descriptor;
            var bloomBlur2RT = RenderTexture.GetTemporary(descriptor.width >> 1, descriptor.height >> 1, 0, RenderTextureFormat.ARGBHalf);//1/2

            BloomMaterial.SetFloat(mStreak_Length_ID, Model.streak_Length);
            BloomMaterial.SetFloat(mThreshold_ID, Model.threshold);

            Graphics.Blit(mContext.CurrentRenderRT, cacheRT, BloomMaterial, PASS2_EXTRACTHDR);

            Graphics.Blit(cacheRT, bloomBlur1RT, BloomMaterial, PASS1_XBLUR);
            Graphics.Blit(bloomBlur1RT, bloomBlur2RT, BloomMaterial, PASS1_XBLUR);
            Graphics.Blit(bloomBlur2RT, bloomBlur1RT, BloomMaterial, PASS1_XBLUR);

            BloomMaterial.SetTexture(mBloomTex_ID, bloomBlur1RT);

            Graphics.Blit(mContext.CurrentRenderRT, cacheRT);
            Graphics.Blit(cacheRT, mContext.CurrentRenderRT, BloomMaterial, PASS0_BASS);

            RenderTexture.ReleaseTemporary(cacheRT);
            RenderTexture.ReleaseTemporary(bloomBlur1RT);
            RenderTexture.ReleaseTemporary(bloomBlur2RT);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BloomEffect"/> class.
 /// </summary>
 public BloomEffect(GraphicsDevice graphics)
 {
     Material = bloom = new BloomMaterial(graphics);
     Passes.Add(new PostEffectChain());
     Passes.Add(new PostEffectChain(TextureUsage.Bloom,
                                    new PostEffect()
     {
         Material = threshold = new ThresholdMaterial(graphics), RenderTargetScale = 0.5f, SurfaceFormat = SurfaceFormat.Color
     },
                                    blur = new BlurEffect(graphics),
                                    new PostEffect()
     {
         Material = new ScaleMaterial(graphics), RenderTargetScale = 2.0f
     }
                                    ));
 }