コード例 #1
0
        private void OnRenderImage(RenderTexture src, RenderTexture dest)
        {
            if (this.silentError)
            {
                return;
            }
            if (!AmplifyUtils.IsInitialized)
            {
                AmplifyUtils.InitializeIds();
            }
            if (this.m_highPrecision)
            {
                AmplifyUtils.EnsureKeywordEnabled(this.m_bloomMaterial, AmplifyUtils.HighPrecisionKeyword, true);
                AmplifyUtils.EnsureKeywordEnabled(this.m_finalCompositionMaterial, AmplifyUtils.HighPrecisionKeyword, true);
                AmplifyUtils.CurrentRTFormat = RenderTextureFormat.DefaultHDR;
            }
            else
            {
                AmplifyUtils.EnsureKeywordEnabled(this.m_bloomMaterial, AmplifyUtils.HighPrecisionKeyword, false);
                AmplifyUtils.EnsureKeywordEnabled(this.m_finalCompositionMaterial, AmplifyUtils.HighPrecisionKeyword, false);
                AmplifyUtils.CurrentRTFormat = RenderTextureFormat.Default;
            }
            float num = Mathf.Acos(Vector3.Dot(this.m_cameraTransform.right, Vector3.right));

            if (Vector3.Cross(this.m_cameraTransform.right, Vector3.right).y > 0f)
            {
                num = -num;
            }
            RenderTexture renderTexture  = null;
            RenderTexture renderTexture2 = null;

            if (!this.m_highPrecision)
            {
                this.m_bloomRange.y = 1f / this.m_bloomRange.x;
                this.m_bloomMaterial.SetVector(AmplifyUtils.BloomRangeId, this.m_bloomRange);
                this.m_finalCompositionMaterial.SetVector(AmplifyUtils.BloomRangeId, this.m_bloomRange);
            }
            this.m_bloomParams.y = this.m_overallThreshold;
            this.m_bloomMaterial.SetVector(AmplifyUtils.BloomParamsId, this.m_bloomParams);
            this.m_finalCompositionMaterial.SetVector(AmplifyUtils.BloomParamsId, this.m_bloomParams);
            int num2 = 1;
            MainThresholdSizeEnum mainThresholdSize = this.m_mainThresholdSize;

            if (mainThresholdSize != MainThresholdSizeEnum.Half)
            {
                if (mainThresholdSize == MainThresholdSizeEnum.Quarter)
                {
                    num2 = 4;
                }
            }
            else
            {
                num2 = 2;
            }
            RenderTexture tempRenderTarget = AmplifyUtils.GetTempRenderTarget(src.width / num2, src.height / num2);

            if (this.m_maskTexture != null)
            {
                this.m_bloomMaterial.SetTexture(AmplifyUtils.MaskTextureId, this.m_maskTexture);
                Graphics.Blit(src, tempRenderTarget, this.m_bloomMaterial, 1);
            }
            else
            {
                Graphics.Blit(src, tempRenderTarget, this.m_bloomMaterial, 0);
            }
            if (this.m_debugToScreen == DebugToScreenEnum.MainThreshold)
            {
                Graphics.Blit(tempRenderTarget, dest, this.m_bloomMaterial, 33);
                AmplifyUtils.ReleaseAllRT();
                return;
            }
            bool          flag           = true;
            RenderTexture renderTexture3 = tempRenderTarget;

            if (this.m_bloomDownsampleCount > 0)
            {
                flag = false;
                int num3 = tempRenderTarget.width;
                int num4 = tempRenderTarget.height;
                for (int i = 0; i < this.m_bloomDownsampleCount; i++)
                {
                    this.m_tempDownsamplesSizes[i].x = (float)num3;
                    this.m_tempDownsamplesSizes[i].y = (float)num4;
                    num3 = num3 + 1 >> 1;
                    num4 = num4 + 1 >> 1;
                    this.m_tempAuxDownsampleRTs[i] = AmplifyUtils.GetTempRenderTarget(num3, num4);
                    if (i == 0)
                    {
                        if (!this.m_temporalFilteringActive || this.m_gaussianSteps[i] != 0)
                        {
                            if (this.m_upscaleQuality == UpscaleQualityEnum.Realistic)
                            {
                                Graphics.Blit(renderTexture3, this.m_tempAuxDownsampleRTs[i], this.m_bloomMaterial, 10);
                            }
                            else
                            {
                                Graphics.Blit(renderTexture3, this.m_tempAuxDownsampleRTs[i], this.m_bloomMaterial, 11);
                            }
                        }
                        else
                        {
                            if (this.m_tempFilterBuffer != null && this.m_temporalFilteringActive)
                            {
                                float value = this.m_temporalFilteringCurve.Evaluate(this.m_temporalFilteringValue);
                                this.m_bloomMaterial.SetFloat(AmplifyUtils.TempFilterValueId, value);
                                this.m_bloomMaterial.SetTexture(AmplifyUtils.AnamorphicRTS[0], this.m_tempFilterBuffer);
                                if (this.m_upscaleQuality == UpscaleQualityEnum.Realistic)
                                {
                                    Graphics.Blit(renderTexture3, this.m_tempAuxDownsampleRTs[i], this.m_bloomMaterial, 12);
                                }
                                else
                                {
                                    Graphics.Blit(renderTexture3, this.m_tempAuxDownsampleRTs[i], this.m_bloomMaterial, 13);
                                }
                            }
                            else if (this.m_upscaleQuality == UpscaleQualityEnum.Realistic)
                            {
                                Graphics.Blit(renderTexture3, this.m_tempAuxDownsampleRTs[i], this.m_bloomMaterial, 10);
                            }
                            else
                            {
                                Graphics.Blit(renderTexture3, this.m_tempAuxDownsampleRTs[i], this.m_bloomMaterial, 11);
                            }
                            bool flag2 = false;
                            if (this.m_tempFilterBuffer != null)
                            {
                                if (this.m_tempFilterBuffer.format != this.m_tempAuxDownsampleRTs[i].format || this.m_tempFilterBuffer.width != this.m_tempAuxDownsampleRTs[i].width || this.m_tempFilterBuffer.height != this.m_tempAuxDownsampleRTs[i].height)
                                {
                                    this.CleanTempFilterRT();
                                    flag2 = true;
                                }
                            }
                            else
                            {
                                flag2 = true;
                            }
                            if (flag2)
                            {
                                this.CreateTempFilterRT(this.m_tempAuxDownsampleRTs[i]);
                            }
                            this.m_tempFilterBuffer.DiscardContents();
                            Graphics.Blit(this.m_tempAuxDownsampleRTs[i], this.m_tempFilterBuffer);
                            if (this.m_debugToScreen == DebugToScreenEnum.TemporalFilter)
                            {
                                Graphics.Blit(this.m_tempAuxDownsampleRTs[i], dest);
                                AmplifyUtils.ReleaseAllRT();
                                return;
                            }
                        }
                    }
                    else
                    {
                        Graphics.Blit(this.m_tempAuxDownsampleRTs[i - 1], this.m_tempAuxDownsampleRTs[i], this.m_bloomMaterial, 9);
                    }
                    if (this.m_gaussianSteps[i] > 0)
                    {
                        this.ApplyGaussianBlur(this.m_tempAuxDownsampleRTs[i], this.m_gaussianSteps[i], this.m_gaussianRadius[i], i == 0);
                        if (this.m_temporalFilteringActive && this.m_debugToScreen == DebugToScreenEnum.TemporalFilter)
                        {
                            Graphics.Blit(this.m_tempAuxDownsampleRTs[i], dest);
                            AmplifyUtils.ReleaseAllRT();
                            return;
                        }
                    }
                }
                renderTexture3 = this.m_tempAuxDownsampleRTs[this.m_featuresSourceId];
                AmplifyUtils.ReleaseTempRenderTarget(tempRenderTarget);
            }
            if (this.m_bokehFilter.ApplyBokeh && this.m_bokehFilter.ApplyOnBloomSource)
            {
                this.m_bokehFilter.ApplyBokehFilter(renderTexture3, this.m_bloomMaterial);
                if (this.m_debugToScreen == DebugToScreenEnum.BokehFilter)
                {
                    Graphics.Blit(renderTexture3, dest);
                    AmplifyUtils.ReleaseAllRT();
                    return;
                }
            }
            bool          flag3 = false;
            RenderTexture renderTexture4;

            if (this.m_separateFeaturesThreshold)
            {
                this.m_bloomParams.y = this.m_featuresThreshold;
                this.m_bloomMaterial.SetVector(AmplifyUtils.BloomParamsId, this.m_bloomParams);
                this.m_finalCompositionMaterial.SetVector(AmplifyUtils.BloomParamsId, this.m_bloomParams);
                renderTexture4 = AmplifyUtils.GetTempRenderTarget(renderTexture3.width, renderTexture3.height);
                flag3          = true;
                Graphics.Blit(renderTexture3, renderTexture4, this.m_bloomMaterial, 0);
                if (this.m_debugToScreen == DebugToScreenEnum.FeaturesThreshold)
                {
                    Graphics.Blit(renderTexture4, dest);
                    AmplifyUtils.ReleaseAllRT();
                    return;
                }
            }
            else
            {
                renderTexture4 = renderTexture3;
            }
            if (this.m_bokehFilter.ApplyBokeh && !this.m_bokehFilter.ApplyOnBloomSource)
            {
                if (!flag3)
                {
                    flag3          = true;
                    renderTexture4 = AmplifyUtils.GetTempRenderTarget(renderTexture3.width, renderTexture3.height);
                    Graphics.Blit(renderTexture3, renderTexture4);
                }
                this.m_bokehFilter.ApplyBokehFilter(renderTexture4, this.m_bloomMaterial);
                if (this.m_debugToScreen == DebugToScreenEnum.BokehFilter)
                {
                    Graphics.Blit(renderTexture4, dest);
                    AmplifyUtils.ReleaseAllRT();
                    return;
                }
            }
            if (this.m_lensFlare.ApplyLensFlare && this.m_debugToScreen != DebugToScreenEnum.Bloom)
            {
                renderTexture = this.m_lensFlare.ApplyFlare(this.m_bloomMaterial, renderTexture4);
                this.ApplyGaussianBlur(renderTexture, this.m_lensFlare.LensFlareGaussianBlurAmount, 1f, false);
                if (this.m_debugToScreen == DebugToScreenEnum.LensFlare)
                {
                    Graphics.Blit(renderTexture, dest);
                    AmplifyUtils.ReleaseAllRT();
                    return;
                }
            }
            if (this.m_anamorphicGlare.ApplyLensGlare && this.m_debugToScreen != DebugToScreenEnum.Bloom)
            {
                renderTexture2 = AmplifyUtils.GetTempRenderTarget(renderTexture3.width, renderTexture3.height);
                this.m_anamorphicGlare.OnRenderImage(this.m_bloomMaterial, renderTexture4, renderTexture2, num);
                if (this.m_debugToScreen == DebugToScreenEnum.LensGlare)
                {
                    Graphics.Blit(renderTexture2, dest);
                    AmplifyUtils.ReleaseAllRT();
                    return;
                }
            }
            if (flag3)
            {
                AmplifyUtils.ReleaseTempRenderTarget(renderTexture4);
            }
            if (flag)
            {
                this.ApplyGaussianBlur(renderTexture3, this.m_gaussianSteps[0], this.m_gaussianRadius[0], false);
            }
            if (this.m_bloomDownsampleCount > 0)
            {
                if (this.m_bloomDownsampleCount == 1)
                {
                    if (this.m_upscaleQuality == UpscaleQualityEnum.Realistic)
                    {
                        this.ApplyUpscale();
                        this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.MipResultsRTS[0], this.m_tempUpscaleRTs[0]);
                    }
                    else
                    {
                        this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.MipResultsRTS[0], this.m_tempAuxDownsampleRTs[0]);
                    }
                    this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.UpscaleWeightsStr[0], this.m_upscaleWeights[0]);
                }
                else if (this.m_upscaleQuality == UpscaleQualityEnum.Realistic)
                {
                    this.ApplyUpscale();
                    for (int j = 0; j < this.m_bloomDownsampleCount; j++)
                    {
                        int num5 = this.m_bloomDownsampleCount - j - 1;
                        this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.MipResultsRTS[num5], this.m_tempUpscaleRTs[j]);
                        this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.UpscaleWeightsStr[num5], this.m_upscaleWeights[j]);
                    }
                }
                else
                {
                    for (int k = 0; k < this.m_bloomDownsampleCount; k++)
                    {
                        int num6 = this.m_bloomDownsampleCount - 1 - k;
                        this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.MipResultsRTS[num6], this.m_tempAuxDownsampleRTs[num6]);
                        this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.UpscaleWeightsStr[num6], this.m_upscaleWeights[k]);
                    }
                }
            }
            else
            {
                this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.MipResultsRTS[0], renderTexture3);
                this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.UpscaleWeightsStr[0], 1f);
            }
            if (this.m_debugToScreen == DebugToScreenEnum.Bloom)
            {
                this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.SourceContributionId, 0f);
                this.FinalComposition(0f, 1f, src, dest, 0);
                return;
            }
            if (this.m_bloomDownsampleCount > 1)
            {
                for (int l = 0; l < this.m_bloomDownsampleCount; l++)
                {
                    this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensDirtWeightsStr[this.m_bloomDownsampleCount - l - 1], this.m_lensDirtWeights[l]);
                    this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensStarburstWeightsStr[this.m_bloomDownsampleCount - l - 1], this.m_lensStarburstWeights[l]);
                }
            }
            else
            {
                this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensDirtWeightsStr[0], this.m_lensDirtWeights[0]);
                this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensStarburstWeightsStr[0], this.m_lensStarburstWeights[0]);
            }
            if (this.m_lensFlare.ApplyLensFlare)
            {
                this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.LensFlareRTId, renderTexture);
            }
            if (this.m_anamorphicGlare.ApplyLensGlare)
            {
                this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.LensGlareRTId, renderTexture2);
            }
            if (this.m_applyLensDirt)
            {
                this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.LensDirtRTId, this.m_lensDirtTexture);
                this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensDirtStrengthId, this.m_lensDirtStrength * 1f);
                if (this.m_debugToScreen == DebugToScreenEnum.LensDirt)
                {
                    this.FinalComposition(0f, 0f, src, dest, 2);
                    return;
                }
            }
            if (this.m_applyLensStardurst)
            {
                this.m_starburstMat[0, 0] = Mathf.Cos(num);
                this.m_starburstMat[0, 1] = -Mathf.Sin(num);
                this.m_starburstMat[1, 0] = Mathf.Sin(num);
                this.m_starburstMat[1, 1] = Mathf.Cos(num);
                this.m_finalCompositionMaterial.SetMatrix(AmplifyUtils.LensFlareStarMatrixId, this.m_starburstMat);
                this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensFlareStarburstStrengthId, this.m_lensStarburstStrength * 1f);
                this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.LensStarburstRTId, this.m_lensStardurstTex);
                if (this.m_debugToScreen == DebugToScreenEnum.LensStarburst)
                {
                    this.FinalComposition(0f, 0f, src, dest, 1);
                    return;
                }
            }
            if (this.m_targetTexture != null)
            {
                this.m_targetTexture.DiscardContents();
                this.FinalComposition(0f, 1f, src, this.m_targetTexture, -1);
                Graphics.Blit(src, dest);
            }
            else
            {
                this.FinalComposition(1f, 1f, src, dest, -1);
            }
        }
コード例 #2
0
 private void OnRenderImage(RenderTexture src, RenderTexture dest)
 {
     if (!this.silentError)
     {
         if (!AmplifyUtils.IsInitialized)
         {
             AmplifyUtils.InitializeIds();
         }
         if (this.m_highPrecision)
         {
             AmplifyUtils.EnsureKeywordEnabled(this.m_bloomMaterial, AmplifyUtils.HighPrecisionKeyword, true);
             AmplifyUtils.EnsureKeywordEnabled(this.m_finalCompositionMaterial, AmplifyUtils.HighPrecisionKeyword, true);
             AmplifyUtils.CurrentRTFormat = RenderTextureFormat.DefaultHDR;
         }
         else
         {
             AmplifyUtils.EnsureKeywordEnabled(this.m_bloomMaterial, AmplifyUtils.HighPrecisionKeyword, false);
             AmplifyUtils.EnsureKeywordEnabled(this.m_finalCompositionMaterial, AmplifyUtils.HighPrecisionKeyword, false);
             AmplifyUtils.CurrentRTFormat = RenderTextureFormat.Default;
         }
         float cameraRot = Mathf.Acos(Vector3.Dot(this.m_cameraTransform.right, Vector3.right));
         if (Vector3.Cross(this.m_cameraTransform.right, Vector3.right).y > 0f)
         {
             cameraRot = -cameraRot;
         }
         RenderTexture renderTexture = null;
         RenderTexture texture2      = null;
         if (!this.m_highPrecision)
         {
             this.m_bloomRange.y = 1f / this.m_bloomRange.x;
             this.m_bloomMaterial.SetVector(AmplifyUtils.BloomRangeId, this.m_bloomRange);
             this.m_finalCompositionMaterial.SetVector(AmplifyUtils.BloomRangeId, this.m_bloomRange);
         }
         this.m_bloomParams.y = this.m_overallThreshold;
         this.m_bloomMaterial.SetVector(AmplifyUtils.BloomParamsId, this.m_bloomParams);
         this.m_finalCompositionMaterial.SetVector(AmplifyUtils.BloomParamsId, this.m_bloomParams);
         int num2 = 1;
         MainThresholdSizeEnum mainThresholdSize = this.m_mainThresholdSize;
         if (mainThresholdSize == MainThresholdSizeEnum.Half)
         {
             num2 = 2;
         }
         else if (mainThresholdSize == MainThresholdSizeEnum.Quarter)
         {
             num2 = 4;
         }
         RenderTexture tempRenderTarget = AmplifyUtils.GetTempRenderTarget(src.width / num2, src.height / num2);
         if (this.m_maskTexture == null)
         {
             Graphics.Blit(src, tempRenderTarget, this.m_bloomMaterial, 0);
         }
         else
         {
             this.m_bloomMaterial.SetTexture(AmplifyUtils.MaskTextureId, this.m_maskTexture);
             Graphics.Blit(src, tempRenderTarget, this.m_bloomMaterial, 1);
         }
         if (this.m_debugToScreen == DebugToScreenEnum.MainThreshold)
         {
             Graphics.Blit(tempRenderTarget, dest, this.m_bloomMaterial, 0x21);
             AmplifyUtils.ReleaseAllRT();
         }
         else
         {
             bool          flag   = true;
             RenderTexture source = tempRenderTarget;
             if (this.m_bloomDownsampleCount > 0)
             {
                 flag = false;
                 int width  = tempRenderTarget.width;
                 int height = tempRenderTarget.height;
                 int index  = 0;
                 while (true)
                 {
                     if (index >= this.m_bloomDownsampleCount)
                     {
                         source = this.m_tempAuxDownsampleRTs[this.m_featuresSourceId];
                         AmplifyUtils.ReleaseTempRenderTarget(tempRenderTarget);
                         break;
                     }
                     this.m_tempDownsamplesSizes[index].x = width;
                     this.m_tempDownsamplesSizes[index].y = height;
                     width  = (width + 1) >> 1;
                     height = (height + 1) >> 1;
                     this.m_tempAuxDownsampleRTs[index] = AmplifyUtils.GetTempRenderTarget(width, height);
                     if (index != 0)
                     {
                         Graphics.Blit(this.m_tempAuxDownsampleRTs[index - 1], this.m_tempAuxDownsampleRTs[index], this.m_bloomMaterial, 9);
                     }
                     else if (!this.m_temporalFilteringActive || (this.m_gaussianSteps[index] != 0))
                     {
                         if (this.m_upscaleQuality == UpscaleQualityEnum.Realistic)
                         {
                             Graphics.Blit(source, this.m_tempAuxDownsampleRTs[index], this.m_bloomMaterial, 10);
                         }
                         else
                         {
                             Graphics.Blit(source, this.m_tempAuxDownsampleRTs[index], this.m_bloomMaterial, 11);
                         }
                     }
                     else
                     {
                         if ((this.m_tempFilterBuffer == null) || !this.m_temporalFilteringActive)
                         {
                             if (this.m_upscaleQuality == UpscaleQualityEnum.Realistic)
                             {
                                 Graphics.Blit(source, this.m_tempAuxDownsampleRTs[index], this.m_bloomMaterial, 10);
                             }
                             else
                             {
                                 Graphics.Blit(source, this.m_tempAuxDownsampleRTs[index], this.m_bloomMaterial, 11);
                             }
                         }
                         else
                         {
                             float num6 = this.m_temporalFilteringCurve.Evaluate(this.m_temporalFilteringValue);
                             this.m_bloomMaterial.SetFloat(AmplifyUtils.TempFilterValueId, num6);
                             this.m_bloomMaterial.SetTexture(AmplifyUtils.AnamorphicRTS[0], this.m_tempFilterBuffer);
                             if (this.m_upscaleQuality == UpscaleQualityEnum.Realistic)
                             {
                                 Graphics.Blit(source, this.m_tempAuxDownsampleRTs[index], this.m_bloomMaterial, 12);
                             }
                             else
                             {
                                 Graphics.Blit(source, this.m_tempAuxDownsampleRTs[index], this.m_bloomMaterial, 13);
                             }
                         }
                         bool flag2 = false;
                         if (this.m_tempFilterBuffer == null)
                         {
                             flag2 = true;
                         }
                         else if ((this.m_tempFilterBuffer.format != this.m_tempAuxDownsampleRTs[index].format) || ((this.m_tempFilterBuffer.width != this.m_tempAuxDownsampleRTs[index].width) || (this.m_tempFilterBuffer.height != this.m_tempAuxDownsampleRTs[index].height)))
                         {
                             this.CleanTempFilterRT();
                             flag2 = true;
                         }
                         if (flag2)
                         {
                             this.CreateTempFilterRT(this.m_tempAuxDownsampleRTs[index]);
                         }
                         this.m_tempFilterBuffer.DiscardContents();
                         Graphics.Blit(this.m_tempAuxDownsampleRTs[index], this.m_tempFilterBuffer);
                         if (this.m_debugToScreen == DebugToScreenEnum.TemporalFilter)
                         {
                             Graphics.Blit(this.m_tempAuxDownsampleRTs[index], dest);
                             AmplifyUtils.ReleaseAllRT();
                             return;
                         }
                     }
                     if (this.m_gaussianSteps[index] > 0)
                     {
                         this.ApplyGaussianBlur(this.m_tempAuxDownsampleRTs[index], this.m_gaussianSteps[index], this.m_gaussianRadius[index], index == 0);
                         if (this.m_temporalFilteringActive && (this.m_debugToScreen == DebugToScreenEnum.TemporalFilter))
                         {
                             Graphics.Blit(this.m_tempAuxDownsampleRTs[index], dest);
                             AmplifyUtils.ReleaseAllRT();
                             return;
                         }
                     }
                     index++;
                 }
             }
             if (this.m_bokehFilter.ApplyBokeh && this.m_bokehFilter.ApplyOnBloomSource)
             {
                 this.m_bokehFilter.ApplyBokehFilter(source, this.m_bloomMaterial);
                 if (this.m_debugToScreen == DebugToScreenEnum.BokehFilter)
                 {
                     Graphics.Blit(source, dest);
                     AmplifyUtils.ReleaseAllRT();
                     return;
                 }
             }
             RenderTexture texture5 = null;
             bool          flag3    = false;
             if (!this.m_separateFeaturesThreshold)
             {
                 texture5 = source;
             }
             else
             {
                 this.m_bloomParams.y = this.m_featuresThreshold;
                 this.m_bloomMaterial.SetVector(AmplifyUtils.BloomParamsId, this.m_bloomParams);
                 this.m_finalCompositionMaterial.SetVector(AmplifyUtils.BloomParamsId, this.m_bloomParams);
                 texture5 = AmplifyUtils.GetTempRenderTarget(source.width, source.height);
                 flag3    = true;
                 Graphics.Blit(source, texture5, this.m_bloomMaterial, 0);
                 if (this.m_debugToScreen == DebugToScreenEnum.FeaturesThreshold)
                 {
                     Graphics.Blit(texture5, dest);
                     AmplifyUtils.ReleaseAllRT();
                     return;
                 }
             }
             if (this.m_bokehFilter.ApplyBokeh && !this.m_bokehFilter.ApplyOnBloomSource)
             {
                 if (!flag3)
                 {
                     flag3    = true;
                     texture5 = AmplifyUtils.GetTempRenderTarget(source.width, source.height);
                     Graphics.Blit(source, texture5);
                 }
                 this.m_bokehFilter.ApplyBokehFilter(texture5, this.m_bloomMaterial);
                 if (this.m_debugToScreen == DebugToScreenEnum.BokehFilter)
                 {
                     Graphics.Blit(texture5, dest);
                     AmplifyUtils.ReleaseAllRT();
                     return;
                 }
             }
             if (this.m_lensFlare.ApplyLensFlare && (this.m_debugToScreen != DebugToScreenEnum.Bloom))
             {
                 renderTexture = this.m_lensFlare.ApplyFlare(this.m_bloomMaterial, texture5);
                 this.ApplyGaussianBlur(renderTexture, this.m_lensFlare.LensFlareGaussianBlurAmount, 1f, false);
                 if (this.m_debugToScreen == DebugToScreenEnum.LensFlare)
                 {
                     Graphics.Blit(renderTexture, dest);
                     AmplifyUtils.ReleaseAllRT();
                     return;
                 }
             }
             if (this.m_anamorphicGlare.ApplyLensGlare && (this.m_debugToScreen != DebugToScreenEnum.Bloom))
             {
                 texture2 = AmplifyUtils.GetTempRenderTarget(source.width, source.height);
                 this.m_anamorphicGlare.OnRenderImage(this.m_bloomMaterial, texture5, texture2, cameraRot);
                 if (this.m_debugToScreen == DebugToScreenEnum.LensGlare)
                 {
                     Graphics.Blit(texture2, dest);
                     AmplifyUtils.ReleaseAllRT();
                     return;
                 }
             }
             if (flag3)
             {
                 AmplifyUtils.ReleaseTempRenderTarget(texture5);
             }
             if (flag)
             {
                 this.ApplyGaussianBlur(source, this.m_gaussianSteps[0], this.m_gaussianRadius[0], false);
             }
             if (this.m_bloomDownsampleCount <= 0)
             {
                 this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.MipResultsRTS[0], source);
                 this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.UpscaleWeightsStr[0], 1f);
             }
             else if (this.m_bloomDownsampleCount == 1)
             {
                 if (this.m_upscaleQuality != UpscaleQualityEnum.Realistic)
                 {
                     this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.MipResultsRTS[0], this.m_tempAuxDownsampleRTs[0]);
                 }
                 else
                 {
                     this.ApplyUpscale();
                     this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.MipResultsRTS[0], this.m_tempUpscaleRTs[0]);
                 }
                 this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.UpscaleWeightsStr[0], this.m_upscaleWeights[0]);
             }
             else if (this.m_upscaleQuality != UpscaleQualityEnum.Realistic)
             {
                 for (int i = 0; i < this.m_bloomDownsampleCount; i++)
                 {
                     int index = (this.m_bloomDownsampleCount - 1) - i;
                     this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.MipResultsRTS[index], this.m_tempAuxDownsampleRTs[index]);
                     this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.UpscaleWeightsStr[index], this.m_upscaleWeights[i]);
                 }
             }
             else
             {
                 this.ApplyUpscale();
                 for (int i = 0; i < this.m_bloomDownsampleCount; i++)
                 {
                     int index = (this.m_bloomDownsampleCount - i) - 1;
                     this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.MipResultsRTS[index], this.m_tempUpscaleRTs[i]);
                     this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.UpscaleWeightsStr[index], this.m_upscaleWeights[i]);
                 }
             }
             if (this.m_debugToScreen == DebugToScreenEnum.Bloom)
             {
                 this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.SourceContributionId, 0f);
                 this.FinalComposition(0f, 1f, src, dest, 0);
             }
             else
             {
                 if (this.m_bloomDownsampleCount <= 1)
                 {
                     this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensDirtWeightsStr[0], this.m_lensDirtWeights[0]);
                     this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensStarburstWeightsStr[0], this.m_lensStarburstWeights[0]);
                 }
                 else
                 {
                     for (int i = 0; i < this.m_bloomDownsampleCount; i++)
                     {
                         this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensDirtWeightsStr[(this.m_bloomDownsampleCount - i) - 1], this.m_lensDirtWeights[i]);
                         this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensStarburstWeightsStr[(this.m_bloomDownsampleCount - i) - 1], this.m_lensStarburstWeights[i]);
                     }
                 }
                 if (this.m_lensFlare.ApplyLensFlare)
                 {
                     this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.LensFlareRTId, renderTexture);
                 }
                 if (this.m_anamorphicGlare.ApplyLensGlare)
                 {
                     this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.LensGlareRTId, texture2);
                 }
                 if (this.m_applyLensDirt)
                 {
                     this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.LensDirtRTId, this.m_lensDirtTexture);
                     this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensDirtStrengthId, this.m_lensDirtStrength * 1f);
                     if (this.m_debugToScreen == DebugToScreenEnum.LensDirt)
                     {
                         this.FinalComposition(0f, 0f, src, dest, 2);
                         return;
                     }
                 }
                 if (this.m_applyLensStardurst)
                 {
                     this.m_starburstMat[0, 0] = Mathf.Cos(cameraRot);
                     this.m_starburstMat[0, 1] = -Mathf.Sin(cameraRot);
                     this.m_starburstMat[1, 0] = Mathf.Sin(cameraRot);
                     this.m_starburstMat[1, 1] = Mathf.Cos(cameraRot);
                     this.m_finalCompositionMaterial.SetMatrix(AmplifyUtils.LensFlareStarMatrixId, this.m_starburstMat);
                     this.m_finalCompositionMaterial.SetFloat(AmplifyUtils.LensFlareStarburstStrengthId, this.m_lensStarburstStrength * 1f);
                     this.m_finalCompositionMaterial.SetTexture(AmplifyUtils.LensStarburstRTId, this.m_lensStardurstTex);
                     if (this.m_debugToScreen == DebugToScreenEnum.LensStarburst)
                     {
                         this.FinalComposition(0f, 0f, src, dest, 1);
                         return;
                     }
                 }
                 if (this.m_targetTexture == null)
                 {
                     this.FinalComposition(1f, 1f, src, dest, -1);
                 }
                 else
                 {
                     this.m_targetTexture.DiscardContents();
                     this.FinalComposition(0f, 1f, src, this.m_targetTexture, -1);
                     Graphics.Blit(src, dest);
                 }
             }
         }
     }
 }