From fcf75b92880eaaabc1ccd1a9f3a32de21e9add97 Mon Sep 17 00:00:00 2001 From: Pavlos Mavridis Date: Thu, 2 Jul 2020 16:30:44 +0200 Subject: [PATCH 1/2] Kee SSR disabled when motion vectors are off --- .../Editor/RenderPipeline/HDRenderPipelineUI.cs | 7 ++++++- .../Runtime/RenderPipeline/Settings/FrameSettings.cs | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs index 7f5f0860b7b..da1b7fa8dff 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs @@ -238,7 +238,12 @@ static void Drawer_SectionCookies(SerializedHDRenderPipelineAsset serialized, Ed static void Drawer_SectionReflection(SerializedHDRenderPipelineAsset serialized, Editor owner) { - EditorGUILayout.PropertyField(serialized.renderPipelineSettings.supportSSR, Styles.supportSSRContent); + using (new EditorGUI.DisabledScope(!serialized.renderPipelineSettings.supportMotionVectors.boolValue)) + { + EditorGUILayout.PropertyField(serialized.renderPipelineSettings.supportSSR, Styles.supportSSRContent); + serialized.renderPipelineSettings.supportSSR.boolValue &= serialized.renderPipelineSettings.supportMotionVectors.boolValue; + } + using (new EditorGUI.DisabledScope(!serialized.renderPipelineSettings.supportSSR.boolValue)) { EditorGUILayout.PropertyField(serialized.renderPipelineSettings.supportSSRTransparent, Styles.supportSSRTransparentContent); diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs index f77872a1998..e801b066d45 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs @@ -769,6 +769,9 @@ internal static void Sanitize(ref FrameSettings sanitizedFrameSettings, Camera c sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.ObjectMotionVectors] &= motionVector && !preview; sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.TransparentsWriteMotionVector] &= motionVector && !preview; + // Disable SSR when motion vectors are off + sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SSR] &= motionVector; + sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.Decals] &= renderPipelineSettings.supportDecals && !preview; sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.TransparentPostpass] &= renderPipelineSettings.supportTransparentDepthPostpass && !preview; sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.Distortion] &= renderPipelineSettings.supportDistortion && !msaa && !preview; From c7dfbea28a2ef56527ab07a5b11ecce963afad52 Mon Sep 17 00:00:00 2001 From: Pavlos Mavridis Date: Thu, 2 Jul 2020 16:41:49 +0200 Subject: [PATCH 2/2] Revert sanitizing the frame settings - we sanitize the asset, so it is not needed --- .../Runtime/RenderPipeline/Settings/FrameSettings.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs index e801b066d45..f77872a1998 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs @@ -769,9 +769,6 @@ internal static void Sanitize(ref FrameSettings sanitizedFrameSettings, Camera c sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.ObjectMotionVectors] &= motionVector && !preview; sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.TransparentsWriteMotionVector] &= motionVector && !preview; - // Disable SSR when motion vectors are off - sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.SSR] &= motionVector; - sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.Decals] &= renderPipelineSettings.supportDecals && !preview; sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.TransparentPostpass] &= renderPipelineSettings.supportTransparentDepthPostpass && !preview; sanitizedFrameSettings.bitDatas[(int)FrameSettingsField.Distortion] &= renderPipelineSettings.supportDistortion && !msaa && !preview;