From a10eea6e4ce647061813519d5b0ea496f29495b9 Mon Sep 17 00:00:00 2001
From: leonard Wu <364452445@qq.com>
Date: 星期四, 09 八月 2018 09:47:08 +0800
Subject: [PATCH] 同步最新svn内容

---
 Assets/Plugins/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs |  370 ++++++++++++++++++++++++++--------------------------
 1 files changed, 185 insertions(+), 185 deletions(-)

diff --git a/Assets/Plugins/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs b/Assets/Plugins/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs
index 45ca0bb..5c012d0 100644
--- a/Assets/Plugins/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs
+++ b/Assets/Plugins/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs
@@ -1,185 +1,185 @@
-using UnityEngine.Rendering;
-
-namespace UnityEngine.PostProcessing
-{
-    using DebugMode = BuiltinDebugViewsModel.Mode;
-
-    public sealed class AmbientOcclusionComponent : PostProcessingComponentCommandBuffer<AmbientOcclusionModel>
-    {
-        static class Uniforms
-        {
-            internal static readonly int _Intensity         = Shader.PropertyToID("_Intensity");
-            internal static readonly int _Radius            = Shader.PropertyToID("_Radius");
-            internal static readonly int _FogParams         = Shader.PropertyToID("_FogParams");
-            internal static readonly int _Downsample        = Shader.PropertyToID("_Downsample");
-            internal static readonly int _SampleCount       = Shader.PropertyToID("_SampleCount");
-            internal static readonly int _OcclusionTexture1 = Shader.PropertyToID("_OcclusionTexture1");
-            internal static readonly int _OcclusionTexture2 = Shader.PropertyToID("_OcclusionTexture2");
-            internal static readonly int _OcclusionTexture  = Shader.PropertyToID("_OcclusionTexture");
-            internal static readonly int _MainTex           = Shader.PropertyToID("_MainTex");
-            internal static readonly int _TempRT            = Shader.PropertyToID("_TempRT");
-        }
-
-        const string k_BlitShaderString = "Hidden/Post FX/Blit";
-        const string k_ShaderString = "Hidden/Post FX/Ambient Occlusion";
-
-        readonly RenderTargetIdentifier[] m_MRT =
-        {
-            BuiltinRenderTextureType.GBuffer0, // Albedo, Occ
-            BuiltinRenderTextureType.CameraTarget // Ambient
-        };
-
-        enum OcclusionSource
-        {
-            DepthTexture,
-            DepthNormalsTexture,
-            GBuffer
-        }
-
-        OcclusionSource occlusionSource
-        {
-            get
-            {
-                if (context.isGBufferAvailable && !model.settings.forceForwardCompatibility)
-                    return OcclusionSource.GBuffer;
-
-                if (model.settings.highPrecision && (!context.isGBufferAvailable || model.settings.forceForwardCompatibility))
-                    return OcclusionSource.DepthTexture;
-
-                return OcclusionSource.DepthNormalsTexture;
-            }
-        }
-
-        bool ambientOnlySupported
-        {
-            get { return context.isHdr && model.settings.ambientOnly && context.isGBufferAvailable && !model.settings.forceForwardCompatibility; }
-        }
-
-        public override bool active
-        {
-            get
-            {
-                return model.enabled
-                       && model.settings.intensity > 0f
-                       && !context.interrupted;
-            }
-        }
-
-        public override DepthTextureMode GetCameraFlags()
-        {
-            var flags = DepthTextureMode.None;
-
-            if (occlusionSource == OcclusionSource.DepthTexture)
-                flags |= DepthTextureMode.Depth;
-
-            if (occlusionSource != OcclusionSource.GBuffer)
-                flags |= DepthTextureMode.DepthNormals;
-
-            return flags;
-        }
-
-        public override string GetName()
-        {
-            return "Ambient Occlusion";
-        }
-
-        public override CameraEvent GetCameraEvent()
-        {
-            return ambientOnlySupported && !context.profile.debugViews.IsModeActive(DebugMode.AmbientOcclusion)
-                   ? CameraEvent.BeforeReflections
-                   : CameraEvent.BeforeImageEffectsOpaque;
-        }
-
-        public override void PopulateCommandBuffer(CommandBuffer cb)
-        {
-            var settings = model.settings;
-
-            // Material setup
-            var blitMaterial = context.materialFactory.Get(k_BlitShaderString);
-
-            var material = context.materialFactory.Get(k_ShaderString);
-            material.shaderKeywords = null;
-            material.SetFloat(Uniforms._Intensity, settings.intensity);
-            material.SetFloat(Uniforms._Radius, settings.radius);
-            material.SetFloat(Uniforms._Downsample, settings.downsampling ? 0.5f : 1f);
-            material.SetInt(Uniforms._SampleCount, (int)settings.sampleCount);
-
-            if (!context.isGBufferAvailable && RenderSettings.fog)
-            {
-                material.SetVector(Uniforms._FogParams, new Vector3(RenderSettings.fogDensity, RenderSettings.fogStartDistance, RenderSettings.fogEndDistance));
-
-                switch (RenderSettings.fogMode)
-                {
-                    case FogMode.Linear:
-                        material.EnableKeyword("FOG_LINEAR");
-                        break;
-                    case FogMode.Exponential:
-                        material.EnableKeyword("FOG_EXP");
-                        break;
-                    case FogMode.ExponentialSquared:
-                        material.EnableKeyword("FOG_EXP2");
-                        break;
-                }
-            }
-            else
-            {
-                material.EnableKeyword("FOG_OFF");
-            }
-
-            int tw = context.width;
-            int th = context.height;
-            int ts = settings.downsampling ? 2 : 1;
-            const RenderTextureFormat kFormat = RenderTextureFormat.ARGB32;
-            const RenderTextureReadWrite kRWMode = RenderTextureReadWrite.Linear;
-            const FilterMode kFilter = FilterMode.Bilinear;
-
-            // AO buffer
-            var rtMask = Uniforms._OcclusionTexture1;
-            cb.GetTemporaryRT(rtMask, tw / ts, th / ts, 0, kFilter, kFormat, kRWMode);
-
-            // AO estimation
-            cb.Blit((Texture)null, rtMask, material, (int)occlusionSource);
-
-            // Blur buffer
-            var rtBlur = Uniforms._OcclusionTexture2;
-
-            // Separable blur (horizontal pass)
-            cb.GetTemporaryRT(rtBlur, tw, th, 0, kFilter, kFormat, kRWMode);
-            cb.SetGlobalTexture(Uniforms._MainTex, rtMask);
-            cb.Blit(rtMask, rtBlur, material, occlusionSource == OcclusionSource.GBuffer ? 4 : 3);
-            cb.ReleaseTemporaryRT(rtMask);
-
-            // Separable blur (vertical pass)
-            rtMask = Uniforms._OcclusionTexture;
-            cb.GetTemporaryRT(rtMask, tw, th, 0, kFilter, kFormat, kRWMode);
-            cb.SetGlobalTexture(Uniforms._MainTex, rtBlur);
-            cb.Blit(rtBlur, rtMask, material, 5);
-            cb.ReleaseTemporaryRT(rtBlur);
-
-            if (context.profile.debugViews.IsModeActive(DebugMode.AmbientOcclusion))
-            {
-                cb.SetGlobalTexture(Uniforms._MainTex, rtMask);
-                cb.Blit(rtMask, BuiltinRenderTextureType.CameraTarget, material, 8);
-                context.Interrupt();
-            }
-            else if (ambientOnlySupported)
-            {
-                cb.SetRenderTarget(m_MRT, BuiltinRenderTextureType.CameraTarget);
-                cb.DrawMesh(GraphicsUtils.quad, Matrix4x4.identity, material, 0, 7);
-            }
-            else
-            {
-                var fbFormat = context.isHdr ? RenderTextureFormat.DefaultHDR : RenderTextureFormat.Default;
-
-                int tempRT = Uniforms._TempRT;
-                cb.GetTemporaryRT(tempRT, context.width, context.height, 0, FilterMode.Bilinear, fbFormat);
-                cb.Blit(BuiltinRenderTextureType.CameraTarget, tempRT, blitMaterial, 0);
-                cb.SetGlobalTexture(Uniforms._MainTex, tempRT);
-                cb.Blit(tempRT, BuiltinRenderTextureType.CameraTarget, material, 6);
-                cb.ReleaseTemporaryRT(tempRT);
-            }
-
-            cb.ReleaseTemporaryRT(rtMask);
-        }
-    }
-}
+using UnityEngine.Rendering;
+
+namespace UnityEngine.PostProcessing
+{
+    using DebugMode = BuiltinDebugViewsModel.Mode;
+
+    public sealed class AmbientOcclusionComponent : PostProcessingComponentCommandBuffer<AmbientOcclusionModel>
+    {
+        static class Uniforms
+        {
+            internal static readonly int _Intensity         = Shader.PropertyToID("_Intensity");
+            internal static readonly int _Radius            = Shader.PropertyToID("_Radius");
+            internal static readonly int _FogParams         = Shader.PropertyToID("_FogParams");
+            internal static readonly int _Downsample        = Shader.PropertyToID("_Downsample");
+            internal static readonly int _SampleCount       = Shader.PropertyToID("_SampleCount");
+            internal static readonly int _OcclusionTexture1 = Shader.PropertyToID("_OcclusionTexture1");
+            internal static readonly int _OcclusionTexture2 = Shader.PropertyToID("_OcclusionTexture2");
+            internal static readonly int _OcclusionTexture  = Shader.PropertyToID("_OcclusionTexture");
+            internal static readonly int _MainTex           = Shader.PropertyToID("_MainTex");
+            internal static readonly int _TempRT            = Shader.PropertyToID("_TempRT");
+        }
+
+        const string k_BlitShaderString = "Hidden/Post FX/Blit";
+        const string k_ShaderString = "Hidden/Post FX/Ambient Occlusion";
+
+        readonly RenderTargetIdentifier[] m_MRT =
+        {
+            BuiltinRenderTextureType.GBuffer0, // Albedo, Occ
+            BuiltinRenderTextureType.CameraTarget // Ambient
+        };
+
+        enum OcclusionSource
+        {
+            DepthTexture,
+            DepthNormalsTexture,
+            GBuffer
+        }
+
+        OcclusionSource occlusionSource
+        {
+            get
+            {
+                if (context.isGBufferAvailable && !model.settings.forceForwardCompatibility)
+                    return OcclusionSource.GBuffer;
+
+                if (model.settings.highPrecision && (!context.isGBufferAvailable || model.settings.forceForwardCompatibility))
+                    return OcclusionSource.DepthTexture;
+
+                return OcclusionSource.DepthNormalsTexture;
+            }
+        }
+
+        bool ambientOnlySupported
+        {
+            get { return context.isHdr && model.settings.ambientOnly && context.isGBufferAvailable && !model.settings.forceForwardCompatibility; }
+        }
+
+        public override bool active
+        {
+            get
+            {
+                return model.enabled
+                       && model.settings.intensity > 0f
+                       && !context.interrupted;
+            }
+        }
+
+        public override DepthTextureMode GetCameraFlags()
+        {
+            var flags = DepthTextureMode.None;
+
+            if (occlusionSource == OcclusionSource.DepthTexture)
+                flags |= DepthTextureMode.Depth;
+
+            if (occlusionSource != OcclusionSource.GBuffer)
+                flags |= DepthTextureMode.DepthNormals;
+
+            return flags;
+        }
+
+        public override string GetName()
+        {
+            return "Ambient Occlusion";
+        }
+
+        public override CameraEvent GetCameraEvent()
+        {
+            return ambientOnlySupported && !context.profile.debugViews.IsModeActive(DebugMode.AmbientOcclusion)
+                   ? CameraEvent.BeforeReflections
+                   : CameraEvent.BeforeImageEffectsOpaque;
+        }
+
+        public override void PopulateCommandBuffer(CommandBuffer cb)
+        {
+            var settings = model.settings;
+
+            // Material setup
+            var blitMaterial = context.materialFactory.Get(k_BlitShaderString);
+
+            var material = context.materialFactory.Get(k_ShaderString);
+            material.shaderKeywords = null;
+            material.SetFloat(Uniforms._Intensity, settings.intensity);
+            material.SetFloat(Uniforms._Radius, settings.radius);
+            material.SetFloat(Uniforms._Downsample, settings.downsampling ? 0.5f : 1f);
+            material.SetInt(Uniforms._SampleCount, (int)settings.sampleCount);
+
+            if (!context.isGBufferAvailable && RenderSettings.fog)
+            {
+                material.SetVector(Uniforms._FogParams, new Vector3(RenderSettings.fogDensity, RenderSettings.fogStartDistance, RenderSettings.fogEndDistance));
+
+                switch (RenderSettings.fogMode)
+                {
+                    case FogMode.Linear:
+                        material.EnableKeyword("FOG_LINEAR");
+                        break;
+                    case FogMode.Exponential:
+                        material.EnableKeyword("FOG_EXP");
+                        break;
+                    case FogMode.ExponentialSquared:
+                        material.EnableKeyword("FOG_EXP2");
+                        break;
+                }
+            }
+            else
+            {
+                material.EnableKeyword("FOG_OFF");
+            }
+
+            int tw = context.width;
+            int th = context.height;
+            int ts = settings.downsampling ? 2 : 1;
+            const RenderTextureFormat kFormat = RenderTextureFormat.ARGB32;
+            const RenderTextureReadWrite kRWMode = RenderTextureReadWrite.Linear;
+            const FilterMode kFilter = FilterMode.Bilinear;
+
+            // AO buffer
+            var rtMask = Uniforms._OcclusionTexture1;
+            cb.GetTemporaryRT(rtMask, tw / ts, th / ts, 0, kFilter, kFormat, kRWMode);
+
+            // AO estimation
+            cb.Blit((Texture)null, rtMask, material, (int)occlusionSource);
+
+            // Blur buffer
+            var rtBlur = Uniforms._OcclusionTexture2;
+
+            // Separable blur (horizontal pass)
+            cb.GetTemporaryRT(rtBlur, tw, th, 0, kFilter, kFormat, kRWMode);
+            cb.SetGlobalTexture(Uniforms._MainTex, rtMask);
+            cb.Blit(rtMask, rtBlur, material, occlusionSource == OcclusionSource.GBuffer ? 4 : 3);
+            cb.ReleaseTemporaryRT(rtMask);
+
+            // Separable blur (vertical pass)
+            rtMask = Uniforms._OcclusionTexture;
+            cb.GetTemporaryRT(rtMask, tw, th, 0, kFilter, kFormat, kRWMode);
+            cb.SetGlobalTexture(Uniforms._MainTex, rtBlur);
+            cb.Blit(rtBlur, rtMask, material, 5);
+            cb.ReleaseTemporaryRT(rtBlur);
+
+            if (context.profile.debugViews.IsModeActive(DebugMode.AmbientOcclusion))
+            {
+                cb.SetGlobalTexture(Uniforms._MainTex, rtMask);
+                cb.Blit(rtMask, BuiltinRenderTextureType.CameraTarget, material, 8);
+                context.Interrupt();
+            }
+            else if (ambientOnlySupported)
+            {
+                cb.SetRenderTarget(m_MRT, BuiltinRenderTextureType.CameraTarget);
+                cb.DrawMesh(GraphicsUtils.quad, Matrix4x4.identity, material, 0, 7);
+            }
+            else
+            {
+                var fbFormat = context.isHdr ? RenderTextureFormat.DefaultHDR : RenderTextureFormat.Default;
+
+                int tempRT = Uniforms._TempRT;
+                cb.GetTemporaryRT(tempRT, context.width, context.height, 0, FilterMode.Bilinear, fbFormat);
+                cb.Blit(BuiltinRenderTextureType.CameraTarget, tempRT, blitMaterial, 0);
+                cb.SetGlobalTexture(Uniforms._MainTex, tempRT);
+                cb.Blit(tempRT, BuiltinRenderTextureType.CameraTarget, material, 6);
+                cb.ReleaseTemporaryRT(tempRT);
+            }
+
+            cb.ReleaseTemporaryRT(rtMask);
+        }
+    }
+}

--
Gitblit v1.8.0