From 48a6a1a22154580f5f283ada2e700d28cca7c1ac Mon Sep 17 00:00:00 2001 From: NicoLeyman <49522355+NicoLeyman@users.noreply.github.com> Date: Wed, 6 Oct 2021 16:20:11 +0200 Subject: [PATCH 01/14] [URP] Enable Depth Priming on Vulkan w/ MSAA (#4699) * Enable Depth Priming on Vulkan w/ MSAA * Update CHANGELOG.md Co-authored-by: Felipe Lira --- com.unity.render-pipelines.universal/CHANGELOG.md | 3 ++- .../Runtime/UniversalRenderer.cs | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index 6d37045ca6a..c72c85725c6 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -8,7 +8,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Added - Added public api and updated docs for Light2D shape properties. -- Depth Texture setting for Overlay Camera. +- Added Depth Texture setting for Overlay Camera. +- Added Depth Priming support for Vulkan with MSAA. ### Changed diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index b3b0496438f..a3df124736b 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -509,9 +509,6 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re bool useDepthPriming = (m_DepthPrimingRecommended && m_DepthPrimingMode == DepthPrimingMode.Auto) || (m_DepthPrimingMode == DepthPrimingMode.Forced); useDepthPriming &= requiresDepthPrepass && (createDepthTexture || createColorTexture) && m_RenderingMode == RenderingMode.Forward && (cameraData.renderType == CameraRenderType.Base || cameraData.clearDepth); - // Temporarily disable depth priming on certain platforms such as Vulkan because we lack proper depth resolve support. - useDepthPriming &= SystemInfo.graphicsDeviceType != GraphicsDeviceType.Vulkan || cameraTargetDescriptor.msaaSamples == 1; - if (useRenderPassEnabled || useDepthPriming) { createDepthTexture |= createColorTexture; From 4d834d0e96f19939bb3a446f62d44786f955cf6d Mon Sep 17 00:00:00 2001 From: NicoLeyman <49522355+NicoLeyman@users.noreply.github.com> Date: Wed, 6 Oct 2021 16:24:59 +0200 Subject: [PATCH 02/14] Urp/depth priming tests (#4769) * Add 240 Depth Priming Gfx Test * Expand depth priming test to include camera stacking. * Swapbuffer: avoid 0 size, always pass commandbuffer to access RT * Fixes Depth Priming Test and cleanup of Tag Manager * Revert cmd buffer use during setup * Fix merge * Fix 240_DepthPriming overlay camera and disable canvas * Update 240_DepthPriming reference images * Move 240_Depth priming test to PostPro instead of Foundation project. * Add 240 Depth priming to project build settings * Add lighting data for 240 Depth Priming * 240_DepthPriming reference images added. * Disable XR for 240_DepthPriming since it does not work well with overlay cameras * Fixed mobile 240_DepthPriming ref images. Co-authored-by: Robin De Moor --- .../Android/OpenGLES3/None/ChannelNodes.png | 0 .../Android/OpenGLES3/None/FlipbookNode.png | 0 .../Android/OpenGLES3/None/InputNodes.png | 0 .../OpenGLES3/None/InstancedRendering.png | 0 .../Android/OpenGLES3/None/LogicNodes.png | 0 .../Android/OpenGLES3/None/MathNodes.png | 0 .../OpenGLES3/None/NormalMapStressTests.png | 0 .../OpenGLES3/None/ProceduralNodes.png | 0 .../Android/OpenGLES3/None/TransformNode.png | 0 .../Linear/Android/OpenGLES3/None/UVNodes.png | 0 .../Android/OpenGLES3/None/UtilityNodes.png | 0 .../Android/Vulkan/None/ArtisticNodes.png | 0 .../CommonAssets/UniversalRPAsset.asset | 5 + .../ProjectSettings/EditorBuildSettings.asset | 3 + .../CommonAssets/UniversalRPAsset.asset | 12 +- .../OpenGLES3/None/240_DepthPriming.png | 3 + .../OpenGLES3/None/240_DepthPriming.png.meta | 134 ++ .../Android/Vulkan/None/240_DepthPriming.png | 3 + .../Vulkan/None/240_DepthPriming.png.meta | 134 ++ .../Metal/None/240_DepthPriming.png | 3 + .../Metal/None/240_DepthPriming.png.meta | 134 ++ .../OpenGLCore/None/240_DepthPriming.png | 3 + .../OpenGLCore/None/240_DepthPriming.png.meta | 134 ++ .../Vulkan/None/240_DepthPriming.png | 3 + .../Vulkan/None/240_DepthPriming.png.meta | 134 ++ .../Vulkan/None/240_DepthPriming.png | 3 + .../Vulkan/None/240_DepthPriming.png.meta | 134 ++ .../OSXEditor/Metal/None/240_DepthPriming.png | 3 + .../Metal/None/240_DepthPriming.png.meta | 134 ++ .../OpenGLCore/None/240_DepthPriming.png | 3 + .../OpenGLCore/None/240_DepthPriming.png.meta | 134 ++ .../OSXPlayer/Metal/None/240_DepthPriming.png | 3 + .../Metal/None/240_DepthPriming.png.meta | 134 ++ .../OpenGLCore/None/240_DepthPriming.png | 3 + .../OpenGLCore/None/240_DepthPriming.png.meta | 134 ++ .../Direct3D11/None/240_DepthPriming.png | 3 + .../Direct3D11/None/240_DepthPriming.png.meta | 134 ++ .../Direct3D12/None/240_DepthPriming.png | 3 + .../Direct3D12/None/240_DepthPriming.png.meta | 134 ++ .../Vulkan/None/240_DepthPriming.png | 3 + .../Vulkan/None/240_DepthPriming.png.meta | 134 ++ .../Direct3D11/None/240_DepthPriming.png | 3 + .../Direct3D11/None/240_DepthPriming.png.meta | 134 ++ .../Direct3D12/None/240_DepthPriming.png | 3 + .../Direct3D12/None/240_DepthPriming.png.meta | 134 ++ .../Vulkan/None/240_DepthPriming.png | 3 + .../Vulkan/None/240_DepthPriming.png.meta | 134 ++ .../146_MSAA_RenderToBackbuffer/BlueUnlit.mat | 3 +- .../Assets/Scenes/240_DepthPriming.meta | 8 + .../Assets/Scenes/240_DepthPriming.unity | 1679 +++++++++++++++++ .../Assets/Scenes/240_DepthPriming.unity.meta | 7 + .../240_DepthPriming/LightingData.asset | Bin 0 -> 18192 bytes .../240_DepthPriming/LightingData.asset.meta | 8 + .../240_DepthPriming/Priming_Auto_SSAO.asset | 80 + .../Priming_Auto_SSAO.asset.meta | 8 + .../240_DepthPriming/Priming_Force.asset | 56 + .../240_DepthPriming/Priming_Force.asset.meta | 8 + .../Priming_Forced_Minimap.asset | 56 + .../Priming_Forced_Minimap.asset.meta | 8 + .../240_DepthPriming/ReflectionProbe-0.exr | Bin 0 -> 163864 bytes .../ReflectionProbe-0.exr.meta | 98 + .../Scenes/240_DepthPriming/Transparent.mat | 127 ++ .../240_DepthPriming/Transparent.mat.meta | 8 + .../ProjectSettings/EditorBuildSettings.asset | 3 + .../Runtime/UniversalRenderer.cs | 2 +- 65 files changed, 4366 insertions(+), 5 deletions(-) mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ChannelNodes.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/FlipbookNode.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InputNodes.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InstancedRendering.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/LogicNodes.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/MathNodes.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/NormalMapStressTests.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ProceduralNodes.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/TransformNode.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UVNodes.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UtilityNodes.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/Vulkan/None/ArtisticNodes.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/LightingData.asset create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/LightingData.asset.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Auto_SSAO.asset create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Auto_SSAO.asset.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Force.asset create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Force.asset.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Forced_Minimap.asset create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Forced_Minimap.asset.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/ReflectionProbe-0.exr create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/ReflectionProbe-0.exr.meta create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat.meta diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ChannelNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ChannelNodes.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/FlipbookNode.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/FlipbookNode.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InputNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InputNodes.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InstancedRendering.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InstancedRendering.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/LogicNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/LogicNodes.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/MathNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/MathNodes.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/NormalMapStressTests.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/NormalMapStressTests.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ProceduralNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ProceduralNodes.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/TransformNode.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/TransformNode.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UVNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UVNodes.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UtilityNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UtilityNodes.png old mode 100755 new mode 100644 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/Vulkan/None/ArtisticNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/Vulkan/None/ArtisticNodes.png old mode 100644 new mode 100755 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAsset.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAsset.asset index 83633f30426..2c4270e174b 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAsset.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAsset.asset @@ -39,6 +39,9 @@ MonoBehaviour: - {fileID: 11400000, guid: 2db0ce930f34f41c3b2aad53e6336a24, type: 2} - {fileID: 11400000, guid: da4df2f1951704ee7aa560ed78d91c24, type: 2} - {fileID: 11400000, guid: efad480a4aa014a0fa578c4c317c3690, type: 2} + - {fileID: 11400000, guid: 04b9d8d9c8f143f4cabffec31ca85135, type: 2} + - {fileID: 11400000, guid: f6caeba8e73a4774fa061ede8461fc20, type: 2} + - {fileID: 11400000, guid: adf2b0846ed2f73488bf6509f16baaad, type: 2} m_DefaultRendererIndex: 0 m_RequireDepthTexture: 1 m_RequireOpaqueTexture: 1 @@ -69,6 +72,8 @@ MonoBehaviour: m_ShadowDepthBias: 1 m_ShadowNormalBias: 1 m_SoftShadowsSupported: 1 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 m_AdditionalLightsCookieResolution: 2048 m_AdditionalLightsCookieFormat: 3 m_UseSRPBatcher: 1 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset b/TestProjects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset index 6dddc2294da..efdf8e6f162 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset @@ -266,4 +266,7 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/206_Motion_Vectors.unity guid: aa08e99a89c77574e9a00b9888fc75ce + - enabled: 1 + path: Assets/Scenes/240_DepthPriming.unity + guid: ba9690ce0c2060144b1fc63bfd2893b8 m_configObjects: {} diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/UniversalRPAsset.asset b/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/UniversalRPAsset.asset index cc93b1d9ceb..9bd063630fe 100644 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/UniversalRPAsset.asset +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/UniversalRPAsset.asset @@ -22,15 +22,16 @@ MonoBehaviour: - {fileID: 11400000, guid: e46834cadfc4eb241bd46a362765a390, type: 2} - {fileID: 11400000, guid: 00d10fe6866821340b490e3b5b5c19f6, type: 2} - {fileID: 11400000, guid: 25dd23104304c1c44af89227207beefb, type: 2} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} + - {fileID: 11400000, guid: 04b9d8d9c8f143f4cabffec31ca85135, type: 2} + - {fileID: 11400000, guid: f6caeba8e73a4774fa061ede8461fc20, type: 2} + - {fileID: 11400000, guid: adf2b0846ed2f73488bf6509f16baaad, type: 2} - {fileID: 11400000, guid: b523d3860846cdc4ea49a3ed7350a089, type: 2} m_DefaultRendererIndex: 0 m_RequireDepthTexture: 1 m_RequireOpaqueTexture: 1 m_OpaqueDownsampling: 1 m_SupportsTerrainHoles: 1 + m_StoreActionsOptimization: 0 m_SupportsHDR: 1 m_MSAA: 4 m_RenderScale: 1 @@ -55,9 +56,14 @@ MonoBehaviour: m_ShadowDepthBias: 1 m_ShadowNormalBias: 1 m_SoftShadowsSupported: 1 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 m_UseSRPBatcher: 1 m_SupportsDynamicBatching: 0 m_MixedLightingSupported: 0 + m_SupportsLightLayers: 0 m_DebugLevel: 0 m_UseAdaptivePerformance: 1 m_ColorGradingMode: 0 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png new file mode 100644 index 00000000000..9ab0b25f1e3 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79c264c51f2fd261d7114735767f92a17b5fef97cfbe2ca93255f8ae9a349004 +size 258375 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..c1efd9bdb4c --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: d3011e83a8a7b8d4f816671e4b58909e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png new file mode 100644 index 00000000000..c461f759237 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:298aa89906f3c92ffb39eac6bede87d4fd510897342a30f237ef151da3bcb03a +size 259241 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..46e243d9916 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: 6262ad0d47f72e34fb4720e957a01f6e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png new file mode 100644 index 00000000000..39ae44d0669 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc8e3558819370a96fbce80537ccbed233442c2b4b9b7fc54d8c1a47b1b47531 +size 255979 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..129f89c2615 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: 686fc3f92798e704bb95bdc5757df2bb +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..ec09e61b055 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: 50ed1f4ad4c97604e94b81038c701ce4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..67aef0c3e11 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: 705e1e5afdfedc6418b166198d6750e8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..bcbcd756fcd --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: f4dc90b7302682c48b3e5a6dddf63a38 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..971e8e78f22 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: cec0774e3a7162749af9c91543e9e153 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..6a56d1eb9d0 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: c25aa8c0a68e38147827683267bebafc +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..4d58e05a1a2 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: a1d995a4d8266a74a8116bad804ec94a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..eea88e544ec --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: d81f60265fbeb634fb77bb1ba80faa0f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..5693b6f98f5 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: 78ea232c64975c04a85301f8777e24ca +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..644441d87aa --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: 86274542a1be642448f9631d44b41613 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..a833718492a --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: 50463baaba2df4148b98cd26715d9f80 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..d1e9a497263 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: 7769c23a0ed78b74c9c66504ee7fbb5f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..73b25c13f8b --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: 76863dd773995bb40ad66d72e99c47b2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png new file mode 100644 index 00000000000..78edead8b57 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f +size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png.meta new file mode 100644 index 00000000000..ca8ac27a565 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png.meta @@ -0,0 +1,134 @@ +fileFormatVersion: 2 +guid: bac6a47cc5e8384488bf9f497cecac53 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: CloudRendering + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/146_MSAA_RenderToBackbuffer/BlueUnlit.mat b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/146_MSAA_RenderToBackbuffer/BlueUnlit.mat index 846b00080b9..934c1f65c1f 100644 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/146_MSAA_RenderToBackbuffer/BlueUnlit.mat +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/146_MSAA_RenderToBackbuffer/BlueUnlit.mat @@ -80,6 +80,7 @@ Material: m_Floats: - _AlphaClip: 0 - _Blend: 0 + - _BlendOp: 0 - _BumpScale: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 @@ -107,7 +108,7 @@ Material: - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0, g: 0, b: 1, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 0, g: 0, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.meta new file mode 100644 index 00000000000..1918d2090e8 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 21a3199cd338d8342abb183141fb4380 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity new file mode 100644 index 00000000000..a4afd8b5de5 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity @@ -0,0 +1,1679 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 112000000, guid: adb9e5ee6cd961f49ae1cae3e58e5bd6, + type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: cc9d1da32a07246e69be907ec4061230, + type: 2} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &23298849 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 23298853} + - component: {fileID: 23298852} + - component: {fileID: 23298851} + - component: {fileID: 23298850} + m_Layer: 5 + m_Name: Transparent Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &23298850 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23298849} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 56193a9fa5c52444d9d649960af3ba23, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &23298851 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23298849} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &23298852 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23298849} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &23298853 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23298849} + m_LocalRotation: {x: 0.3857752, y: 0.39641288, z: 0.15129037, w: 0.8192348} + m_LocalPosition: {x: -1, y: 2.122, z: 0.08999993} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 30.806, y: 63.14, z: 40.143} +--- !u!1 &72253176 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 72253180} + - component: {fileID: 72253179} + - component: {fileID: 72253178} + - component: {fileID: 72253177} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &72253177 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72253176} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &72253178 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72253176} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &72253179 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72253176} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &72253180 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 72253176} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &301999062 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 301999063} + - component: {fileID: 301999065} + - component: {fileID: 301999064} + m_Layer: 5 + m_Name: Deth Priming Auto SSAO CameraStack + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &301999063 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301999062} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 798865924} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 5, y: 0} + m_SizeDelta: {x: 300, y: 90} + m_Pivot: {x: 0, y: 0} +--- !u!114 &301999064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301999062} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Depth Priming: Auto + + SSAO + + Camera Stack: 1 Overlay Camera' +--- !u!222 &301999065 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301999062} + m_CullTransparentMesh: 1 +--- !u!1 &337091010 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 337091014} + - component: {fileID: 337091013} + - component: {fileID: 337091012} + - component: {fileID: 337091011} + m_Layer: 5 + m_Name: Cube (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &337091011 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337091010} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: f531e184f1aa0470199fa64291710568, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &337091012 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337091010} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &337091013 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337091010} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &337091014 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337091010} + m_LocalRotation: {x: 0.3857752, y: 0.39641288, z: 0.15129037, w: 0.8192348} + m_LocalPosition: {x: -1.7355657, y: 1.3858389, z: 0.09199725} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 30.806, y: 63.14, z: 40.143} +--- !u!1 &342685562 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 342685567} + - component: {fileID: 342685566} + - component: {fileID: 342685565} + - component: {fileID: 342685563} + m_Layer: 0 + m_Name: Overlay_Priming_Forced | placement on screen changes w/ XR + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &342685563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 342685562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 1 + m_Cameras: [] + m_RendererIndex: 7 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!124 &342685565 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 342685562} + m_Enabled: 1 +--- !u!20 &342685566 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 342685562} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0.5 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 8224 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &342685567 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 342685562} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 1.89, y: 7.25, z: 2.735} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1 &380492249 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 380492254} + - component: {fileID: 380492253} + - component: {fileID: 380492251} + - component: {fileID: 380492250} + - component: {fileID: 380492252} + - component: {fileID: 380492255} + m_Layer: 0 + m_Name: Main Camera_Priming_Auto_SSAO + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &380492250 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380492249} + m_Enabled: 1 +--- !u!124 &380492251 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380492249} + m_Enabled: 1 +--- !u!114 &380492252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380492249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 512 + TargetHeight: 512 + PerPixelCorrectnessThreshold: 0.005 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + AverageCorrectnessThreshold: 0.001 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 0 + ActiveImageTests: 1 + ActivePixelTests: 7 + WaitFrames: 0 + XRCompatible: 0 + CheckMemoryAllocation: 1 +--- !u!20 &380492253 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380492249} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0.5 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &380492254 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380492249} + m_LocalRotation: {x: 0.24609356, y: 0.36251447, z: -0.099864565, w: 0.89333546} + m_LocalPosition: {x: -2.7441292, y: 2.2863412, z: -2.326582} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &380492255 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380492249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: + - {fileID: 342685566} + m_RendererIndex: 5 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!1 &507006376 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 507006380} + - component: {fileID: 507006379} + - component: {fileID: 507006378} + - component: {fileID: 507006377} + m_Layer: 5 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &507006377 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507006376} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: fba5a10b02ff7f646b786ce5f56d3659, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &507006378 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507006376} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &507006379 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507006376} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &507006380 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 507006376} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.28, y: 0.202, z: -1.02} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &707831285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 707831287} + - component: {fileID: 707831286} + - component: {fileID: 707831288} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &707831286 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707831285} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &707831287 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707831285} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &707831288 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707831285} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &798865920 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 798865924} + - component: {fileID: 798865923} + - component: {fileID: 798865922} + - component: {fileID: 798865921} + m_Layer: 5 + m_Name: Canvas | Disabled due to inconsistent behavior + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &798865921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 798865920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &798865922 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 798865920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &798865923 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 798865920} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &798865924 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 798865920} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 301999063} + - {fileID: 1254977676} + m_Father: {fileID: 0} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &837201115 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 837201121} + - component: {fileID: 837201120} + - component: {fileID: 837201119} + - component: {fileID: 837201116} + m_Layer: 0 + m_Name: Main Camera_Priming_Forced + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &837201116 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 837201115} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: 6 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!124 &837201119 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 837201115} + m_Enabled: 1 +--- !u!20 &837201120 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 837201115} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0.5 + y: 0 + width: 0.5 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &837201121 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 837201115} + m_LocalRotation: {x: 0.24609356, y: 0.36251447, z: -0.099864565, w: 0.89333546} + m_LocalPosition: {x: -2.7441292, y: 2.2863412, z: -2.326582} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &879744567 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 879744571} + - component: {fileID: 879744570} + - component: {fileID: 879744569} + - component: {fileID: 879744568} + m_Layer: 5 + m_Name: Cube (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &879744568 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 879744567} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: b906647cbe2ee4b1082bb7bcb3234c37, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &879744569 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 879744567} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &879744570 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 879744567} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &879744571 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 879744567} + m_LocalRotation: {x: 0.3857752, y: 0.39641288, z: 0.15129037, w: 0.8192348} + m_LocalPosition: {x: -0.9820001, y: 0.7650001, z: -0.36199892} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 30.806, y: 63.14, z: 40.143} +--- !u!1 &1194651329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1194651333} + - component: {fileID: 1194651332} + - component: {fileID: 1194651331} + - component: {fileID: 1194651330} + m_Layer: 5 + m_Name: Cube (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1194651330 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194651329} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a686171e40d367e4b897482b49fa9eb8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &1194651331 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194651329} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1194651332 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194651329} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1194651333 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194651329} + m_LocalRotation: {x: 0.3857752, y: 0.39641288, z: 0.15129037, w: 0.8192348} + m_LocalPosition: {x: -0.846, y: 1.644, z: 0.205} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 30.806, y: 63.14, z: 40.143} +--- !u!1 &1203640971 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1203640975} + - component: {fileID: 1203640974} + - component: {fileID: 1203640973} + - component: {fileID: 1203640972} + m_Layer: 5 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1203640972 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1203640971} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 94f7f8b608e68794287180537627c973, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &1203640973 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1203640971} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1203640974 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1203640971} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1203640975 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1203640971} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.0335656, y: 0.82283884, z: -0.5660038} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1254977675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1254977676} + - component: {fileID: 1254977678} + - component: {fileID: 1254977677} + m_Layer: 5 + m_Name: Deth Priming Forced + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1254977676 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1254977675} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 798865924} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 5, y: 0} + m_SizeDelta: {x: 300, y: 60} + m_Pivot: {x: 0, y: 0} +--- !u!114 &1254977677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1254977675} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Depth Priming Forced +--- !u!222 &1254977678 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1254977675} + m_CullTransparentMesh: 1 +--- !u!1 &1281754344 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1281754348} + - component: {fileID: 1281754347} + - component: {fileID: 1281754346} + - component: {fileID: 1281754345} + m_Layer: 5 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1281754345 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1281754344} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 5fbf105a3b09e4faf9c5dd6646a9ac4c, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &1281754346 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1281754344} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1281754347 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1281754344} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1281754348 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1281754344} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.14399993, y: 1.081, z: -0.45300102} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity.meta new file mode 100644 index 00000000000..e85cbfb8343 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 06d3d04c77b97ba40969b415bc9a25dd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/LightingData.asset b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/LightingData.asset new file mode 100644 index 0000000000000000000000000000000000000000..161808f80b7b62e9894c4ef0dc4a62be046aa2ac GIT binary patch literal 18192 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
d7$kXh%(BRID-a!dmJy z8Iwf1M(>T};s_#V6{u%4#N?n2OxjDr3Jl)*A3S+gLKT&?$7J^Jh|YeE0(h?J?DpBv zd#X%rQT(uMcICX~LSK!ZT%p%XzaXlDPV;BNWjT=yNT;gbf136; zxe@OxtS*(CZj?}ss$P#CSdT`=<6fx&EQVCYcTUR7$X&jDN=e4-<0#AhSYa`@`>~@V zKn4++>qL*9%O8=JFwF4W9@ySb+J%*U+tZ;-giB{U-X2)~00 zJ|MUQj%z+T+4?suVh}NC^08z@?tKAQH8#}Z1E^pQjH4OvOTH*|?ilf&ytFU+GrG6L z^yEdDd{4(OZ-Ah305DFN?id@_M1Nul$Ub`m*iWaG?js_N0D#zOE0O_D5bVniFdh(A z#4<(@KJ1#~;}yOXzYtJ?y4N=8L?P&88YII~3#V1H?oiEnUy_tiT_%pXl#+bu=hL&Q z`%qPel%wQVosyA{6IC0AQ8t^ zwLoLomri!hGs$`W#PCGeS&jOCN6(`bF?EU&ErvjWkrxYtwX=c*+(2NFSLL_tbjCogOcWT84OM*PIc7kDbYf^T=-_ZFWuu@JAfpx=A?qE*GRx5pQw0)QLVYot@n>ZI&nTeb8Zi{gat3$SwVOA7 ziQ&NW_pft$K_*KWQ;cM1iGS$HoeZvv1IG8|=r?$eoMyv&e0or4l@B>txWZVw_eHz* zsh&%B0q4T1L%=Hk^ngK4gi|Jx^oyONrg^M;%j_=$9d==`_avO zZ4JeI`+D8j)1VzBUwYzYKhfQ+wdVp%H!gq~26!Mx`pTJiKaSo3GvyT+j^4e+djt8= z94<^ndLrIV_Zd7XU_H`KU(qT% hn>reclYwo=$2a6HXVTA|~PZJqSK6a z=#4S>>C==tKki~b+S~oG$6Mb^V-9^4rCmSX>0*PA#ihnALf~&nkZuPrGQ*Qx#;zzJ zltSlfM2LDAX95>*tO>0$?QNO&q=Z>W57df4En+Hj8j{}VOq6zfSuM}_2_sr{!UdS1 zG3v&JJW&115piN)Jp&ad5af=~Fs0(t1;)i1>hHR7sjV;I=cY-j8HuMT^o&Ap+qH=& zb}{$a!`?;bAa&tYom-|wAwbbA(8|<4DkU;G|Mb~@%k`LQk_-(Wt|Qz5Nh?|NGOXZe#wl- zS&C0J1Oi!_B>$d~NmYykyBuh{sY{RNZjOKfh#xQf!$OoF8{rUNW&qo}R2u@2GZ4^d zfI0?72qv4uW9GkSlbpYcBw?9nF&Sm_MAcByhv=en#DLbny1g2Q7W}W@)IBOA)9CN? zbH*_&m53@31f3wP+9I5+?iYVClmZ%Bv2uXg#OU!QmN6)w6%SR&A$OjJGNEjwq6esq z!3WN^0O;TylLQvX-g>0|lX^4F0b_D5S8@2?v6GxrHh-1*m{dQd2v|txtJ-iM>2OHz zsO{Uo6{K9**rn(-QZg#M$j^jlJma~}>-2#=;#Ke2sim(|ORRg$VO7Es&ZnTA>e~9{ z1%HLL_m@YzmTgq}zxOn3#@W24mVR_9C|Ggx(aGSoZelYR8mw%(*-Q(Gh>ePPTeZ=h zd|z!dMiVbuU6c-AnU0V;md}J#JwPl%gHI*wQOOf)4hp(SqEFV2tqjSiwTY5DY>mcO zNWd{?Q0pe4dRVJ$&z284^RAl7_``i&YsWDSATb zIj^nf!%@#Ur15y;qUqEC+xIof^2hU!DOYJ<=JVVY(-P%Om88))1vRZI4DC@e-RrzT z!L*%*F=fdxH6KscUy0l=kt)IRloz7S;2VEUyLmn6kZ}>tt0d5YSR!mc8doeKl$8Ux zztfghoaH(MWc<7&g39U2*`}mMV&nE+C!)$n)#=N;O7cTws2MakW%abF=qn=L|5B!+ z87GKbDyi^C~hjh7w8 zKjFiqD^AM0ALSWHq&M#})tP_ZTticQlCyx2hLmQ4WPE~@ z7M2!Oj38bDyE?a)_8CpW?yUOvA7=f754S&kzgqf|jjR57V)R5-kY-A=roQ;C?**nOdn!WxJTI&_h_ z#R(`wVR`|n4m+#nLFSx~6rVwX);u7N1l5s=+Mf9P_fJoN(L2GI!xul<8A*GxHYKu@ z-d6QMDm#=^DO3`zj_1UvJ^@n@WD8m!u(_MA+eb@r^*gYX+JYc~T43ti6ge(2wX{49 zvKzmI;F;zCi<=R3EYUEi{@X~2Uta$Qb}!}7Gg<-DT7Vw9y2%}5BLFd>hFISiG13WL z@Tm+Dn*B^9Q!57>`t~s%)-eIzjPO;U7EYyuC<-Veh$m ziE`Y)={#zm-bs=E!#awkk_6&tSB8)B}%MWq|btA+B%{$C%Io(FWr`o^EN|Xx{CrC8aQWAbvjh|i#RduZ z%ax1gCnpG!Vop9JYbQEGCTqyxPi4(LJI~)$0jWiwB1dDNqUuK~Ki`iU^dvGSbWt}$)h5&ua+g+m zLhS|(%wvIS8Te#QYZabrc&+|wls%4IAEMY}ek!XzvRji@(r|KSGNw@_u1t3Fn8% zAMY-|r+EM+B`%B)yC_jG=!P$j}IY2HqasD5!!Wcvxmu(3&+Q&?4kWO+9ocD3r{)?2K(I7Ir zlz(5u#UqC3 z%v??=@#;my#)`-T5%7oo$`@T2Ie}@$%(><686hx&Oe6<2mt57D)Oj zC&4O()Y*d1*@7p*3YpO%>=z>h({`0ANHAjV92$CN(vN2hfX%3RgpT6R|LH z=YXlkywoNFfiXcS429}jU7CxR5H6Q8f`Jp1&{S1AhQ(M#lf9&zOzcjS4QVxBV;(88 z6yACOKZ3L5Py9Jz#E^fCv{4*rNIQ(vTJ z1S;}kI%sVPjBgCUaYX^;w#N)KSc+Hxr1&Gz#oS|{hqpD+cafBoAw{C6zNqjN)VU^sj9)~B&O(Nz+R2^B6Og6_LM8^F4N7c*4O)Zy-NqS;!ZwP z^D~XqD=K{`*!4R5y>Fd|)Z01VCykX)8eiYTP%xYO8$Pd(atl$Bml`Y zFUWOtoI|s9HhTRg{@Uob_55UyW9}&$-JL8{)*9)V5xNWc=S7wGI|#IQP#H_4JiW9p z;?E1%ow&Vtq8R9l<+!jX&&i0qhlZ*U;l2P7?h7Q(o^pSOY;n$wyHH;7GR|2+NdDe2vJMCsC;PV@^zl-zT|NjQ>9iYT2xQr7|A zVs+k}0R}E@f?z=!{nYr=yw1v3b9hhGDCCP6v~;U;%J3*p6EFzk#Zck_-l+;`okfVPr`MK2r~$BMj7Hc4g!Y~LUHDL*V|=gGyGy~I?WP9oC2tXu3n>d z+BlEIk$dK@QA2U&2aswI=_X>%o_(PM=Gb)Vxf?y-Is4Esk^6vC?!^eJ%!R8$?-JYxrlj-w31uHo zP?3qexLFhgVEgdSZL?<5!q<{2nPFw1E&d+7><!rb`?lwAPMae6pfc*`^~E~tM+GF$w+NmT}fDNd*!^^Zut?j+CGC4x7tpN5}n!(1I=M8^(&*pCh8aC z_|#oShwuN6tL;`O5i9*rSAuRIz^AXa&7f2VJ1d<>-i8vs#bFBd^YlX^>H(uap45Hg zhYhgv;d$z<^us6AFKPZyI!*ugyZm;EcmPSYE9~iA({x?i5w1duZ^f#t$h`G-}%@B|H`Cba)8M zH|pm`hoo>RlH$=Qqu?sVQ=uB)U%^xBRl?3ckfTB5%l2_QK z{)VD~_kowGpx`&l!~4L?R8Z7-dtD0q)Czkq6}G8B^psaFoBy@!a zZyDq?^*kP>!g8v@@=KY$G0Z-d!rqt+i1YEk;7QDKgu)a^_XUN$3o?5t%FC%TQz^=X zDKg9BGO!E0Y(Tj{r@ddB%Dz? zoXChQyiuf_QQF6^)aHyj!2y~L7Ii#4O;Bo*&qYq;CnI})vIBG|dq4G)nD*&9Ojz=n_*8Bc(iGm4%@%ZAn z%p>-Dcr=C_X9yGhS7qqP2rKdYOgO6XRP@jKFxoJ;;o*%xDUobB>%mx{-`UdAFJbLB z8XCd%rtRCX`{IK63r^1%e!5;kv2;i6h;O^Qji~7gmvZ$AmnK({ljuQXUn8uUjhS0@ zTfKj7V)cv(w>G}3VL{F4a4y!*#t+LEi{;bJ)p5v`RVKf9g9oL%tdy{xG$9;+jm(y> z+T?>|j1b+lpnn8wcMcgw(1_7VFNTew8Z}^2su?3nFJtmSE5S^ec)PMIjm(TVy|UXn zMwC{L(U_@vVc%+xc8Am^PlhwzYbAH2&=IIN?iuF0F^cT?q=YR#kT}e zTVFdf;U4w1^Qq#2-v++y^K!@fxxq$m8y0?|kiJh5srqO2$*CxA<1@YQ>$3EBc~4;D z{QbFc7E?rmlO8@%3Ldr{UC&$UO+(dk85{hFLc+x1r~gqi9jP%I8iYdCZ~< z@2fk#lV0g}5hPKGp0ks{!##5C*Q>I{W4*${+E@@_?8 zt(`RHwXJQZcVvTGKC{@ud(tFabKSXfi6aJ;c~*>7y>o?ozn52WBk_+!lX7vh)@3tH zHB1w}%o-CO%^q25xY2TL+w3Q__(!0oj%OQFg4k zNUr(u7rC*$TquN}e?4Ur<||p%_DQP9plZqhMrcs{|Ghz{)NZt1zI-z<3M? zr@1~kEix%IAbe_K<=!sm0%hsEJ9<(ysSKj*Ngj_xQ#|UJ>z`?opI!ZhlSNSQ-zD~ECV12k0eai!TQN2YEd1pYP zN-{MtWwiJ*1`_&9>G?_N=VvC@R@d1v3YX;so%w(@%GY-E zetp9gS8piSTjKBP>18gs>i_Fyig{zTm0pg3SDvTyLY&2KL9fnMHF%te0 z6r^7Y6CW{OFZ;dWATrl|ph>rzw0b-0=gjYKsbEQ^K;>xE2v zR{8Na8J14HKt~IdN2CyS=|sIhqk<-4ksfj#Veu^~ot^J>nTv`m%h7KJZ{ z4T557E}G{SnA{W3oDom{Pxj7SV`Qsauoz0lv{H`@H z&&=QLP20yN^(>}S7M}kC>hsK;A&f!BT$obQ9AvXY9H5nh*cRf#+9yzor)_# zU*lSMAv+u7ZgJT?@Xp7M!?<6>ksg>^B@0YexG^iooghflx7abG*Jo{UTei40Taf>< z#bad{l6HLHcW25c742|`HB3$;n2ZW+Y^ER&R4FHEk4T&ya)7SaWq+7=|2i}iJB~;> zHB&NI*;II`7oNgS1Zz@T%8vPbHoER%J8h8P##ChTJTi8chRLn$RmtBcotZtKPN%|D z$;PD@TdETwpeKzVXP-)6?}F81 z>8oAe4`Ozj*O+G`y0)thBG(+m6!{dLZd|HRWL`L@f6kCSDQfO9Cp1AkSxxCh_|V1h zbXA^ z6dc3zM$XnB(+jzM?*ysT$F zIZc+``XX>n*fw)!ONk8a_<^W=cQP~1W-?nzGFwic7&D0kTL*_3 zbIT(Kq%IuH3h0@D@M8RV1)UL&TO?cobpcxA3Usx7_m(u)&QmYyBYvdvpt=yTAwj@I zR)Cba4}C*2y?DNTKD}Vf=FnV6;{_>EKmNYaTNica^<3q-M6x&d8kat(HAsux8XXQl zr^2sYR(&U)PXm>qL*Zn2rYwx1ouF5c<^gHUcJ4vsNAo;$LR{JBM;7*Gy!AuhJM|Lk z+Io|!Y|ZRiE3vIH8VmN`ZS570+@v@h&7AuAocf7!PdZze;?BFyayiMPh)+6&a5#oM za@~yHpnm1+8~UQ``#5k`BM#b{eZN*w-jpAOgR_*1H#BZIBPfTb4n_p=p$2rR#Ry|c36&&+t|suKPFd@EWJhK zgzC7@pNkv2?xAn5+!=@wLRTl9uJ>hNtXh2N*>G$}cs>*y9X9BIrrCZ&TU$`PZv((N zDCReWE=UOF01m2m!JgW&2WM41{mOK|3cHh|7AlQ z?Q{IO=$4Q|vmWCj#M^5YJta{tCti-O%L%M9Evw8CuQDA9g$^cc0;?S5IXuGsH|Ypo z2(zKho6*CV^w+`z0q#sex96wt6)c{dU%fMMv&4gq>Uzhc{(>sc!ioF7ISp(XV1)$h zs*kTX3;Kcmpw$w7T4enfsBXk``)7n@;AYB=y@qkj8_&hRF$15(yNFmul0pq*K@wBx%|_s ze8UzxdC6G}jhS54+Kr+Iq<;ji*XB^qc*Uow)(@^cOtpU}d+q9nFIPWoF6T8Y$5rig zP9OBV{z(0m{k){BR^HW;KMF=S-U&Xtl>PqU7+aD0T6UYXVOP6PnK@4ni@py3IRXAN zMbY;>yY-4(azC9rDap^(GEBH8bg{J|VBvfFL1OBIlV`U`7A~ zWcZJFM;UY2$SDyVzqs?jMb|h&@{D^l(_QP?t8Kgw4dOqw^>|-%YHeton_i%0o2Qwt zQkM!*54q@KV7(*sxwmddBQ(Gv%GggnIfyrtYGwJ9M!!<3_K7snYD0SL4==E!rnAdSI!BW!xm85+h#y(%-qT^`FEq=jU{2{va8#&lE z1J;}@x67lJbCULR(r$CI&U5lMRy)^h53X4q__{FOPpk3yQY(G<;Ii9~`M$*>x5=Uj z2jK}DVHk~Vq{^$ueaX^m$UzaXtG0*`r}Ky3b)UULD6Tc9*)=6dPjWQKMyi>g zR6jkCF@2S5LS-*6ZIe)?MOYPz{A-}gEw~SUhz((2u;2yTo-MP5Q#RSFvK^i^qml>@ z0(ccRxxiflN&x8v_D>Joy9YMLP!K|rEFyh$^a^-h9sW2RAw17Vf5IKPxtZaan>T?a z#2gy*A|B^2rWkG3zu{W*n`}5emx#t6+`Y!hH5&Rg*}FLm)%RSX3`9r(t2)H0Cg4hb zW?t#`scB|PWhJ-kA%g{Ks!i`N+?W8Hru|InrQJt zuNJCLU=*4(lACe`>C8N7_dy95dn5K;O1Wz-U;uoXHCud{G8)*ma5Frh9&*<~z&9#C ziyk{~&owEYxlugVSP+>99TGU4Ycm`gB#I3ZeQzQ4*(uA5-L7Jjq9DLu_?2()Fz#`) zeO_&eh-;#x@pC#`!Ap6kbgojoN*dJmbUTrDS}(pCf)fi6ocK6Gt-2Gr{37WqLFCfj zi?hskE-!s}k*GPM}kJFLC33MT!^G$U zgknxHw7bNJ(ya)U5hyaW>lyK>bY&5sNsS^;li3PvSN3%05MTuT;Zb!`fKZ}<$$PCB zAsQYh-RNclGZEE1G6kX1+WX-*ZGRoN;{NF1@akv}SSpV0E`n_l1R;s7-@hMp!ut24 z&egBKS34U|erfCK3m(C5$YW*2ec|NPzvtpH6ry5qF41xId7wYF7KP~vL-N-Fr9oU% zs%sG!TPo8R^RT+E@;p*@F2vTG^f%Dd3Gr4k@Fm53f0t)E0Z?9e;DTqAL_ktNVIX8)S|^fmWK z6dD6b^C3wEL87iBof;z@c>>3CR2c*j%#tv=XxBuv@kO-Bskkx|K5oz?==HXwviU2Z zM?_saMO~kemVu6#_UgFfT3~D`nZ9N^ZzM>NmZ$JiVq{NYtSadCswXsxXob7=v7sO2 z^BQ9{ndnW=#C>1s#dqb>@2U|MJ1b}AL6m*mub>d%7m>aKbYcrgf!n;@;^Mt4KmihD&?yuKPX{6FJ`Y8P!Gt*a z`~Wd4j{X9tEC8lIf4N_WbP)dh?AfmewMSneC;{fhzOc%;&tLcXt#EKE)~;xo3X2dXkUZl<=S_{^= z#g`pXCTtls5H$+6hPzKIxNbJX!M0_q%;KBi3xXH84+^Q6Z2~u4eSnxGNJv9t2svw+ zmimp0A@fYE*hu37W=4y`?ywP~0!8P`=A?(2WF~r?512`oSe&@Jf3NvJ!5>jLL1RYz zb*lgCSH`z*r7U$v87Ip!TW9Fa!BOt0X8ay` zjgXqMPP6$sZ=8lpUn%y5DQW7cOlDa&X)Uk6QJ|#;|0@qGKPfFr&Bo8UrM{PUbU*hA z{OpsJ=@Ym|Q$+B&$GMHJhs`87{eBLnq$&rK-dOWZ<##`GU*1fY@(pd03t!XUJscRf zMO~FKv(!B^su9F&sK?^qeBfn#{c+TRpK)>?OTQvl@^v+qEw1D%BtxfYv!zMKAoc(w zd4xNWszfYU8Aiz;a%n3hNhYaiZ-Y%C6z$Fcfee32&iAZp-RELUS$cY2nS)~Z_6{6U z#M^-W#Go7yR`KJ|#Lc635SOsK96s~I@?CgFUgf~>HWJ6LCaWi`qwa0)i2S~45+y)9uEfeOy(~CZWqfIh@-(lc6 zQt?o{;-H{Ggxyke25YnN;BCN-wA}hu?Yg_7eoYPRAdzhPW68Mtt_7~vLaVkl*|`F% z6qEFGdI8M4-|{><#KDLt@I#gm8{7<&n^lFd>bNi1A-KL=bQ8qK)LImpJi<;Tcogz6 z`7$L*VR3M!uG!!aU)vV9$h7x;)Ka3XfibXwQJ^M!{a!XRU%hTwaE#T^PVvXkeqRaO zSCY*(U`^;x35x1E#y0+X(R_0GacCMkTu_wI%5Y=v{L7#(iZ3^QD~*c~Dvyht@G59) z3-N8}^qaCN3V!=`5wrv1W%&7-A_2)wV1EH`qNr^Z2~l?XZTXo3i|nSnpK10Q7$3rI zunjNi=H`989Q^Abb7!|r|6>?|~YbG$lD8UsW zI{k4r{LcLMYg%nLJ){yKt_iVCk+Nf74$%r`2^xtiU^9-fLpx zU+gyo&RpPddqk&Rd#88IOp#sXYpXNUpBCy*)xD~HzO|Yu=$wAKB1*mbeY#4<&tzJm zc)dt|(ysKM={u3DZ$;}Uy@qRFS=d^z<}jP1tJ|y3)rr=$tLK7At57QcRF z35HdF*x-y09ci}c?xrY7XO{N{%|u;7d!~8hpJlSPJ7Tqjl<229Y~=)v8VXsYUJTXv zI70H(SCgkn(<)R@q+*17Ys_1O6!@}xr2Rg4g8cOLc8%w=;3PyD(33i=EDPkiE?1Jt1- z-5dYBv%Cr2W)_jy#Fg;3^!WjymH`okk6dT%`U&KzM0-f{Pe{>=700on_Cy;?<5*DM zRPcy}P$bXFDb9wF@1B)i>?=ZAH>M1?e8MA(@=RsUNxe%Z()Y4 z4l=~=D6yC&tPk&;XNjbrs7v{IOLfF>t+z+=oNRq>55cA=Zu35qrRU{WzW()(+yvuT z$VMKG4TY%9nn|+jT2uJ4wDJg9Q;ghmvoLF6W4WBrSm1wfg(W49!RyT_r zHw*e)XaCVKhG)xE@=u6Bu2vkPYb7 zh8bc?J+RK;sesU&BpVNASFJcnJl=8=@mxT2)Q}Cc!Nhl-ZUUpZ_$g@E|$v~X{2 z%HF2s?uUX)o#HY7n?E^w_l{}VE!3N$%r%`s*)zQJJX~m{7eD_F(4QVZI%)Lvl-1W$ z7hj*OSC1&i?}dm(=$+$Xe(TyD5E}RSztxObOkUSD8_kcW) zSrXV>ciq3oc!Xdp&QpVipt=R>f%xX#j}Qr(-vm=-3x0pW>dB8Gp~c`5Y89-7-<|&p z<{f3pP>gHhv4)Vs4og9TWZrAoTG6`V`or8!2o0NR;-aQI&W8s^eeci-wG_WwaKr42 z;2%c$>`LC{GcWotq?Vu2>NQBbl<8Qs5-&YSeTjBv0Vnqa%W7B0Q#(UD<26XOxgxK zJ*mD-V-#*UZn$N@$=mj<=#v;(cLAeA0gYaI$MuN4!?-@&O;7`+aE5zPC z`Rq~}XZwk9)8%&Q{;vifTvzWhI^65i7Der?m0h16Te~Qq|7?|c*d&>6l|^spT<$W< zi+=IcC04C|iKJ*x%5F?-DVs*GL~JQ*Pd6sYia32ch3f;d9s2=-4KT9y7$ui3v8nO$ zX#FHk2Wz1kG8{@^7W}yagM&F@B|r+}RrqCi>R%4y=9PCy^x?<5n@3A!`(5?D_2g*n zf%zmypFUA3=Q;MXdMTE3OjcDyZv5@F{asc4T^0RZB|YS^v&^Erz8xh78XuEY*Fy`xH>lQr_LjGc91s7Hnlf7 z6WgX!Kk)o~xO3)glYws_q%N|zk{=B{adjAZIw3-@KEB&;RROlCyhe*R*rRq#8Nqh! z8iio9@+XveKt*~R(C>u*CGj;S-wU~-C3P7I^oP!zG@iYz6}lE$tpC;xVtweLQ3?Io(IDSqpkHx^@=@r@F8NTW z~KZD$i9aykTA7OBgEYoYE1Tj4^)w>-?OhFP7{cl$U^C`*xy(0Ujg zS@)Jutqu@gv&+TUwQGWh)yEPJ(?7`f>K!cnC-@4OOmC54wHRbR{O&qKqz4mnE|{!Z z4Csbs-4GF95CP{R*9St!5bFu{)@)=Q3ao^vKyeidh5-q+)o@u4-IULTp4}3UIWPmf+=@HnM|H zT|Hb+F@HIobj{XIe-7Kxgc&|3hS!>3{3aKhi*@MmClNdy-$6e?zhuekg=wb%^g|PY z8E-rtr}Fi#ZMqB0@06}~9Z2qxuT$rrI-}qePP9isoX)EphaaP8PSv>SiWi@(S6A$+h0OB0aH25%kcO z=;WGk+oPP#^b;8k^p5QdmG7DsQMND=g)92N9nSTGqNrWdj%k{Yol5NT$L zA}3>2fD`yyaDlLhsu5!+{$6y}(7BuEdY_?s^AOL<(7ARPn#?zqRVG`GuIz!G}< zqs8T7ckJTHj|Hp66N_-2W8pf6cc4pOZ^DRx?Es013QAbBseg;UUx&vkaSOzdY1f2lHr4Wro!jWJ!ba-x_mxuE?b@z`Q za&tKPgDlA3(abAQ6wrSPlAG`ctD`@7@zF;G^Es^GRv8;6B3THI(rkfZmtXuVuLX2X zngtD9rA9qoVajzeBYSd4kYoxo+UyMh)+a?1Blp0f(SixxUA!3bvzLqKAtmEpun95W zTOJm1W!9%c?-;LLf#Wt7bbF%T5@Ij7HeU^&2e)-EyN7_9L6ik@SZ9hSKx3N0Gn=PA zwuO7pm8?UE*P4-YlBmRk;U@SP@C0aW3#;*cJ@f(~R|2_zt(bos7+zSpT;q)1a`Akt z`Gxz2`sV?h9@i;Z7v8}@I-U4R!UQhm`sBSLl!WUd0{lG%mQc`XDk(r#iNNwds*T6dVCy!;q-f=v;lsq(2OFenY^XxIt6X{zQ_pYnnxN9t5n6PK8=yk@dtg@AEx8|w2_-;~V zhsJIo1y6gwctCP_F70hwH5osy3UiW4wg^vZk}VY<6!KTxP^?c4Jimr ztTu7F8KJfevC*5;&{`6jVVHmW_6~BCU=nN zuq%&C{8B9ce7}zg{-~R%-sOSU#jMwhpKsw@Vsf!t+lr6@6s5h+mLtDmb&G^`seh--y=r6 zzrw?7e41w^RL3L>UF7mfm&q8HU1=jUVJf&PC$K80o9pU^&2=xtR(V63$JOWUSWx{} z&||XY35FiavVe(tiC%I8&*8vEc-0F*X%f%lpuG|4%2#zd-Qi+ZaGWPgD6Vt!a?@elJG_cF5 zY8FOyJdiJ(BArpH>-HVKf;NdEd7oN-LoA2RR+2#P{jY9)6VGS%^OnG6&LL<&9l3sM)=Wam z3`4ysH%uWnpd?fb1;?NYi5p;8Fb)7UfNp>I{vNT zqeG?z-Q{$hl6i#s0nG4fj~znYld16wcfvnCcDPD&f%)w_F+~#TWNMpFGz4s@d_MTl zHSaNSgJbe;ueJ0PKrBEcE)#xMX4Gw*UZ4sm+wu)X86HBHv=`m?Ijv%BO?vNhg1gTS zsRJya6%gzKs#=JlTE&f_+MTRA5~2jKsDLTp#b*>XB2<>)*eBxBmY6`ujO?Gr4%Pa1?$>u3bnjA!Y0CqYQN53$#h}=UV65$gQBlsoUKQvqgHMje<;0 zA(pQGE>2Y}P7-*%J@u~z=ZFY}*cMFY1YR>s@;L8z&CNaOU}Kh|qD*=n)65jPSk6@G zsmA$pD8$8SmcWMUEcd7=gN3Ijle3ex_n7Ph74Q4@)!^86T#$IYl^Rql2QID*g54Y4 zO9BvK#|57~i1pVLgQ2U11)F&7;7QTi{v|iCi{bh$S`8C6Ze?5RfW-P5c*1V~@B~F` z-!Hi{UE%t3dXnhw$AisN6ELYwfSErQaNGFt(1C+=bCOJXqI7wfRJqS<$#QG)vIfZN zn-2w>l;vc*84XDp!x|So*rHcvKS@B76 zxt`%N%n!@T#@%dmsi5vqwrN=kgLqE%ZgCEJ7zu$6&0371LHt1(fW|GjZEPd#Htk(F zU(C7|n!^|fIm-f5p*1rEydYjK48hvEoFF0b5hPoQ1W*B#0eh@oe+T)@FzL~~2WT%@-k|(p7dvlD;+TWyQD2gyEXJR`KsuHqGp-=TcXg2LqDI+xuzXTqL;~ zOS41a+#YLmj93JmfdC*D-w?{kXdZ9J`fpQwfP8>aveO3^@chf#0pUndQtgG1+CzQ_ zk!$NNb(S@mbsG|fRjf>f&%-_InJp`$Ca0`~&q{V@4vR9d6yeK; zIr29((py!j28rXSM>dG~U0j5kePTjFRC|~PtnJOaztD-YFu$Tmn(pCUu~M?vr4d@= z9#ha+?R{%&+7V#=n@Lnhb8=YVtxa~_tjX-);jZ}wZj=4A2z8 ze!=v)(H0)b7Iy2l-jMITx%=IE*PN|=n`ApoNjEnWMK;NNwa4pcaKg<#DONd=%}nhd zuGxmPj$CgYiIguOz8`{8A;f;U3AQ^6F+fY?2Og>e^2=0V)5mEE`%1h$fGtpJ&r zgIx7| z!50SaSy!T52vV7eX2wGd7a)mNW(#$$2^g(`?^*>+078r}py$TYbI-#zJ@<+iYz)k5 z;WRSEH32P%Jju19=k8We)fNJsspsFceQE&iRc~)U;Ee+CGJ-omUrvO@n;0xg9 zXH(Py0fEBX52ZzrH+jLK&ksd2H+WVf``EW(cjv-!vu9X zZWsNy^o@iJbW(;uTsn@DdObX?X_fliTe+qgs(^m!(terJzEpHT>bcQWcxLs~@|V-P zDmW_Dfy|6uMQxmgKF&95HwEkzHw#y{5F`cKP`K(X4SbB~~)onGD#^F|sLX(W;kMr<1 zgx-twA38>6lF}{5s>^a^*kU1L|-pN#4B7HcE{_~Apd zljdd|xrD^a%@pa{G%l8OXx%crmy!I0Kj}EB9K@a?B^FFDr7K!Egk563gH~|3O4Qu< z%{4EXn)$7mLh7#Cd-kuDPaPtKP}+>DS>)T1EY0+W&Gb?Eg$cMu+F?vHT^}0PhXyNx zw=&hNeP&=JUDF|xq)U4c<+^U($04+IR{cIFPnkKLf}sB!L4O|Q91_~`$}Vg0{881k zPI}R(3ZYW17*V29-54f@YP^&fQHHDLYAC@A<;qz^mtUE`I$jXF-{Bo#PmX>-n(zl; z6OR_(Ib3=71BvY<&EDonwHqu?s)XlXag<*(rN@WhoNVUB>z3WkT-9R z{Q;9_M@Wz`@$0cea0Dyr+P}Xy64cSR)G5N%7EX?T;aE;&AAilX?wy1|8$C$;`M|kf zvcFAa>8;4JH~aGSO9IOrMr$uZg4!s0(wi=%nwS%)p(`L}v*iUJUMf zCAr`#NIJH-(5<622XcDv3T%G4&m zQZB#TQuU@)(f2cYCJDGe(u`?mTU%~31p>W80=3uOs*fyqYAc<^Yt49sCVQOit2NDa zoSH1ErD`8We_V>N0j|a!HCA1ji{fd?V|vN6hH6+@%8Hd!=k%%aumQL|M{E0hCMIlv zxtG-iJI{om+r0@7RL?4?e*AxU`VM%gAOC-Qlf9GOIcINCcJ>~3sF1TYh!&sht;};s zStmQrNT}@WjL2*VpF&EshyUyC^Zotr@#Z)_pNjYU^?tpc>*ZPTFDeqflfb{N*TM8D zzS5V%>7QaI8~IPRH?Bz46n4wJuVG~R7GvyYz_9z4P-`%C0aL^5ayWs+;6hTD*0z^bnpd3@e4_yLq1;!ZgL7adUa6fC1 z*|264&V>8h&>KGayZ`Ig6QoPH|K#tl{T;45qM^OUatVi1m>mbWtNi2U>lD+~D%eJ> zJmSbB)FGSltU+6`4(b!?DrD9%^9hZXU>fPK(KD5W^c8g(H=hT^RY-ZGngZi}B)xUL z)MBY7>yIc1_qxBu8r=@%)IwQRp=_%z+T^Kks{Wp?t(kS$l=;W*=g}Fv^_LNIgb~>EI&PU&F0?o05$b{O3x>6 zo=vSC@UQs4*1rIu0l~U75&~OKX168+9S=Zqs-d~-fhtlds#c|zgH58Aml_@@o$|Ec zzIgKBFzJ`&-m&h7kio0Q$tGk$i-CQ z-Jr$SvQn``d?K!spW&?;ltBmPC}3j{L&Vjyh%^g$1P~}98b#G(C)}4~3i`H+vOg!- z4r^H;g+#_hc?>f(rs9rhx9tXt_BUqYRsdhY3_ABjCQ2sf0f44_B!p6Bu9+3ri4Y70OcLi@_(=-YOnWsnLf_6 zGYhW93+`;P>YaR&#l{wr4=`ELe3+0WvkR2%Jhl%x+qzGmEL(Bm#~AIoaJEHz@z}Ye z5Bv&k_9fIoG8aCPdYD0lctOg5nVr;o5go_cAf<0B*~RpUWM~UtW3Ns@alWpuu5Z6z z|F{|i>wlm8eF8nDHjE5V6goDa{QA59}WmKt^4v-IHUa6pWPe| zOPhh4*o2r4rdV2-Kf6n z$X^W$e?0#Qk{gSUSs1NvAFJo#v+ND5@DO=%F>b593x&NH&x-QnOqa3j!OKL8&!=8m zAatW9Q*A*u>V-eXQJ;SSf2w5#M~ZIrA;kOm*p)^MHCvVXSdqiHl)cNB3XMjyvy`nk zLrly83M)0{L}ePKWqVgkdEd_TE|9_ay~kl+jua?XfQ{=luf_n_fz6Gk+Yp) zH!IzUEe6ZXvMJfzJ2nT$aW5ZfY<@EF9{++ejZspHQvUoMe`r?%jRR$IU}(68U~5|` zyoinI!KGiVckR$cRx%{jv&5B6rN(f@#z+~Qn)I~)K_O6k_^_hrD8prnluTVO^FFDkmaNV^yj&O6`xdxrt@~wpf}9%Ncy>!$HcWqv_6rd$X*I3GOYDqcdJC0;hzK^rNOud*@0Bh*_ zk!M6dR|3nXd+)~SUa6UcV_S-U`SF!8TTbk!Qj-+=FVMcIdfock%H-)YyOoxAc+fICqv)uZfkj4%)Sz8njtveU_i)^^ zHB5;!6suQ+Ia1p~7aXMEI(PjUGjDUWxp67u#c{>V!$yZ}dj%A`We|r=O)M&hC{WhDLdDy?x6qLC`n1$Z*P9<&}JBoUCO+b}wn) z#rn0>tDbS!IODE)+NpOq%QiZqgzksFwObCWy}M}5AqKQTr-Z3<+*$5MmQrXF?4TWh zHbEujpiM}O!yjT87K-wvrvUk3nvMkO9Az30!!T3SS=Js!kQW$ZPP_p3+n=y6Ul8%} zmoLje6x;x_0s!SC5{DbQO?Nu6@CZIQmU)K5x{ zOUx|Uh5pNmyDmTtKR?S0%%*$NT^ub7!!y?$J%v;MCABb>bwc7xW_4xqtbTPqZ2&e} z8ynGrIdOXKNMnPZ7g1D6mWEfIA;^t--NnPrlVCK!r6{J{Ay$%478J@Y{_{|feIYlR zC)Hj3zATl&*EV8j4HNSKkodn)c$Ojn;#WuWjXI>g+oe|9r6$qI0upf1A3)+k=|+L# ztL~|pe#x0Z$wrphl-3f&Tkok)OsE3Irz)gB0gPWT(?m1cU_{_7#`Q38jHRwpgkavu zP*;`V97hECOXm)Wdzevd$r+w^&cw16f82r65@CnDsgT zy5R$vvUf z!13g-)}_H*F!PtjXMg_3Hm3~XJ92=@98n&&$Z`?0ywdRUth?L5bM?kYH%Uiubc0tp z2U|@Be@IB;(Dq?Ds$hCtE8>EA0F*-Zh&TY@_qe0){tMUrzt2HTkaOMlAtIB4cfPG~ zz{_8O34|hS`6gCvXfsVNF%Vs#Y1NXztk^&y zI9glc!z+N?%R9U5hiJ^$YvOrnZSsoEqe4Dw<2KCvC5e??KYT#=f9S5_;|Rpq2wnj2 zJ__HF@4T=R_QnhshC2n+0u>q;YO1{?zPswqt`-!!ip4}G6K)BH z@(ir0s+oxyLzPrt_NCIFjX2!Z-7C!1T?`eS(^gkgA=02RYE$x|&{XO%dYDCW z>@u%@8&%{LHH%W!%cg{v%`zmrfQ+EvcKY&r|NiXXC-?tW(jM9ef-#k%1UiWQkB>ox z@|%_i;D$f1mLk7h9{F~|gZ=}516?b31C<&{E~eV^+66BE0hw-`-k2uC8W=iUY=tW+ zE#FNlqFa@M7zX0EVrs0JxfP1%qm`xqp3(853QJzI>9S2#6%&}J${I1FqyM* zWD=c3@qXoJIj!-GF^}<#Z$RqsQ|Q6QU&?nHIi^*v;rvmQGP%r&7VT~Fif<{W*%Ya? z5^-$&VHp~Vn-V4tWQw?{1Ve%YnO^;{ySC>s3Ta$e)LJ4x6{r$nEngH3oue{fAH^EY zMH$O+BT>{13+ouwHbH`an5=RG<(iyTSjUUwt=g;gSz2JKxdbI*a}a|Hr{1g%qznl7jjupm$Z zaB``9b{#Z`p&`plKtrx|_cy|3^z{eJHkB3IgwGrl*y5P2NgcYH6`1nh-! z$aj_R-8mRe5Xr%reZ*G{N;D9nf=deSG{{F#X};})%NpMOP3BZ9^LvhS|BzK9g_gm~ zqE>$%wNp-ZG|d;ccO+@1ubjxG)_eAD|3ul=uj5Udy5KZ;=J)IPv!)G$c!*hmf0Xn; z58KxrfN4|-)W}&M-}(kWZut7vzHSpJvIUIO!LH!XXFLMZLRC1DOQt|rz$)fvPr%C! zpB{mI0N{TDC;Qr>!vFlJn@Ai3Q3~?Pd(8xm^WHsFp5bl2F1I!!KYwlH>lyOj1G^;t zcQ;Y_b5DrhG_$q^87s`48b=$a8kB4cUg{dTaIs&b3X@Y8 zSF++}hUXK%RKIoeh?eZpVC6|U65FjbA1@s~+qMf{J(>Q?lOtqpJsa5CxT9%<#}DnU z+uT*YwBh}c9J!obUz;uX>DHZK+lngXlEe1HaWt)*hOS1*RGh};3{|`tl9D}@ILACn zaekgGr-mF23rj+2n3~GELRHY&$h7l~dEqJ@jcF~Yf#XU!PWgs6pmaLE0+3_3**aS12zGk`1s^oj@0hClmf6Gbm%tg>b=;$o;7=edYs4YT>m z9)oxMdwzyx$A80LQqkfnmAJ1h+rE3Y)!XC7@v}d6q5Jz2h`n(P8`V;)ze1+5(!=O2 ziC}T=NG@?;(~7Ue=l-aSK{rzq$~gYkxZ45Bhox4Wj(Dkn3rqA$*2Tz^H(sA z266GvNhw)!%vYFhec;4pW?i>a^?M$aJKt)J1y>|d>#WCGU3Nvd^?a)he`ajUdLsk| z`83ZeySdN!OFP$;U2E5_$^ZA#RVSIwG*kQZq-S#~emRrJsdIgQd=Z(18=Eg8lam!% z|Iv>SkU(w-4Tq`xV7BG=hk}6A0c~SqD4XZV^hs=!X~E%AzkHue8Auq>{cq%$he(A& z;}Mp__0Hth^N=Y}VlRoG8$pb`*CySLHFX?=00!)R6NHuDx(`R;V0hziut5A5O;Cbl z6f8)IGz1OlhlE>`BeS9|1JCLon z$kh*8G`Tadmon)Vh>)&;G#Os|>JL;*pK+3fwv^af+K+4#vszBSOrxurTL@vwL6$cj zB%Dkt5p(52)Eq%yp9LXL@J8;SyO_%-g989Tr^?ujr3o`@(2`pV@y#u{yVtdIb~XL( z3<=5TT>J5er?RfdB$30{5X7VL1XVd^(0zlo3AEo(t3mZ;WM*N{7qSg@RIrReMc4#? z^vJARxxbyyf4by_|B#`1AdkRKHrjz-dXmRygrkQzb4HeX_yGqp$AayYn+$d4ar9!eJL| zKb)Ep`vu=(ftIU2G{eUekebq~+#D9H%?EK|&n#1&WV>Ki$`Mt}! z?YH6<%iE{gOE(bAyu`>j5MYu*9WTbHIk^a5HoBw{?)a9wn~~s>nTTbqZEtTWaF-a| zOF8Srpxjf<5h0^MrEeGJfF4PS8iy{!AJv@2{2ujQsxRhqafsuYs1C}judiQetI9PU z@>n9=BrM>9ZLg~Ri0 zPJ?&>R1X?JQ0Qe-$aiJaQ(1~WqH^SlmZms`I2WYZH4O4tY$YGleH&Gnet#%ti&4>< zCb2u*d9=)1=C1OH&aXeNVg#l}h8!GEnbZ4Di7Fh= zrZ}crQVCK8%OLlKivBU$ft*Gz#uv<^+WpF#V!=5d+|UBdTa^JIED@Nuo&LbzETu}y z%eNmSj?^~y;QO4W704x-pt`glt(B~unv$RDiJQOe;2JOR{6*1RYKZw(#-M;?f^m6* z5uBqFD!+fkI)g2MjEMFT=|RqCM@Bm-Ib5Jgft>ieb~VD*6PbVTEt$NA zNE#8;3(kxWkSYh(NJPP#1FAgfWCEYIdmTRD09yEZzQmQM7!lg3N0$t`r#;H6Y2%lO3yi}l6I_E}MojwOxg@)=Z3?*yu;$lZf>m8(A1cP$1 zqr-pi=e5f=h#30)nqB1qDmr}-z|j0J+%%w_h(y|o7yC1>#U;be0LFRHN`Tw?)en-u z`c>zYhc0NJ$s>I*Q-EDuHDahnauy+L?SQXkOR``O0ebYttO1*XA;KC{lFi;~UyNq2sXJe`LDMBt39&unnPBuQYh(~kqu zmy6jWf^ra;yV3%b0ZxZMckR9au6uVd8DGV*jw?WPr_m+m*hx$iq(zlZ`b>gF4Kf?H z9vCC}S5t!)0DK_wGP>Bz{8rOit1Kba!5>%a^-r5HV$2(*1Ls9H2ER#`{{X{^Bw668 zoq(||_nS8|y?u^}5v6-G*@zXg-PzKmTDrQ$XvUT7Rqbf$R4t93;o`Bvq~-LO&P$bN zI-#@Ty=%;Qrq(QY?LXKFjPRV4Opb%kMIx6 zD^u4oTcs}+~0x8 zTJQCjr;Fk(LF`1&=o+~OA?(Gd!D%_#ghFprMTJ4Eo2Pz95JrPpKP(^zGcwFe>QuTf zEhzV{&-5IJAnGlrcV%3qrqP_Yvm_daF|=r-`Oed&75VQVyE~1hCT)U$rd_q4T|h7s z>+oFtlH9Fqy-9&8tVE+Fq&S!cZDqiFD+fv5iorj1rPR)o993=-YJr(p(qPRNXF+aO zD5s*G>#U4iU@l+FC}CE`_1(QX8EI!sq8yIN+Ccbrxxc)_#))Q@zqfXO={5cSd8=sy zV{!{}KXSmZe_rn0SGUQ%uvEu%zXga7!Ih5V;9mFNO&?Ur5bk7HuG5HoGy*VYe{ubV zZW1_t0}Jh1gYiN4eZHPY3c<-eI3ET6-Z=R@k|2JPye!^&Y4S8kEye&K%&&K9l10y3 zd8Nb5Z#R_6NycYm@&QGeRFGQjM2dhVHrsn}?1)}mBSDTbq>0uNl1}Ob)(^ylq=Kz! zSkJ!PV(niCw8e;(8I*$m9{#{?fT;Na(lz{ygh|30d=LvjicD|6e-8wSPPLlg!Dk26 zpaqheX7-^HKo^nt0^vO3U7!>oMyH{A|NO}VEfT`fq;rR2ZO-bKGaU?LyPLZ1^D&{4 z>hxbvJl)fMItz!+(<%1PB8H_R#%b9`wb|ZtDFOy5_T2BPa+OKBp%{{~a$nxqUBn{} zqs0=;9=j3uRe}~EswVB-a9U-Jv8#I0PgQ1UAi#gQdmu4|@#E{Q&=HtcbecxLIx?Sl z_MU1251AND6Kj}BpHy`usts}({F-APt^?BX<*x7im%F&X(Wd-|S{=xTl}idC1ZadY zkMehiMdc~dM&Q`PIz@$JZEFOhe6e)tqboGRW)~zLXEFoiAF~tr`UKb>HK2=7f;XSq z)=Fk6W0J9&>2QLXUzIVWG8P|BmdYtjff&YaNpg-)PFfBvlbt{6J!CcZfOLWuq!WDS zSZ>okFgb^YoGq!l%lad!nm1R`B?FHM&vL@it)y3Yw6RtoZ)N{I4po;ga& zv+oV68$q#Lxtr9>Jjq<*0(p(-E}a>o$BC$}pYC*g&t55XQtR7Yv^!<5T@K5n$nDTS zuu2)Xm{dWVgXlTX3bK>}>e4HtR*v(y`Daw>AG6kSubw3^p3R{tZ!pOe+8GhrAxc~m zmGp9A0%gR=LA*i_l`D4}hlg2Au~{@H4N=dcE0+nwsPLTeP$~2o6poCxr9F8p?2?ZY zenfwgJdkh1f4yrO(MV;I_G%e?k%&+7+vRVO z%db^jZ6{=!N$r;M@Du3S>r$R(;i9bTzUJ$|JWW;V85<=cM+3cPH=0i>fCC}i;AOBL#wMc})?z3WNF^-ZX}Ww8{r*!(W5umx&w=UH|Cg zp;Xbzp;SHRX0JiPeA~%rfSl||a+H3PsbX*08ky{`ttHxy_-g{F?@q|-w zpkt)_8lmeUK?|ZceK8?VFd=vUg;US`2B`J{atCqa>Uib$c;)8tj7GFt*@AAFJ#wA` zG;qnX2}b7YMDvLasI!81P57Ynw0+I^QRun*nfX~BLkY%}!?XglJ7X*M5 z`^TSE{?fsIJXTh_ajVQA=Z9B^^uugg_k(LpIi4F;k~J%dSdU?M2s#-jD>*59bRbY* z)lWU5v1cF$3y{E`S-fj|{dRQ|tHVjpqP0{RVJ zi9aqgS3x{t=bQpcku`)DLD?PmUdmU-bAC?q$r2v8e)qr{^#RguE*GtZ4F_gRo46-> zUzapDC%X>;xIBMUs?Rp(o{V`4xApL$0vt>yN#ii6jc@Hjk$}>&wXae7*trR0Dp&8| zbNy<-hi;51F=n}&>n&>Fj0d4>auUn)sx|ueOnQxc603g;gcnO_BQbtIsu@I9Z4{RC)Jy#E=Wq%F!~=B(Fu%@e8Zd@AesRHf?XztYDa zViFa^q;V2QpGrz;Y*0n0L}Y!@F>|SrlAX!Q-54ASB;A_IGZQRt&O(teInpF6l)3p- zTzR1x7iS&H+I*^?=AnJRnscSIQ$WJUo*x`TZHA#2;@01@E?Vk`+!kr=I9u_)u|2?2 z+e+3jJkQS-e~ijPbujCB6KB{vy;CVHd2{$IGivuNBk_Lj7)N_OnQn=m*b!OIm#1DY zd>-yo3$HYCs^-Wwtvu-z5SQzUB~;HOSAW2k*1M!R&)T=tp4Ih?nRt6_C;fSuz&X2| z2dH7UG~XitRVbAMU?Cgl3zi9?IDZ}k)z~=A*eEzO;7BNDeM6vFVTwRLfgmTt9$`Za z<@EFK7yf>l+=%eorx<5Dgk-a9LO0P4-36qEe*6i{S^XyX@9UrZZ2$Z5Z~bFr0NK&c zCrdY3F|t~f2&k!xRaEr41-1$bRrIP{^B6B!WEVaYp=D3oycARyBW;}K+%`J;R@xl^y8=7)UnEE?DE|#@N z3y1H|&BNNB@}U{TuDHy%juRj1 zN*2Q>DWMC|ko7ikalh8S$@-$D|KXUYr~gFVh#_u7so(Hc{nm}kGIZPa!VhG4-E#ik z0^5X6*}P5Y*3Vm^Lq&G8p&*$KMdX*c>&|7a8W~^h`#>#`TmnQM!1ut5#+Ufk3e|fz z+JFEMhVgp`BIt+CAnO@V1Lu$$IEQ3?8^!wo<_Ak~GZGF3Z#9Si#f=?^ss9z|=Xs%) zPs;ThQOmh+?4Rp$)Uq)9a~cU}MbggrYb3lALS9o#{&76{x%DvIqXkZ)CJiAq4NO$` z@aAZo3y3|Rsgzm4j_|sU^XEfc{KtkWKrjI`$N`oKsVj(wdTe=F7pVrv?}DLnd3w72 zs>6F2Ismu$UzZWN2))O2M>c62nU%?d1s(7KpptcQN6#vp5to*GBUh5f?BRI z9kqjjXf)TTHrMDjaLc+JAyS;BGA7PR5G?Z!BBxB(+W2U34TZKkT z`9|$hcCtqYozh;ylyz);w+5!dk2*QO^e005hc|hgK~}{?7PPAmEQAD2A3%Y8?ZLbD zK?JD?&m+MH8{1)y%gkk^NpNgrMq?QRm77#MyFUk7UuvPAajLs$&c6DOc9sAYCd25r zc_~8!{}J3SbJr(m6#xa$d!Cb$vtfsq*%SjUK_2Z>@WGzh0=(x*`@;UA7qtj8% zIX`h1F~T!^GsH7yQAgfb#7jeBp-S0F1hKHVpb?^Bm}n5-85^uB??wVOln zAwlpWF!!V)PZiOD>C~Pk*;v+*rdbwc!y|%i`Vv%*EP5H=Vab_JQ~$T92_%Lx5-ScU ziEHUf@yQx_*<4&OR>DaFeG2D~70a5;Rj+K$VdwPFyd3@YulwPnG)DxGUu$(%~9S(osmG>VTGk%2D)Ov@{z{ z5@k4dC7K4lg{IOAT&Nm42bPbR#dUr(O_Cy@6@Ovm*f`KtBy2u@^7kV^6q}D911$n( z3zpZ9D!G^!X)MIS(RAG-A;^7EPR5Ugkki_0?ncei80z3}sCQPiq)O0!POOkmHESv% zT5_ajxCb9CrB-e3oYuRYRFu0bxQBAW%eky$4fR#gEXv&aZdx#}v#fd?;E0gAp zS=`~*X3>83N0>o$Dy!OHTc~2&q(X}xA}XC~rHqdoL-`Lxb54cN2OH`o2K7Hue55ET z%&%G1ogGzVsc1#zdEKMf-%wdqK1hK7;$^;I59``ZcIA=`f6xAMoPTW2oGUF6E3)4A zs=6VvZM*&$!&JZIT8crPfH_1q-9tS7`CmjVxBp8RNY!jgTSl7`Eqw}D^f)g7)wUEJ?r(6Xspnb|!`{8_hh**W|8R@P4CVdiBnT|K&lBvhcY)=_86-cqfus}iIj~zDJGef# z4&=%xkQ{-W0r;Lf_T-{m<$4>Bn{9tCF1NGxi4|5ivjNu=BiQuBdy}WvRbiu~~J^x44JQ1y0 z`6D0|gqVI7MYREqRv`(trIB2fh1sZlqt4u{%50;wTOj{7As;_E#0zxG;17BGa2o^) zzKchJi$fXWqMF_G&+o2ofZI)=D3LYKDjVd>KNq^)TK3+K6lrQnpYzKP{jZ0NC) zeka!I3b_}kMhT7-kYnbArrBgCK`KMSi>fyqe|9*W(Ck@NC`0pHl#%(Ak!pb%2WK$K z#H_h^A(uq=ywHqe>I2H$A{Sd(&v3HAkdl+pL#$hqLGe@a&2!1yi=|mtrc==p)|#O~ zAxm{^f))L(RgM0SN^l9h+ggb`}vJguIv;RSky=am0_ zKE=kqA|T3k`X!sly@6ZPZ%=L?0!J1Yu{!SW*LQ$X2l)0FuxtF+M}X|=FC1Hv73JM( zs>v~h8Jc`c$%@|R7FpicWsHswo((8q{xDYDHVjEl{u%Y73ruw%XicgzO2^1Nd@q=C zCtOY&_cBe+d3R)}E~$#nOaxa3S=@Zf?fsC}Oe)7I>tf2}5JL^s$K+@A-*bMy=6Kb{ zU=hgvBG*fMr`GDUaq@^&i2Vpg4@Zj6Ex?-L2sCv39?Ik<&*b(X1?hWKpMw?Mt^8v) z!-)!NmI>Tb(yVfWT~PxKNquq*AKb(P?G#aUflM{7Jv}d!s+R_u@_6yC`sT*vT;)|X zLt5sS9ENcx5q58NQ)bv-<`H1eyA(tB>TsUV)nkm7AE2 zFW|)s4IWQR7m$bQkc>O14o0rxtCopI+M=sy(YHTEvHPNS)S{DgNd&{eM(~rF4`p(F zj_2Ac$$5*Oyj?*EgfzF@Cas(b8*;b}{4|j&J8uo_sqQn(t`4};n-=wQ*$g1?!mmIi z@oxROhfZDrtF_r#D5wp(9F?iw?m)k&BhHo($MVIa-kYdFdqi|qffuL*CaJY4{@DVkUb7TP1I!ABB5IDSW@kZ##P&kI}Az1WqX%(OYJ zZs2x@*g1>Mq8ff0(cGI7#pq=-I@1s>6iIp%+wUg3a2GT#Fg!Jkd)<0l;}RPi%Mx{f z=QR(_Ht==dWZ|MvYL)lXI;H$pEgK_`Yl*T@oSGRz>yXX&$gi0*tK-?Y+st4JkED$L z6txq!dwJyk&D=bm+!=8ag#wA!-pbxCD{;tl$mBgLS<1U~*lr47lpJ71A_%9=DL8St zIhf(@_A$)HDCSI&`vbY5kfo3j4{GHhaS(pC2} z027C)6@fCo0g8cyjox_i>eY=uU%uUV1&b~&e^Xfg6D40^J2%+Y_o*ZqoA!=AC8Zw=PFug3Bk4zS?D%6MZd9LUV0N4>T2GhMvv3vX!` z-FaRF`<`!H+6Z(p`1?cZrXro`>v-v-rT-i)Q|zl3GvKk!^E87{Od>~#X#|y8ctwd1 zfgdw9?CkHMDZkLOw%~s3R4eV4dK-1mhk8XwY^ZJuOatEtTK=t}NfE?6R9XsG*b*sc zNHVeIJ*!(n326n%xH5sO$FB>Bqmg4I8+9YDKmzQ1Ld&n+9Hr7BI+eF zB0tvmGGA4vx488NrE^{eB*(t0kY})51bGjjMY?J%!{mray8KGAKL-t60?Vd60#d9N zO3$B=G4&Ngyd_t2h6%R$217qi9GzDmY6W4b#Sl(GYF^&EGY?Qv3v5!uhmsnqBBpRO zw#ut6WfnaFt_#e{46`%TnDm|M55d9HZkLudtgMQ_7Y+u{^WXu=IlwUP+5jyQsoR0@ ztKrMddmkzfL>Lfqzuf#Yav2ynXi+r0ZOjgI8q;tVAc$y~hq%}boE0+&$i)XAoTd^# z3}?z)9Bpl2s^)!zR`d#q$q}^@&-lI2z(>k94@Kf{;@>df_BIz=)fV#>$WZzVFexP6 z>>pW`6`N-p3^&fm&Uy>}&?4_&M=diNdF>A$dKc|29P5oq%)}%E+<}uG3dvprRefpW z(mjOaz7%%gsRyt9S_DGM77kyQ*{f6*gL$#|oysxqv5=5e{DF(kJrnG6W<$zcArbKy zQcmr?oC>Ra^bnWWBv|a+BydL%48`1X=;3jDM0B1*U}7DdJMlosGfXu&fo^@!)5n=w z{F`FGHt|dmhR;_=(E?LafL&#mO0i>;={oYL^T?y~bPp;%MZmq@+q}GZAlpnoS}c^o zMN!d%Nk*9zANSxD>v^fis1wvHi(kLLWTWiZ`#%3OB9P`4k4NE31Xq;Iy-ZD4JHe=) zQlmHN^X>f0xf8<$({$47M1@weM{7Y){H&CRQlk*%FAhb)Szi|N=foGoM^0fqqLU0( zg(=SoM#*;eG!zhqu{xw?0vnoOLDx*m(l0_!MVscKv1+6RTh;O@Jypr6;$RmvR#R&5 zlkV|)TG_xVSAvoo&S1pKX#4pqAC39+uksx^p1__QOY=QEpn5AwGcisxF-bGw4Vx(F zFW#`esWeQI`?SIYKnG-2Q=F%1_&*W_XckTCD_#*=*Y2<#dCB_f9yB6P;Ej@ly?zs6 zSbzTg`4~>14R{4b-@o7?)-XcxdRdv(vUU*VdP)%`ROnH3&Ocf{-@A)wh4!$P&h4_R zi0ldtp{IObR~+H%EuqrP>6%%5r?V#R%X^R8kLr1xV?15w8}ej%InFiQx;V_adQ*=i znMM6O#FVGB(x6s@-6`I;Cyp!P=n0$Tk>R%T&YF~wg`S?-HuB>Ja*I6rz6Dd@)JpZ& zuIkQOR%~YUG)IH(=^*C7hOY7+9~x;vkK_J6F`JgkysqWlSKHi}M-{tHG&E8C9vHOq za*C;*sudYGi=Q7+?3jrkA@nSd>)puor-BCcyw@`GCAE?|R=lveZcaQ%l~)TS?Ia}Z zgv2cqy^o2lVq(38qi=2904Z~(l=wWLc)Z?P8DR1lK0Gn+>FMd(e_e1uA2MN2r$Ar? zZtV7azc6n6yh?y-Y3;BhL_pY=-f?{DtVMh)^fo9MwefT+V@+Zh5uFe2O5pg!Mq`bH zV>A4sZ|(fmX}5br7}+iAxwaK1C|OFLP-XrRW>mYkF$=EWxJ#S)_$V_Aw%{+wc;LQYjq z-wBA%PuW9zrS*g2*a_CeH=gCi1fm|KlZ570o@U)z6T>kdsnsU7HZ-L)@mzG{#o!tP z4l?nfQcKCq=Tx*hHvtz-M!fkXL7z*YjwLve>z#6@90Fy{UB@&^O*BQ5z6hI=nr;b7^c3`DI*!F z=3-GssWpEYd|!joU4_SP5nbOUMHD&-JJGMLbk1BmnRbW@_m+AWPy(~Zo{=CMpthzV zYI1r|4K-f7%$3F!?ReX}=z)oK)b1sp?RVW>GE4kgZ3>pOvL?4y(YmekGk@aupjx3JB2AMhW@@&>f<91@ynEVn>BU2NHwMI5G$&Z^mZd2{ z>-YLr`uDCyp&biAL40^@m(XvJy%=xIqxeM4W00pa2;%~u{rBWyb|YFGNuXrxIuLiT z94gmge#Z9_w@dxy#TTcUGax9RaY2CfKR2#`G3gYvz99U%@$K^djs0(zXI?G8jy%<} zh->L;@NAi`&yPC1CGFwS<3o|>IY7tKKFA8{%uTZeia-9xFwLX}0jsL>{>Su`3#^~l zRr%2cTB`_tsHfKTd669MOl2P^hxtX>68U+=LxXe^*0m`L+Z%IV)MenZJ0bMx5d}AU zbppTr8=AEF+v~t+<47Qc;n-|`++h);8$Q>{CC|KB;pHss!I{?9nWot#MGQ;voTZfR ztyS!;rIJg;T6d&Trgfxg!+Nbt9f57Vfzj{7U-(`BpjV6N^ZOBb-T2$>?*zUv8R``OZr)N9;-Jt z4>a-mIhVNcY`MU@+KY?=yGN0Y7CuerT8GkjuF5=Q`d3dT9H1FU$g=@LiOkzStz)gw zXl#{xi%aE}ov1UYkXeam;x94?W+WD&%24-3ABesZwq1ztbS?4ay?B=Aodedc@3&3A zuuX}2+#=^JXRSq}df$>&qf|6))Oed0R=)PoF7vY_h2&3cB8bC%UIYF zaRwFGNY|%jmb;$hBjl4+b}v{$!I@(CgckCIIxo6$FBo)8<23B1u04;bs6@ z^&k?XxqYtk9oW$U0a?~5IADJO*+$g>*9A=&UZvXDK;gM5~68=9BmEBemlhN&+)M|5rId|N#8 zHzSV!^NRJ*;+v{JpPv8G5j=C7@(xp!N>?-GFSC4RO#8%1e-%&GRyVrVSxc6&+BxM4 zoZ?Y8&kRd7K>0`nI@(rBO#g&bfH_S|ov5P4AoHhjQPtv?G-pRT=>qO?b`3kJdEn7A zlq^o@VwG2BQCv2p$7~8DJxUROfm z1+}SEghtF=fo|Kh*SD!ru+Gcm`-Lw$!n!ullpq7n!FsMU2f&&Xl#*|dfsJr<```ZT z|HG4)8Fk}y9@EG)#otGYJTABkrJXMrN5(GX^v%(?@_8J_ow{IO-$XGryhU|2VUDJZ zMUgILOOb()=gmHf=@Lk_^3Yd6cj2wB#!v;m_HxgrVVas_@5rW+|6QC$5TeQL_qYwV zJ%W}btz^ako1GcIcK?OMk--LVrW}#0Jt7xKhp%Wj>q=nW#5A~_&O78XcL+=Bnff|- z%EyG7S-C+#AUESjK8_U=lu)5=_*I>TPA-}<#a-_-fmPP(!g%L8|G#RnoG%ndT=ef; z*8gLX@OX#5gS~#sC@&{ra4p*NqM4_`RqZmUfA^copRdRZEjOAr~zoS0jg>nBUqGC!+vY~Aus%k(akoJS8in-5)8 zk@jAcp45=C%rr6=9gS34W>Xrs7z(!pE$FOdt-gCmLv2@;0Rd%uH+e2!Njfe$X-~q7 zSIqWCLRA7jR*FtXaa4X(-ZLbo{f!&boCDFmhrsQ^#BbYkTR-g6pB=fKnzz4WGeQ8z zV&4uwwvMVDd?a(*p!z;vf*)cS2&%_TiTE zSH_kE{Rn5Ovqnys=wEwY{ZhIUPv<@-UI9D&?ThJ+=i;jcSH_q%8&mlkQ@Jr-1wCFX z$}8NxuHB`cS+Tr)?-XoL6?Z2vvt02cdgrK^3!+rt)a!F93HGI#HyY^M_XqMcy78VB z!mitamnTv4?cw3$IXApzOj}LKkhx`TN;c+rmuh4#?yVD_fx2P16?v=jI)nk-3c7yl z;@Yi?+s7dhKy=tJ2W&_1E6PT6H5(}0Nf`(UL>#t|-Cw4aiy|qfbG^$~cH-QkDme&k zyb#qJ#9u$v#m(H@QKO_LE8oQ3LSZv=ImF#Xu9_f2f%1+qSPgii*q28o48fNUU7k^2 zcB$9tM?MyHo^qzDTG@PRK5}37O6SgQ{}&Hl1-{&3S%pVJ1N5m1{AVa0TotDRRVL|i zHe)zVC52qR^&q4|P(Dn=B2kUpmTg^+66UC{%Qb9#AX8#Sg48T9bXE1uxv$wf+ubuw zg-w5(eyT~MqT{(JW|YfnkjunP$JZq$3Rat)XykA4?2ck5rQ}YeEAs$-2E=G2?Zkg# zd^&Z+BvNee0%geM$jh&;&@7DBEC!aYs8`+- z+4wBUt{>`^3LPjC3RU>+pC_w3+dZSmYhTXG**J50TaO9nO$Zs0DJPp@GEFH1Au00( z@ezL3(}$O$7MBYN>C^R7+YO5pX#U_Z*$U5u!yaD4;S^|`_26VK%OYBk&DD00iNM_~ zqD&&r+YVmpfiJ>}jyK^il3{ZwX0*#`EI;-AHN~mDHMyv|P2buF%XOELn+q1158P*%*|Cu=V>u{}R$z!<* zqzO>>GU~-M5L3P67+QreCXFI-X=aV`eIr~->UPKbe%m%$K-NxvMR<64T@4IEb#?9M z1CZpM|Lx}(M*0+xu0wv-!Q^w$sVsy3)Y`4!I=liw9I&6m>YOPEL~b11X)HizmI^qE zw0IE{xAaOd3R772j@bJ4IwjfD&C?9gz~8~VA7`9~E%EA) zaOqDK99HYE5gLRr9<9bltd(v9dl(Gb(ym{S`=WWjnQ@`uT+3Pilf2rEt7S{k-Yl^) zY=Z=o#(wzDl0dW7X{t80IbY-AT8s#r*fFSbUWi=PeIol@mDBav%y1312?Tbn&dH6pG&R%2&+aMYynk(~YeQLjKZ4`qd8%JiU5rOReDZ`p zP=)1wOgM7{|J_Q;6cJik*J0k<({*DyKkgNc4*XJjqV$XJjMw*V{fNt=1J?S;q7GQg z;le(QPQtSyYdMgR?O4P$3o=wV#{N>?=AoDpLIfdWe|ByQQ}d%K%Q+qk>uR*aQkH$_ zT0evClo^B}3j09ebZcqVGLl-NmD{IjZqH#kc5xoY7;;zqsj#jQ9KM_Cks<@_dY33P z0(vSzluW+fEET~SDgx;lD%i{nvD$^#DPGe0g3WWZU%jxLfhKLzF6}fMll4pjPh%Zd zi!a{RJho$N{I&=GH1?ZZ{4s)Ujnpt$j~E=PVsFnDpChfaa-H@VQCnxRz%)p^;5^Lh zEMlzu8(3HtMYDbKY0A_m6q{s4i2(~Vi^|O`!9g+6l?!yv;rc~w^K=ABKOrKiyZg#K zy@@1Ngg5=d&CYDb8j}XQ+oAM7Z^q16#6SM@C^CI34E1%8*MNMO-7hu+6>Yd7G6DAX z_QPijgl*pn**-ADrSf9D9x=6|C#q7gWht5^N+-B>)VQ_8 zDVn5|aG8~&l(zd`kC^!zy~a{iWk;QeWlF~r$+teUW_-q!yC*A)7z}djJ^lVm#P*}` z+XA792Zm12JrDp1;r2PY62{mnWt*AwJza4=sV$))-heg9Q4||(K+C`@ij9TOoW-%p zUQ!GMA^3*5;6{`xnt+AYx<}B0Ko8P93k!X~ z>heGXlK15PuLl98D$;@6lUp7MMY@p(!H~*798#2d{7wT07aFqI6aY;Fb}vG0E*_PN zO82rXwU(GjSK^J+F(5|k{}sG2ssB~LPucSp3p4H3f8Endk%{YxZP)eB**??{@7XJf z>1Bydu^maAN=Q?~1~#(wnHdI^S{mRPXHj$aP*q;7m|?lOMWKmxKu{Y0o*;gOpTF(P zxc9~a##+Yy#)Z5nmwtDLevEC2cHEL>i2`(p#f$o_vEF@_27MU)K4HB+X4XrBTY5Qq zC3JnV>^q!&Zmey$P}#{L$%La`ktx_3(fbDDa$d{nI|JHJiNB7lvc!4=3e1`0s6WVk zyjaizZhxu`3``#s0$aOS*5+L+$XzPvs%uqIk>ed}UB~e;CguMq3UKIhaY%Mi^HQ_0 z9{0FHUAMCF0HBMg5Lx*eNaxlQuENjQ*C^Cb#t_apF*Pw^S=7v!US5@XEpSNcaUNBh z-icxtrphx(jM%%$j<|QTs+A(BeqjrCWUI~v$G`BraA>HuDb&?Nq{%hNx`J}~ z;(U59ik>@Tut3d@BG@RG=?bSOl{M9`o^PqoqM9SRc3}}2#h~LU7xPgC3bKVlH3`4k zz(V@(&*l9nrBk){pi6az^!V4tYs#x!J5o<+Jf}u65I_>Del*m}b7i#dXgJg5%gX?p zY~#Grc*+xyG>_A!5^YXK%yzOVD=zGqo;+5AJO(*f$pMC!2UL!HRE`vFKP|a`T2i!7 zSt6f3pfX~94C$fw%k=>jq8;S)h~7(l@^kq2!%XfYpGb$E4@+j!_j{4Aw6d9%HPIm)A9ghe^Om}g79*HYS>>PyaO{YYBW zY1K{Vsc=1)W>Sk4KbbORINSq&OjNGGwmUkWg`%xc<*F~1GO8(CaqMB#<;{F3yevd~* zPpx9~Wd({xB#(5dRm`*A^ABA$%Xi=24VGyZa)P_kgctEl&llQZ<}26ZtC>}K!Q`HX z@$~7Lp{-%Q;#T~%cRoIanU~j3wwC*yjHgNTFUCEtcaozL6UN06#SsmuaaRqD$5k{ag1Gbzy$d%5+0dy@6#m8_L&4Tl&)7bfOPs?O4=Hx* z|Kk}RI}`6x!2;sm-2v!uAB#p@F1t(*4s@&LhuLKE_aVNAYs^B0~-v(SWF4 z&&tiR$Fj$Cj4qI_kS6(bq-gWn=e#)S7QECUFK z#Q;S$zJUSGNUH*m);%aXh?Ld8Y6Qe52b+tb{D1&u8FGIR+Swm@9SYFWJ=I09=W2=H zsHHLf+%wgE+SA_CBqpf)i$?@hZ-!Lrtgb~xU#x%&omR}bXcfIYqT+<2tzak}Gfh#9 zeYYG+x|WN;Vjpvz<}2ebI)BR2?lL-Jw}q&TpD;$~olrwiF~m>JX?q@G2xn{Mz=)6- zIpQ|yH<^^HRp&V{FXl5;a%<{aZc%v*$=#rk-)WSP!BASQc-p;_TQzXQ*pq(UTqB_0bS z9(_l=&?$|15@v~IP)KLOo;N;w;W+K%=ZB~t7jK|HHlL;{Ji^zpq{LIj{u=$rSzCFY zRbc%*tJU)a)^9GASe#81osmpbl1S!DhB1k3NgFn@r1eY2x03maW4Q7{@QTlP#*leh zzhE>27w80AC+N^Ys;c$bShHhvua9A#4VE90_ES}?^i@?@zn0+IKZ(-68Te83u<|$F zJar1D*i|8ca`t#aB-Ap>J9((&d(tR9@pvxLyde~yYC}4!;LU8#R)u^vUA|E!Pd-a# zd9i%nLJK*$fK0b{N*Z4l4(petG=v^#s<}ORa`IeD%(wpU4C+2fLb~wLU+%WVp1%et zqS>o^DI$BN%>xc})xLFz56MG7qYRPW>)QVeL-R%88-uDFMn~$>UgFdqGdTW#*`j{{ zJBb8L{Qc4S$(G>PEuP(>M9ariixn+~6Zg=U?WP6Y9x!g6Ncie#&+#RYr~rdsxrHEN z3_L+)q!?P1a<91EK}DjSCcL+`V%zu^Iry8)xvHi$7(M)m98*Tqd`iaCVnXBu!@opm zcYOJ1e|u>rBsa6r61{{HWur);3;oT_$v=Jj9h!+>!wF^!|xk2kE~* zAm(0Mzyd-FDHMYw4+1EJ;w5UYGO*MB5*ejQ-#AU)ENBO({aLY4wZzI951C;KA{k~5j+m^!&5bCNxirm(?@=Ose9 zCYaKgt_aq1Ju?9g=QI75ZBDtfc~QHES{Y1=QV>#(o#c%0K=?qAJNcPivy*H}&b;C4N^u<0DeSP~CTvp_@GJ6jLOI7u#T* zVEUZ2ojlr~P4?=atavYgS0NCoL!`@WvkdiEMJZ>P8Y8^pv<0JzZH_llX4xlmT2B7= zFwVO}gFV=N$j7b14)@8GPtL8vCB+WeuZCnaG0kyN*jX85>E_Tj35DHO`Leb+ygbRV zzd7X`tCrZPK$GesG=B)ksWYU8furdrL($!KjMJ_Wu#x7O-Jj@_Bk!-aIl%A3ol9Q966h3g7s1Lxk{v743GNvmqj()+- zk*1u$AS+ly|8f9FqkF*SLqEdcn1F@Ib$(HRjo8mpl7@@gv33eVOzc_L=|m4U9Vq(( z549V*6ueJ5e@z5yL$^q-A3_eNpV=f_qO+HCDmjKyar1GD2H=T3IE#+N-T$a-K#Uvv z{AEqAb++}?XuUDrJN4F>Qi4wJonGo10PDMMd#A1!q2gtt1mI6RDIZB$wM&LJ3q-G| z@)E5tFn?ivf%#B!%=mo&cRnO0MNo_tVX8uE3imqZ4VUyF%7mxe84^$|;VvrURVR37 zuB^o$EP0mwH}9teF6hias`9T(zv=RTiHo)ZSp#%y{w$(7q5q4}iZ1;jGB~me(}`AO z8A~qs!PEDI%@3QRj?lT$ck>VxXvNS=i)2-mp^;hKq`Fx@ ziqd@J=+)m+1e;1D38aIFq6M22vdq5XvZxGRW8HAy64WErd(?!*dsJO@#I&OpfL)PQ zqPwLaL?>Uhm3UP_2&ES8vuF(OB3A{pxP*YN$|eieq9C+;>=l8gWg7jQ*VWfu4}ZLP zm$q{*b5`lw%q=T`?Rihc=2`Sw&Fq|03Z4hadjq#1 zgMC8)xojiB-VoL)*F$;B7a;R6=*+=Jh!vjP1$`&tZ~OPpq3Kl>>tmk6>W~!t{RDVb z5fbXHjb>nJ0MswIO~Ii0t&0ZaF^NnFV-A#Vhyhs;K&xkO?0s0;7V~_6F4#rlP1t_> zU6ANmb%H%+=|8qV`Q|Kp`SBcWNJQ*94RRJ}+yXfO7y=-tt(y!VQ5#xNo(vw&4jv9t zFL?!+vsb#g{`K>l;YYLTj#|QP+tcqf9lXL$LPw`&7r@GQ!oq-=4mi6#meC$0`8`52 zLWWAe>po*47O@@Ne?LH0zijwW?tN|@@Eo5#2s~84Be`)!{h9Yfyuur|O9$`hR3ZcB z+Yy%Ya5;rWjCt?RsYB5EwOXeNYr^zaTX1JiV6#}kn~vZgM!<+P%I=9b;~-Wp52b)x z0vP7YAjL1!sl2yu~PH95|so1Buw7!KX~B zSWSvr0F(;SNc&1$T=hCnNVWny&O4~SUhP)Vs{43k-L{T%)afCH z=E}=1?LqSn#bus_F7NSX4V7%K)wVX%x?&IYw$eY%tGZ_Px;i0=5zWGy5dY%?C*OG8 z`P+~3`IcLGXYZO_ic9`6W;*NQk4hyvk^~+Sd^@SL(W`&24(*COCp~(a#`D1VnX>Ad zV!D3n8k6c12?o~l;(dpc1-{X-?OUb)^)d1HH{(m^#s5~M)qFMJ5_`re_MAhE^y##Z z>9@`C{M&;3u5iAvs%og6n8;CB`*4etub` zLu+`-p{4Ouc<4N6hzlw)PVL~9vCUc@@@kNqe{7i(cu?z~z2ooeu|OC}JM1oK?=UD6N>4 zO$#nc1F{F9UDr9tE5A2z^FJ~LBqKw}=?3MkPyk<^ECiDwYFRhP+wnj|S!a$@&fa+4 zPDt*mY(nr`9+jODR?hsy|BVdayZ7P(4SlnATO{*ydPkQ#$g8N!dfv0tFIe}N*wWW> z7lxz?&(9;S;9CKlH|R-ApNc}T&yCle=WZ+k#P9X@iR9f;ibbmtL>ScfM!SKn_r~1v zxx=CImN!D)BFg!BuL~A+9sK@&TStL-8l;}p5(@{s-gU=X*C5^8n)%Hby)x(8qm2#` zbLTvsY9g^n-riad9)OSy8nS-@KIG4LvGgULjA;>r3syyEtU!V@1Ik}ueSAR#XMYvH zX@=~QgG*fNRx@wK3gChqyoUVEkSoY0Hi#sbUI63mB?S(0`DhBnLIE-XxI*5RGeUYq zppb^x;XtNVC?Kse6Q4DoeTU_>{l2Apd|S`J4qdtDa?EK9Zj=fWTTAS>`%n?;$$ zOvK*d&K|&gm;%8wn??_t{uob3FhK5PU=Ak)PuaIonz@r|*xN!CN$je9-Mp-G^a1_5 zSl`lXOZpWz9?7$;Z~h zHb$OL`ao5s^zA}VTV`hK47MtXDr`V9_;BpxO?2hji|L$WoQQGvKX+wq4(PvP?3z?b z)|5covzRicy9;3XWFAS(Rbnaz^1AnROX#RaRSjVKz+)OAA8Z^v)C0h)`+&CTwPSE! zzUE3I-ovZ+;JK3*pXYQxOO`RdjCGPR<|((nke1Dfy^=Nl(!)1StoYX5>o47?_SF?7 zW^F9!^K6&tn8|a@Bym2Ez%U33i;0c%TCkgA!g1R*UNLqgTx?XWQ7A?AGE-E$#p``f?{)Iq5P(_ zv(L#vKL13WfK=5!-kC!@b--We>S88;qwM|NX zk=FmkmINONjJat{G-e8Fp)3acsp2 z#^h9-GjUHlQhk-Mf5HB4xU7!~etg;?p7raTrcClmrrPO~<{VLm`?w9cA+#KFIDi!> zYM#NPm1BKJNz#GStjcbW12Q4ZSKdShdoNf*FDZzm)Z5wd^BWR2bHg`t+ZrJmrBUxe zTLX}`A)BnN>7D+AZ3Z_(Mw97gR#RY|R(4!69Ml$9U!V9tikZf_G0OTpg@CAHaIn%(*}mLM*Hf76;mQZ#jp&H9P=C0m1-quImuav4pG1@Zs!J!fMs9GE_n- zFrqdOm4R)H-c{EVQ?OZSJPAG9&Q1V!EPKu=e31XqRkM}?}(%EK;{D1tQhi^H|<0g$3`57d^ktvg+EHH0jE!35#98Ohw*35x`prRy!!^Z&uys`- z#O!o~?Y`;|spPA+`>K|$pUQ?v1zfe>SM^pZxwI3!Z+ zZ9daB$WKmiy4%HBvY_=!wvDXnfdjo7g9|%@!@C&~t^vcH>08tu?sJuN^VDDGd{VpM zwC`WCsWy2=aLoukDS+A(J&5)ajsTi6<|PEvum zN|l#!Ul@US@3xw+MN;mT?oW>U16S)YXHOWvvQ5{``tOpgmzAJ<@dZcu3yz!Jn2~=5 zM!J$lx(2%5qdxtN6Tf#?%@Ko!mdmVk77&0FKk%hQ z2~3&A&;R`Sb~NUUX@5o?OM`5cqFjNopHoqlotnps+hxmqWi=@t^%c&I!S11DI6{pD zLr9eF1+s2VfkUYP|8dYRK5+K%9_si@)W;=neO4<4~RNsdkC;n#Jdj! zipf{Ug%I1W(1WP|Zg`wJn7yvkb`3O>XRq5{QULT160iqpsqhkn^`mSC_!+O-fuV8Z zxD~gAHNx)p%lgmrUp_?#cWs2^^!03uOs+xlneKz&P2~P{VcpOpK%5WU@q_TDF|}6u ze5g|Ofw}`RBhg?XF|4UVqKzGZB6#a?sHX7Q-jIJHjBd=kAP0JFwQ!CFu);KUD(9C= z>pQge&i$E472t0h;Q;l2ghR>bhIUt%!*)dYcKC|c6#St)kAh+#5zVtptQX}PV*R73v`<0vnlNQ)Z z4&Fk75g{xF00@u?Apy`<2vVLEaUK#m?gE>lty*N`1N7446MQ8g*F%C1nvif5P`h;V z`a+TY_kY{oJ;XZ(x`L6@eM-4Szy; zaPkA1o8#|4|6(ju`&1Ql)K3$yX*;sAV2V*TbsTPVMTtqt>~@sn0}URYW6@jyFf&wFsr7<d}rx(m@Qv(E!e-JEK!YTdf04 z*`TrE+tQ=Wq#Y4bUR&3E;={Zv8lV%nFxTz(BDTb*gi!$;O>c{~I!A|SPy0?8+i6{| zxUAfwsD$5qH_hJL>-YM|8JRI$f>u?gdH0LFT*29@R5ODI*=_n7xAfK93?|gadu;qt zaKX2V4$4if8x=tEc@Vrv=Pw=KJqu;@HT&n<5Y7cB%w z+s!*Txpo`}(TYNl1UP&OuCC1t!B5j5-ss~i*vM=7${Bt^o(_>Nc(SC&nn9V+s$~ty z=vSkG?lFD?0uo@|=mnSEwjs0(a)3Gti$;Wn+`LPUW6k_hZY8u1ie72eI@>~#Fd3tp z3%6pl{Dq5QumY{k<(i1=5RGW1h~_qj`D}QBdA#HdM}ROQc=6vlm!~#6a2DwkwrpYJ zGF8hU&e0NJ8~`=}p3rSK(14B?3L}U2_xncxlB}Ek*>y$7XDm8Q+FNQ#(#6*?xdM2^ zNG$w#DbNVo0JWqcY+S_#D+@enh7V=`3r^liccBC#X-bw8UK-O!bckcfofkn0C|@9i zpLp5=*zMN&XAc7Oi~i9jOhqSQvkY zIALktDLa}yz{(UB#$@L};to;Uf0=iKV$wt%G{_ZX++6U`OAH-u=rD7;Vqf!F?pHCn)2DUW#Xa1p(CNAD&B+IUFj!R29Ix?FQBK{CcePAxsWyO z=QC>b3N#(+cySKKxfN;V+CkTh57%+KS(aEwYhz#SrWDPn8-xnwho08+jcbeXn=F>= zI3U=uU$7CQ!mOe}5h|Rk#{6()CYdND=a*a#k-!gxpbcfs6KV=VB%BYZrku`j!OWMs zm~OgPv++L`R0+!#=oro#GI_i@^}y+wuhW{Z(<@Iu4!^pAy6&X9ZnL^>OxHI|oige@ z2kO(Wk5D5RoQo4TJe+oNZgqY4qsiVUjCl?pw|_tzfpdMJe0!70R^b3%a z2*hL*961K!Qn1pk#%RiNx;m)3MjbbeKU>S3@m9ymaiaX==7Xfln9E7y=}#FSOPyBK z`C0MhFD=O$a)o?6!P@T%d*i#*M_-e_-fAHQFW~A+v1f&oAp#Ynfj1SDJo=)0hsvPi zpL{6e_27}_RiRA}sm2aJ*Oj%f-S0}FKKXYaOR6-P`i64})-X0Xkmq=bC#KYOgFLL7 z#>cozmShj^qi0Y`blJMCOB%-RmIPaeUgLGO9&LJgg2h3Zmfx$$gtw)Ic%DtwZAlfg zH@bG2OF_hvvcbLalBcQ%yQE9ctZZg5p)li;iM%qK#xr{y0}-Hvobw?FF1mU-+UsRZ zdb?eEz0e?VX0E^H-P=8XhJ3{D_XEb%5_#4q&*tGNpL$1npoH()h8WZfH)nn!)oU;= z2}pQ+h=DiI3+}to!drd3)79q|WC()6&Jo=AvM+&e#;xuasN*OJeYm@;eh>x>mH6&S zEB=$kUNY*dv6B7|2Xg!dzHpGQjGgQ_8FJ8uj8H{dNx39!!z2+xC-VfzZC9^G&k zzUr)f8rdNr@KIzHsP7QI4yyq43*f5y|0x<`v}%BkKB88QtO!s+46D=%oD4ew3&Bz+ zoCh}HPmk!(t&r5zA24Kx6vV6obur_TpJMAz&X|?veCpIf^j8lMHOr2|q-#mF=_KZx z4V5pt8I+h191{q+t~L(p@VjIe3W>EUt*57b%&$u;P?rJEiM+yCtliiQE*kJfv4}M` z`gUL`fD)#G17ds&8Ux|GdBLA^zubYX*ELvW-#mwSL|s6g=yD_N!s*BQK2wP|+=?D5 z2A)%(+7d6)UW=KVq-PY&NYNQEI-C21P<=F@B5r6dt}unMM2!6QK`|>Gsa11%sNA zt58_Ks8H-txi(g|RzNuyd8TsLH;(r4aNOP7+F2jy;T=*``?EIwd7SV!$_P?VYbQR? z8T;(3Ck`42psT9**obNv=XBwafi$1U;1@#gv!9ZtpH7?A3d@!SDxnJpvQ=kO`?yN& z$$>UUkv)I^BMns^~Hi+5yZF59x|3+x+x=%qQvA z!e$vEY0i44F=iW?4kFo3xk2SVF^-QCarQ_=q~}rfPt?)`oeM4aX!8Aail=`Ohx!m7 z#Hi{*XFw(j`1Y>vM5;K1zU~rWGRZWmMO>Ro7N^114PFEAx~@#ayxPHc~E41%`PXM7fF(#e|{|vYbRU z+u&?!;z9XE`-vuu?e^{JGX(mtWj@+RGZGmh@NLTK46e+S`sPHAum|*42;39Ot$$I8 zg+hUax+aPu-1Cv<1{MFB$BoTEFlfIni5j+&>8OihsZgt2+ z66N~zW1v^mzgKiJCbwl+cSJ*Pq>xuk`}_xkwsHNoNobo-e%T}Xw*430{E%Ok9;Fg(O0MNm;4>)UO*mHl@vH-poJ|({{#cXIq@VUsiP6gO# zLx=9{^FId}W)WuRA@T45q%CZw>1>X~8n$fbHIe;)ihHt*ez^Qny{M+g?8ID1H2^-I zJegn4jJ*s!hpfE}CJk6m_M(_z&45lMY(Ain@VC^caTSG6OUCzR637NctFmZRrD{vl z0Re|Zz_wEp^ukZ!6!I0MqEc6YQCOsY4fX;-O}vYe?MU_mA<8VC|BY8gGwVS_pcU>8 zqelbh63}%XaJrtcc*PVXa_1}K`y(5^ToIDA%;0q{yo@6T9)_ZFBp za&MOxR=lAzRpVZ2nemPnpWj38$7T+zY#7)R_d;p44~)8ipMN~oeVmoYLjrHq?@f8( z7<R&RZd=(^uo!cFP^^r!V zw;F}q+58kfmtsY3F;xR4gP#MnU1@pV10x%8akroCH@s_f@rLL?y_`XwiR`WZHict1KJ%+)d7aU~H`^y1>yQ+AFyQV!)YYvWX8>i|B*V>_X8 zK+v-ItjW7OjCI}pQt$3_d|07<+^rLHcOe+cyd{2Xa5v#|ug1DvwPt2km%&ywnIu|} zX1xL}RU_-Ol7|(u(Ao(q{Yv;2Yv?^>N2{h<bf7z)i~W^gabU_CiNB7GD#78)+WtOp~V^b*FOWPMU@C*C>tZ zXQv4%n5G^cn|B=R0oO@KhR}YgnSGLzkY1XScV$mNdhJwh)IHAUat2Wnk3^t<2)T=* zuVc?Zav6*kq3v)`tJFC<28kYlSmkk-qBlUXFds}E(a;%QTy}n$tdkLqQ@;qb3nZW< zys%F!ecqx{*^B@N6n2isNbI50%09x1@HB|hPx622V6Tht58Jo+Tm+=6_EEX`Q@Jfq zbE@`Rn}N^0_2^}FAcb7u-R_0FRzMd6`Xd&xv{lZ%eTy_JlpK(X0|!e2ECv4clTds( z*0>_&#@+;@WOQ$qfiy4VEo)3-{WazvX?Hky6PPlp!I58_kY2_MD<&X$g0B?T6+;Gl z!By+biK-c;K8}tm#d?n;QQp4M}sOR7~r?uxR+gsPV13AEXAiFp z&?lLR-vKJ>Fi!P)@>W`QZ2$+pHozcIAH~jkXEb^|*7(_YEJK#Yoh>a|PihIqWvglH zaXCZ7jV|wdmtuV=pdz8LX1co!08mULe9W*=5ks*k1HreP+fXQ9luL>pF3QrxPwnol zC8m}FC2(qRZ117Fp2MAp%{MBHzs_r@$$NP55!tXnC`wYzl6w=(cEHve{VqAC zdqCzTBuzcJT6hFhRWJ*kI294Jt+}_IfpjLAiDtRNFk^4(sdo+f7O-W3s$+KVrtn_< zpO#XI#ey=oO?{$A8%8O#%NhLAYnC#8;3m25ck#elw%>gv zQ|%GKS0g&BWcMf|XLUb~!EmbbUhmhhQ9}l`LCdfv#^A6pD$g98gT!oSYP;kcg3a<~#4Jn@0^ zG$eiGaLrLw^$scHg(phMmM_A^j)aoO-#eu!jdQ)PX6PydyJ8b(`7Cs)m6lZuulSFcRlwuJslU(c|lXRzsk4<1vQ02CoKhgKj zoPbiS>iuDX#o?bqPscT~(zP?!IBr4h(QS$qLBHff87C!(AG*)AziVLRpMKVbk8xiO z#0>9?LB>j+?Z>#k;`D**@$4DLO%O_C5KQcj;(eRriiV)i0qe#RG&i`rSD3a37oARM zC0^E=b`SMPY&#ere^ATxoW6-+sV9s5=(K03rRh7DcK$_DLR~LB>D$T>;TCxcNGC&& zeT2ZWbK>eedvr~a;Km6jTRVMhdy6&mo9EfMR>geD(SOO7I%}*2_qYNxtub!uruzqU zOuc#3ab*SNt@Gh2oe}x>C!10h_=$#or7T+x`K?o}VjWT@8FkB?%PG{w2h;Eh;1TLH zr$iKJW)U5Z6Yc#2oPA}6U>{=bnUZW#L(S|m>8!3$uCCC#!+RoD=DD9+TfSvM+#n>s zUJd}L9mIuH%h)>R*UDe3DeVmEu?!e1cx6gBmlsYBV3F|T8SN2MKMfh>K_16}R2*XA zB|n2ec`LmJLkgndpaqjGF!6*ANG~Y@OsKe!U!uv75J_#Nw)y)YXo)dT*$fTqN<;1q znI$8aYc+OJ6w9E9S&^2lG@)4hx?F{+ZC|S&Zs2?B z*;FsiCQWM@Bh5I3n*$pdh;E0%+gUh$36LQ1-AkmSQ5GcAArWxWxgk9ds5~6B>YI@= z1hLs`Z9oh(s4#m@EMGu!mqIM+Cr^nw-h!3FGe>@Yw#-?R2bPb$MWxKuR>>0PE&gh^ zgk9Ra&k>liQMH*Ga!v>!;4@1hdw|I3q5M5R>ZaKGjeIF7NVL5fsLN7%MBe_oy8Y<9 zY3YBNZ&ocQQrq!sgG2Fr8~hvaqlz*lB-3{+E2T$In^e+s$z4+0H5zF*taxQmM3(1p zfq`&wz{-Io$+0N1q{T^tivo7jRxD1)9PM(=r z+8G(C>eEKwxEWbNEe1(a(&-Z4MJ~&ssqSS;!pGsV~<`OB89*_oC?Dg~a|K$?6foW*n?BTn@ zhkgV-khdTSwXc?HAVKgP2famAr@K@my0fXXJ|=jx&og;q99S6(19ntEoHhq3>-W;1 zqrBgsdiI>Kex5BLby3&vqPVu@jy6zCBgwL?WCbqW`}tpCaKdr2d3_lkoBr`8#xcI8F*YBLhr?zi{Re>kI45zyAhM5aLP!$|*u?xOf`| zD&`G{Jq1vwbneCYt@>bQk8H2vTl@(Toz?Z;F4OG0lioQ1S&3?|uJck0XFO<$x9+E) zt_7N@Q?Dl+AUFjnp0Zmp*C3L`aPu*3uV9p5nP%X%N8+JRmPnk-;!d$W#LKHt08lxpk|MhTh z6B`HMaLDB7rxPOOL_6Fy>NrRVgh!VIBtcE^Qsfdi-qykN_BqYXu$8_bP{!7w==$a8 zz{1a9sCToiw16`&9Mb^n106E5y@3?Tto$RQc%|EllWv5=75coNOu@h(AG;-21t=tcz?~RCqpV4FdMU42O3evUBLNfpw&( z3*I7-^+a|KF`NK7-MhCJn1#Kd&O+9e{~53B^+3GhVbn4XZB%5}6RPp!f_;#NzomYd zWUmX1Hbc-KO3dO6O4GO|;b=!RZWtTT9*59{vWUTBeBqwHUb{ zBa6RX=<|b-MOU6veEK_S5R~aHomwr!dM!`$qJHIVkppzCJ1s^Rti}W_9i&J~J^Prq z!;`+Kx8h2x`{U;bvPw-nvK`p7JKS$WOf~K$U+tmuxkge~NR~D0=eb$i@48IQt&cH& zUtdH`y`oVbVM~$|Dhw)O!8Oa_m|bnLKisR66nrv>x9p1X!hE(xY;V1&5%CB5X1?8I z`fGs6E?S!|sZa-ZIU+@NTh;Z%RTj3UQTw0>%sad)H(`mX$&vU)&qwkvC2S}qQFFdR zc+)99H!5k;2hBtOg5jU#^TNJmR40WHCz;}=CZ5c%#)a-0)MIuX#G$_pjKJMJWAFeP;=RYT>L`JpK7PQYP%oI9qa_W}ny!JmatPZ8+)^yVM%{ z`YMv?madFi+n20&k$~xX`|<6skJ~@b!=%OF;xmqC&pCWSqp?khh5F-MoL+o!8mH^( z`X>c?jXQQi4N<^NM{{$+g0Tih*)XV5f86=gC-TIBT=igDdfzhr?nXF|5`I+5^C%c# zZ;wg{dzPDYv@==mnlQ{aC(39zB%1UHGcZ&J^Rf+3AMh+r@bmRR8+B6Efz>hQS{`tn zpyty?FFZTWHv5eI3S0SWe00*?mT~S|g~kQAHO9sFsu$AIrTW{^G9gWzcFNsmM`QZ# z#XM#xUh?6cpmwWL+r$e4gG?mh(Rg=~CFgUJSc0!&-$i$_<%}*K)K(&sx66}69oL532z$ekK9OUkJ?q04A*U9q1BuZ0I+tf?rI zPD=Vg_P8+WW0PO$IB`D?2|v;FcFDzX>XM(9l%GMRVTNFysT8`JINTjib0-{7<_Y4d zMyip{SI?e3d#VjJN)e1`z01Haf_T%qPVa8lR{iXR@hm8~_SO%VEMz02WLa~0IR|Np zgjhhj6HIViC2|C3at<8-v-y!5mqjzT3H|$D>1mt((_|0hHo0T@2Q7uyxx+0gIQ-Zd z?r`o|^nS9<3&{!ws{)RrC#_v<^*w*M5@|c7$&lJ*@?Id2O@}lfQc>pgW56P{$K1et zAiUC2cJZcPai)jDINnx?(B%(Uo=v~m{?`8N!7aNAF+cpEH!Rgsww9xp!NIoQY1cn+ zC?$n2xgJ<2PT>_i$+le7$7x^Kal&#& z2W@MHhs@gP%2b8L<~_P2;?0kGlo$1tBS^{q2tYgyN%ADX70@}~;!kxDY=?}GRM;5P z8D8-cP%VuuiAWO&B65c*=}yQDJ-bbiLgnVXnTV7z!80&sae`|#+r!)KbX|Kx;Y7&s z5bH5<8)-_RqYG;Yvpht>&KLeDXHKzr*-mfq)tXBN={ulskqRkd*ltde9ipa4kacC_ zWt2~4PR#%YXzI{dg0w5^Rbh>4YT`0wXj^X-i*Z!lP^OxA7WX_t>AKyim(15I_Obq? zkdE%erE`_5++P{`C$IQc11cQ4GpCDkudsMVIYTC#G`*g4l=xTiJB1`06=@2OJqu0j zhIL#k6iDA+marDc4ANJu!|JrPs62LmXiO@dtqe#oN|v8zM>4TARNLqeE;)b^hS_J1i&K0*i}m@OQ;ip zoxH83`JZZq1vEB^45!Cd1l8Z202FEPax6{A+j08DETz*;U8KDtpMi2TKsWHwBwm(C z(xRXp+gt_a-|}DeG@LKzY<<)wU2xM1f49{VTjXqoFBm;5t=6}12Ib;#woQwl-sUeY z{-Z?ZMyeCx`)9O;}guc8$OVSM>_j*ithhw^E(Gn5@%$ zL@jVo^~HJE?tlm<>~3#U*5jZAnUIXyh1rh!`>|-vGhs)UE^Z)`E-j}FHI`%+I7~Af0BjGe3ahcmScrN@--Vc1PqzJMU+HP zSJK0nc-b}fJCTTZD&p3}x+nUthJ5^i7X5Ve(*hX5KaX@8jVvIpwNX!A9yzUPI6nON z#izr{f0G)LHaY9m?bVz}1m)EeNl%n*1@LO4!d2YT+)?1tbe2rc;t94Y39k^~4mK$v z`*DD?j`~=2n(ALdMEs$uyn>9K=$Xh9C0Ycn7f+2>h|h`Z#0?XczE`Ll-_9{zK;@un znbu4e^uax%F$a)C@PIUfsH_J9r8Ikb5XM+-7m(V4i<$-Tahn=Ht|R4&rf~Lf(PoH) zTnA)G)pzLSSXLGRQZ@5%efH5H-JDCndC3rkHcIiO-})mO+QW;j-IcTm;vu4%IzNGh zEjb81lOG-+B*376eTu;m$HXGhN_mQQJ|DR0f_Q{~O@6}!TL?6KnG zlA~s&4Cw&vaN12Pc_-@h99RlD!H9M4yhnxa(A9n8uuC!Gr@6#5TBJRp2ozYlm*8VO0DE|g)YbvvuXlnSu)f%Tq zehd<}l8ZTVd2$lo#Z)uRb|w!>0NZdZYW!#{YQ#4To!a_^?)Rw@fer)CSta7d@5Vnx zE$IjCXpG&;TuNe|1pbo_PMq^S4VZqHx5Pty!%dvFm2QlWoEkAd->M|aV(ZWvKc_MF zT*lnsWzA!wCfCU%A27p<|H4s|cKEoQQY$egnl)IjPz%s1<=|%A}IQ`q-9^Jnb z5~*^3SOIqU2+Y zbssr6@itU>V1IPqz_fOY(cQtOqkf`OxztHE$pSCzk_Fe|#lus+(MhZIb4<@mF=)}h zYih{^Fmba#-`C;&5Kfn~tKQpkEkE!-WgSj7)is>Ox=D9mtEOmD80l-M+DdkqfLGm`E#Vk_ z*4xZq7l^#!c$zA80F_OuK{E{4k(o)csC%C3FML|4^mlef`L`U1N=J&zl^*wyzlQMB zF|?n?iU#vz#3CoTeB2n$$dGSFk2BSuHEkk?s`kkRQ0K%$${(hlN6wjrq}(Jv`c1^h z+GP@&I7J`Wf1RE=d6T)FS5A6WGEs~36k{3VHBkyviQb|fo?DWci{2W8S!1IMr@Ncv z6K47-EAAQa*oVKp7J-q5f3Mi$E-XVM^9B`zLmep@X`O=7Y!qP`E@>{gLnWaD<^U0B z7kr~S?OWbsa)Pu?pUL>Id@D{)W>R`pEKz~>#dwRVH?2FZGr8~M34-t|c7jF|+dPYb zP#w;L1&<>fG~y~}`jBGP|F0xw&4;c=VXaefu^G4~gbsfnui*uyNkT~jwUSzD)4p;F zQnU8}Lr5L8p$qE}m}O_r9XMLCu*Q{I!UfOH!VgeL?%wc)31t za<#B>K4uH2@1(2j(~Qie>Q9RDGqNyLlWWLV8QjSx;&S1_cw9l!MXu+JS&XHo8Wplm zr6he8m!y9y{Q3ch%f^#xpuS2Wk%>Ji)rqbBLs>348={0=XK*LSw>SduC=9p2yTEgVJ4n*rjQT5b zk{VDx0w{$DV%Oecr^rSDX5;Fwv>hP|+i8JU{0r#lURJgR5|Qmusi*0-GCH@{t{qqw zE!SQ>Stwy;eo);|!tz$4;H-E){prIN((;k0mJDS+r)pF56&7>m!zJRVS+WFx!~|&C zz+Nr-o{Hj#31Yl?p4P;`JH}=F!|sLJG227}&kJ<+4<7-RI%9(hkd_|eVv||&(e*5* zX?g@k6>clj&BQ{Kojt1MXv)yL+uiiD6ZqM8x9M)b?9j%Q^F^CUsompZDJfj_!_}eO zj7UjjNiIHT8RG&va}@t!f#UfB#NwPAAjX4r6`@@IJw1JB~ z&K(fGgDlxvy+8t#Z<<|bv!kn=Qrf?$2zhgfe?KW45>y_+Mvq{L_W;03=OZ2k*|`v* z%dJv%C{o&(QI1XJgP<6i2P7-!L9)Ur@MsFmFj41ezl@+XvTgm*12KS@b3+?pATH%N zT(bYHXN(F2=R$V|&20dBM=!Yf`_D)AkOvVDYS0zBQx=XyAw_&!qcW9&ZVP`s$OF~u zS-eadPEg{HI3r+BqfdN$CFG1C>NZJV12|%e1jkAHS|Z)OGe90p?ty~ zJ2as$Xw@tFqlRBco}wMBkGFnJRK6Wcy6?ov(hzh9wSC0Rct{-NVd4hyot%L!XJK+Z`iE*86EPcJ{7E7Me1I`j=6{9kC4%w9KPHYO)5I9; z6Ip@-wSr{SpMu?zBRErQNiO{zDd+KvUevCXyUL5c)IL%wbRcA9rZ1~WCY_L+&M*~| zus=u@SY(+_$D|l4T6-llti#Kw4 z5Dzr*Qm+F(z>OzZY?0B6(OzPerC&7Jj?tUZ7U&y=$u=fyPVvCe$Vtv(R!_brLsIXL z#mTVfMf4ynQl zS6dAd7Fd$tYv$f>N~ytXq!lTaY38>5+5O4=u{;P(WpclqSP;h?JSHcdY55@bcJ|XO zwhWo{q8J5Qc^{?Ef_RG>TqL};FC5p&A*l0WLr!m$V^N>@LC~T|inNbuj`0p-lhi0r zxb&)QqD3q2=E;D_z1hmW9zGvhG@^arg<2A7@DS}nsZodc58(G5P{QXUG(}%42 z0$3K^sm&%XiPz~pP4A_gS6n=_c!b&pyTtDp(Nu4?*;HVbr0oJ6%1<q2_hVTE*XY*d zB{4fL=2(8XW{~$sDClgbe2FDxbJ(hd5@FXeTDI3ItdcBkXoYrvnbx&LyR=OZed%Q^ z_NiH%&&93W-AX5+CbgWdOpHq`AO8`Tr~Z*+QGrX2c$KDiqc-7Md?e~^q9E$VMJrmx zMFJ|eFOs}0w?;>imqc&l)X>l1=MEkb6!R}MiT*+u3L^|fKmk8I_;L5po_0=raAl(<$0Br_$~*CnY;aGR(ft)o)U!BWG{P2|$F`%m2=hf;^WY+1 zgyl3}ll3BJ=UOnQgC*2J=G_9>!!$u)Q3`IEb_->VsG2JY!yiqPET!{``RtIY|FzT7 z(|H+!5f%HmgUu>fl9|(Xgx_dPhYVOSgtD~@sScT>_9HLv$PSaB#C!DdEbX{DxmCay zu?RYrUpLWbUf>Oup0+J7hJ!qams)C~!rYB4M3(*6Q*2CYa3AYQ-T>gyIVa~sy+^t@ zz%K|?imRppgAF`#R?rD;P4+P>0qhyTly-#b)Sdjx2TT$ZztZ=l#3bGZQqrmwi=ab^ zH9?BR->=M>g&BYGf%t*=iMXwrqMAZ{os1V%jp-NZd&uO$wIv$Jc#bi{WV3IRyv|r} z^4=+nBj7N;Gmpe?$zTx#?i^hnt#i==|*)o6YyUgGt z6fSg&p~vKoQ&iu0KVPywV+NfDS;6=!$*Au~e=%&0KBX*SuobyZQ=}UMmcmV%i%EVW zl^T`ihI9V^UvHQG+ymy} z?@NE>z5aQ|2wP11gL?B3{lfJQJL=mZ6zcN{PMYt(|5rc!*Zh*iXA9&(^{?8*iws-%?kKB7Z z^UwQ#p8fA9|9k!6%&&joQSAK^AO2szN^cB++xFfr{X+h8@4kMW{QKFZ-`;=MZhyJ> zPn6#7cjQZc|L^zS`@?h-UJrY3XjCBs3dK5r-TMq{Vkt-hN$-ewB9nNbjdWp#bY-S= zVWu1ywOcdsmGBX{s1C5<`{AR5&iVs`IR{-#j?O@i4#q)a?y$!1DT6P)8eeiW=CXCB zIk!>VXe^fjhGvL)XoBU^`QoVaC0FOmLtXe3^FY7t0qV>2)($tCW5!_Tu+AS&3%IKn zT!vVut(|km>-jpE>7C!xXv_?nH`i>Q8@0pv9m}c9#f948GRI7#u|@`1F4UKNH1@DL zmJ7`VKa0~C1NWJ~jhQjW9dBWpvi%syu!J6CGh#-zXYXT?D14al46ey)25T*-gMR8GApy!8xm{y@i1HtvYm}`G! z6&e@#B9H~)pciX``yvCc9)@15gIKsOJOURLaPQE%S&J(y^O3c9Jdji%O1%no837UA zS(;yA-h*pkt^LRQz%1b%ffN<^Vm}v%_ysQT9uT5A=flVw^U-(4c>L4n zR{~~npfn&a=Dm>_i^zZvBS7$hK)@Cw!R_V&=rw>K2MG0rIhQ1uAqfyT^$Z#cL>*?{ z>tdn-hd376d=*Lqvrr=}G%k4jASQS`YOMtTnK}6H(|eZ@Xb7eO;hsM4Vm|K*?p1?24!j5OpE8a4j?(v=EdGpp%6T0+gB0=Ru8wLOgx3Hn^<|zS_ZOJQvjk zwCkNEsQ3Hp(4g+2;8_~{fs?s@R*Vmx1&_}rfd>ExXUs=lqSqnTkK^AN%66fp-A+ zaNnzDzE>lBd&56Eltt$<3=UVJm4s3hgA~Pp8Du!Lo=5@5i1icdL>fo-FxS|;$eiRx z*EqK4HK6KZnwrn-3%ZQ^(`_{&P*eBNagVQr)b;rAAvF$9qFSjBsa1)0-Joq0D?CPt z{2O0oZ^X>7CqhRl&@#L-Q|YQg#bP4VIhfZ1eC{5o5O3IuA7Z@R#EFoUn7uI@10B{IJuj=$2v?W*CM3A}?ckj8 zOT5?TjN#)=RO@*hb{75hc8Zl+r9|Gv7nPxZ4mR zMh`(dsbHg(W~DunfYwJ?;`v#L0ddXudoP(fAB~$*k#Wy4l|HelJBTMq!nl<@-LPX2 z)7GfJcd9v48e~5Bx;@k9kSZB*8{}swB8=gecF)OP?{KijqXn6pf^3IPjJo~GtPbby z2LI;f_1B}kUN>hVb_rsFY%cWIPR`;A3k(yo+?WQh0jU*-3)lBBf|gOuXpVQGJV|ux zb?Ie^K>^Nm`cU{qn*A&M%-Q6$&YNMit*5!2MyeKD_D}1H)?tLY z0A5*hdyKXvwq`Uwyu~g4E;~QY(YfHFi3~M8+Z0P22&2W+(0;Yy8#|T~QzAXgYZ+y- zI-QzZhidX0_TKNHOwYtX+Hf6-E-!7?=9u8eUE{0eKFz=Nq)>y!9OWgBau>B3`6$7s z2hOsD#!HX+H%pza=SYI6x2Jck>q*@j4^J(w4~^D%B(;WM!^pm}w()}S(4l~?)lE6V z_A(KsUB1<9_ruk7SiLK*Usieali!yk1*rW|yH67^)$HZLZE%E2;RcqsVEMwanTl zPO3&;R(mu+Kk%0AK=!CNi4an?`+7vQ2lhyuI1E`GN4g3jA0k4$utcVo&MNZCe3<#> z`JY#`SH!fsn{NJ*5v3)<+!Z!O`m3N@X*{m?<_wl(OQH*E9P4C0zI0x@jg75oQBg70 z%rFP7Eg;cX{MmMXe(S4dipX{0r2?rwy|6G&>7xiV2F*%rEJV7CXK<{TD}DjnHWr&S}T+sQ+Gp8ymvUXO^hPTO&bJ=Mn$Q> zhi|$^p4glii6W*O+GzWhK+6K5XgRwW`GR9T#yqP*4(zk+gHD*q4UMzLIaWvtF-ft} z5kcY@iy+*eP*4T*DxJ83sab;Gz!C&NNSWJ1`N~RctOCum=)q^>KHkAVneBREV0 zo*aAT^)l3C3H~w@YZSHwxI-JsB3Y#IV>fzAv^((IJ!A4`hb|stRUfluhN5D=vV*w6vbtcyN|uF6PD!9ta#5L7BS!{$ zeUz6sZH`h}T6d-g)ClTgaUOLz~2;W}6^~00R z|GZrQ=R_Zz-#Y)xFY|wGISbB*?$+9x*2?!7X7ffcaUe?K3>LPqxocwJ%9dq^za{Bc{+Hl$^6!Vm*pJNu7M^nANCZY5(_86@llDyARN!emb&NcNqN7n2kckc^U z;**rjWVF{dRNM+hvzdG+D#fO|1~0#di5o}D(A6&Tx5`ulvUa7y7xNS$M;Y=Ap2iVc zysWzAdvXy(GpI?`ZCqu(DsHM0(XUmP2z4>8{PIqC0Vf@DJUMzP?c_`PdDs}G@Y)r(NKJ9ud@on?^;^sq!=x<+9<3KcdM@zui#DMjfJ} z1O#nrj|`^|Q9vZaStrUN`PW@>`A9Yyz0C(X?uBWR5y&^FHFPSmd%$anlj58&-UiQ1 z)c%gomNTI=3YsD|*yNw(i0`(<$UTuG*3>wsIT@0?1#_Fiypz+s%MA6Tx!o5 z4hO<}Q!toGJHe#czFnr1l{N~BPnH*=>xK`K>8(`c(@ec7aTkzyp7m&)R|463jzq2j zpq$LZ$cIc2_F_FjEm>9W%jB7;WprxKh zUQ*1o6#2meoJEb;Ye2#aq=xrLg1R@^d9@M_<(8 zEiMdfImEkaClT2E^p2Qk<=@R{kJ+K?+I2IU>L}JDH62E4)jHIrd?eMHlY_S(=j#X= zd>v{wA4@GK#6?1$$P8B$rK`X$nCYTn7RiDwbMP;Wn&?IJJ@s`)--QX9>-FZhDr=Hm z^hiaRAhRP&6k5O)X;%za7E4&Jj7yU%&RY3*rQGuH^Jy}?Mr;ZO*%;WRQ%E3}!F&_r z3bqQjfzjhNC`9~|M9<}L6{}H?ExH3pP6-sH?Rrc;Pqn_N(%l(W(0}7Ea^;k&@u;O?>X5#-SMzN_b3Kf*kA|T`u^-k6l+|LBjQVRW{kj%WQA+Z znwmYvTt*Rrz`hQI`Wg`YiyW-f-cxw(S3w^1+PkB()8N_Bxw!e0zg_?Qx1U}<`C;>K z=NJB%*!upLiGNQ2^6J%{^JzcbMr^ZF4Jf?@LL6k(&55TDS8CT5NOQ{h^5?XE6Mh1d z)F{oKnq2wFJ4C{ODn#R967;bX&fRWcd5*C}*XJ*hyJ#2}MyVX5h%>HeAc%AMCYZ-G zx}2e5^aSLaAf5ps-RK9B7_+DeutDo6S+Lw=*S!ri%>F=KVZ>|3rXBgT0^a#$zUo7bkG(StEK z6oum?Q#acyc|yztHE!*+T4xv2?27P1Pe&TEyi`;}^%nM^=TsM3&&$#iyI!HEgYqt| z%aO@-z#PWs&ZCM_#B#cPyBw0M`ENVw;;G9lj0RM2nCOAz$cxEXVe148w@ z9zGFEre<{gXp-L9Gn`Xy;&rNKGsgfs?4bX;W*(<~WfX&$bYwUmC~GJR#Us#j|APuhD0w-yt8ot$ePa<23vr< zP5HzkXKF54OsfoKbJ-z_c{iWwxs_9IB4{)5YQfGS!JdG@uQO|2*mph7(i12y3JZfX zE3#$@C)$jzd>@qglBK=!J*%Xoq!heF!d%~hN;n1=ryUBpFZ!y6or5(kHq2&cI}U!@a_hohpnv$6+X(8g@Ji-LyL0+uYa zZymfoSXM?Spxt}=JbEs9vagz?diMNZSc=ajs>=j@y(I5oqO#VQ7oTeh#QEP@3is&g z$x$uVi`0SsUpyHL3Xs3sbbpEIV)fjxRNpsl4ut~I&1)6+9fDutZhYO-h9`d#zd5He zHa9kE9Qdo>0-@PjJ%P)nMnuTsZ)rD3o)ds6-h z;{_25Sg*^%jOJt&xW7kvOqv@8y8}b)Fd*>jD4#2Pro4L+l>CA6Y!U(2=bw&C2^A>~Fg1DPS-R=6rtHA_0Y2^E+v|_79XR;Uhx1z(_HSJ{c<`$a^LNh9 zpFN9=Q9qy>@DgCz^1_a(1)?!rS$p;zy#jZ4)WhL{PAzv6D-BZc&M8<&om$Zd_`G18 z_b;!cW`$ooB1FX`cxS&Ssk2`<^0Q|fg+}10uC=3L_GU|t15d@vs#C3zDLgnnI_y}% z7`7^y$a6QDyJX4)x z85>#nF*6_Bi!cW6ZUY0?+NcU5h*{4H%8fI``k+xWebzDY(sq`VLlI%jcUjf!;GpwH-a0hD&zt=K5cqY?+ni_z z_F0o~&*sx6OU2aA^aR}>fO4$*|$L7`p|5k zytkKG8XJ;@#uC%?ftXO*a+*h-d-D%?&~q2P_?RRoMw}C{;iP06?t9kvz`AVsv*887 zrLOM&{rh$I@0so>_O5^@uie|-VdISjZG4S(L?#gVcoaIZG$KZhv6T`u^RXn?x<}7{ z{$pX`kNK@&4DAQ-a}ey)_~{eDacsI?1#-#koj!;gXC@%2TP()`7aC()ur2ivc`AoW zsYwSS5wz-%!T0k<-T-+4`vWA=JDpkcw zfym&;#c++Vt8xNF@ghsAWKr%g5f%Oi6Vt`a9BcCN7fjQ8)Lk)~1?{lO#XfdmH-hXw z3N0x91*7?`lnm7ACcv>Q8tO2=1V(7i1 ztZ*K`u4lw!tSj=Oca&({-7SA@xPb7$)1~fAV7Z&On}A>`;WxdMY%xpgoWOsZETzk> zj)-|eZuYTZUC^Kq^(r6hOrUUFgj9}>=FBp~9|m2cYDe=%8s<>B0~I0k8rPN*i9=rP zCce!UeU+u-9oXT7s0}3a=V74@%W%&8aK6~KgMX~;+Sf?e)2YE}y3shAUYCz_7D5TF zdbJ~4g|(&8%YgGP0^PKZOfh~4^9J+C7$NwauXYS%2eIu5L;^0~I3Jxk*M@4tRN|a4 z6%j6Vn@UC8u(8bbDX~m(OWYV;%jlSN{B43;wkQhTq9}|umvaud| za=s*@*@25Ro6ZhChoMBt_RgQQYdBNVWr&s+dd`Qn^;?0p3h5wtU77^MF4qU3 zo$fo;(JYw}V9^O|+w_|o*_ zSoH~T;VOYS_!~AMUT-a9GHaqOe_^R_;0nd7^TOTm1_?DX z{g#~9ak=Q6o}T}fkJZxPV~m2zQ||G%*Tmmno7YH+*#O%Z30B?M3#`ZV*S)}ij0XXw zU^l`RNCzxKjwRM>E_m<@^Sd3OfD+5#dP_&p?eTzpQ}9#Ib6{IY%d8qtJj5N<``Vfr z1RXFuU>FhVlM-5zbpJ>|uWh3DVt{flb$79k8(1!Ar7QxLgV*X&R8*i5!;L%;v=~3m ze7XAIt&WAA@OjRlNmqP&Ve1nx8sGUxPEU_V9X!KKH|K77tz)~Bwq>3y_Zavj>y)du9KKRUD9biHz%HuDk zH{f;RbquRP_KW4cXd210ZkeSiCKt0cXIkpvZbd3KFI!!p(>D~{_`-Z@!u-aUSPyzn znOo1d*dkzSg5o8?z&HU@dnpK5bvkTC1r1m}sV0OZ4$M=}1fTiBvY*cY83os|^9Aqp zQigTS*JNPo(kS1#+5J^W8{)C@>l^|A_=w~_ipSpV-Ok5-8~B? z9XS&@|HLb9@J8cvYK=ePc-L~Ag|b{qbpw4T3Td+*C2dG)=iNTdyPbOQ~R0t38*ms}mQ1#Yf@$=Gt7$j_}5I*e#1G zrZHUiy1Fy$%0XbkFE{7eFsEzj40>(%O?GX~bVp%7^7$}kkcP^BsxA6D$jRZb>cYLd zJ|$W3rGcXg5M?NnK~zy_Z{tSy5(&X1j+b{19Q@(>Z47D0f%gmhPyc@Q{DIjoY3nW0?pLd&F5pboY`{1%5Ms`zq7} z73y*zGClvesjr^b7@wW6}qDAT?;4tZYM_vgn zpA<%H@rbbCv@r6;yuPAPB1c2x>7rc|vVehTe&${<{)weNqaT2(a!*ZPKpr7{1F7FT zJRqUmoO;nb{t_?&FlbLLZP_F-7r6;n!(>tbU4GvpA?JLZtim~;46+i##Fy~Uc7@8jc3i?s^jMs4^rs`~i4g)?|Y*ue!57|d}*{a#ax zf_Rk2Sjr8TSaNr7`oxmHM^|o9$JYgbk~u~@C-5|!mKDUl7N7it5KvaW4oF9J7YL$a zNy`SyURa5Ny%RiMO8?AU98i!@;Z{HbqVT%A1YFIqj5B~3+!KHnf=^j}kDYm%MG*@f zVPUj*g!c_Q=O+NkI}yEUKokYe347^`rQRFOr*0LDODyT1o7ar5$^+Es^?6vgf;e`V zr(5U_15E3fG>o@SBo#FXG8@GmeAcsu4VGey2NHf`_HP}N&)>5iPTaOXIl;}osVnfb z!lJn4vgQMh65X&4ZBx!A@q`A(M146&sb4p&b{tlhBZ}8zTrak`HFhTO$rjw2vswGwH^zPMyHVD>zdhE3oBe=z(n^y3k_i00 zv4DzE>)7H&%H^B}W6@wfZ^$^`oM=&sKfJ_OyyL-GN^pBsNrN9XRy4|BikXa{XmO@~ zGb1o4ANXS)4wGZU!tbN?Pc?6fJLhlGqdmu>e+e~b(!p5c4KU`o7P#=%kNp%vzKK!q z=$!1GJSK2y8NsN?9zSekfMyo}hyJATq-5vjudg4t7LCU8Ud?|!ziZ;utA9FYIwwvW zy$$2n^(io+JG>X=STEAP5jRR0xX<~O4T7k0iR52yql~^AJ>z<6G%YK0G)>q2Y&6N! z3RlK&ZEB>vPZn~4D_1(Q^RYB%rm~#M$QKc{3!(X%*wa?TDr-bLG@7X9sAEA0|f_pDlS$b0Z^G5FKZrik8`;5Cpa?64~a zJ030(4&L9h(yn;m#_bfa0_2##s+i!rk|R>3*Yp%5G4lodPX-*y~ zJ_EJ8&)iNswBAVr(mExkfaD>G1XW+c3ftm=d#NF{@c%)UA@}$zK}=pbT�SNDAKT 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­)Xg8$I{8Yh)SWmxemd%QJEBIKT~sYD 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 literal 0 HcmV?d00001 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/ReflectionProbe-0.exr.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/ReflectionProbe-0.exr.meta new file mode 100644 index 00000000000..51993773287 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/ReflectionProbe-0.exr.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 89527ea2efa43864d8b67850a779ca18 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 1 + seamlessCubemap: 1 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 0 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat new file mode 100644 index 00000000000..80a680fb54f --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat @@ -0,0 +1,127 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Transparent + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _SURFACE_TYPE_TRANSPARENT + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1, g: 0.4577373, b: 0, a: 0.3764706} + - _Color: {r: 1, g: 0.4577372, b: 0, a: 0.3764706} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &3256230158234068506 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 5 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat.meta new file mode 100644 index 00000000000..ba96628e9e5 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 56193a9fa5c52444d9d649960af3ba23 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset b/TestProjects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset index 1b4e5ee9279..9937affbc70 100644 --- a/TestProjects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset +++ b/TestProjects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset @@ -80,4 +80,7 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/200_Lens_Flare_Sanity.unity guid: b51c203a350144f97ba208c293ab8333 + - enabled: 1 + path: Assets/Scenes/240_DepthPriming.unity + guid: 06d3d04c77b97ba40969b415bc9a25dd m_configObjects: {} diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index a3df124736b..aad25a931e5 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -1132,7 +1132,7 @@ internal override void SwapColorBuffer(CommandBuffer cmd) ConfigureCameraTarget(m_ColorBufferSystem.GetBackBuffer(cmd).id, m_ColorBufferSystem.GetBufferA().id); else ConfigureCameraColorTarget(m_ColorBufferSystem.GetBackBuffer(cmd).id); - m_ActiveCameraColorAttachment = m_ColorBufferSystem.GetBackBuffer(); + m_ActiveCameraColorAttachment = m_ColorBufferSystem.GetBackBuffer(cmd); cmd.SetGlobalTexture("_CameraColorTexture", m_ActiveCameraColorAttachment.id); //Set _AfterPostProcessTexture, users might still rely on this although it is now always the cameratarget due to swapbuffer cmd.SetGlobalTexture("_AfterPostProcessTexture", m_ActiveCameraColorAttachment.id); From 6ee599d57e7c36c89eca4b4907dc21179115b215 Mon Sep 17 00:00:00 2001 From: Seongdae Kim <37893618+Seongdae@users.noreply.github.com> Date: Wed, 6 Oct 2021 23:28:07 +0900 Subject: [PATCH 03/14] Urp/fix to add tooltip of ss-shadows (#5034) * Add a editor class of screen space shadows * Missing meta file * Apply shadow-fading to a output of screen space shadows * Update CHANGELOG.md * Change shadow-fading on only realtime shadow in screen space shadows pass * Fix to fade out main light shadows not using screen space shadows * Add tooltip for screen space shadows * Update CHANGELOG.md * Add images for a documentation of screen space shadows * Add a documentation of screen space shadows * Update a docs of screen space shadows * Update renderer-feature-screen-space-shadows.md * Update renderer-feature-screen-space-shadows.md * Update renderer-feature-screen-space-shadows.md * Update renderer-feature-screen-space-shadows.md * Update renderer-feature-screen-space-shadows.md * Update renderer-feature-screen-space-shadows.md * Update renderer-feature-screen-space-shadows.md * Update renderer-feature-screen-space-shadows.md * Reviewed the documentation and removed now unused images * Update images of ssshadows * Revert to the origin Co-authored-by: Lewis Jordan --- .../CHANGELOG.md | 1 + .../ssshadows-cast-shadow-totransparent.png | 3 ++ .../ssshadows-cast-shadow-using-cascades.png | 3 ++ ...sshadows-cast-shadow-using-screenspace.png | 3 ++ .../ssshadows/ssshadows-framedebugger.png | 3 ++ .../Images/ssshadows/ssshadows-result.png | 3 ++ .../ssshadows/ssshadows-shadow-texture.png | 3 ++ .../renderer-feature-screen-space-shadows.md | 24 +++++++++++++ .../ScreenSpaceShadowsEditor.cs | 36 +++++++++++++++++++ .../ScreenSpaceShadowsEditor.cs.meta | 11 ++++++ .../Shaders/Utils/ScreenSpaceShadows.shader | 9 +++-- 11 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-totransparent.png create mode 100644 com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-using-cascades.png create mode 100644 com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-using-screenspace.png create mode 100644 com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-framedebugger.png create mode 100644 com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-result.png create mode 100644 com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-shadow-texture.png create mode 100644 com.unity.render-pipelines.universal/Documentation~/renderer-feature-screen-space-shadows.md create mode 100644 com.unity.render-pipelines.universal/Editor/RendererFeatures/ScreenSpaceShadowsEditor.cs create mode 100644 com.unity.render-pipelines.universal/Editor/RendererFeatures/ScreenSpaceShadowsEditor.cs.meta diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index c72c85725c6..fd4dc1ec844 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -215,6 +215,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fixed graphical artefact when terrain height map is used with rendering layer mask for lighting. - Fixed an issue where screen space shadows has flickering with deferred mode [case 1354681](https://issuetracker.unity3d.com/issues/screen-space-shadows-flicker-in-scene-view-when-using-deferred-rendering) - Fixed shadowCascadeBlendCullingFactor to be 1.0 +- Fixed missing property values in a RendererFeature of screen space shadows by adding tooltip for it instead of showing them. [case 1327356] ### Changed - Change Asset/Create/Shader/Universal Render Pipeline/Lit Shader Graph to Asset/Create/Shader Graph/URP/Lit Shader Graph diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-totransparent.png b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-totransparent.png new file mode 100644 index 00000000000..febb826d9f4 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-totransparent.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1dd722fbf9a4d421c79d0268deb6d87b3ee521ca83015fbad9861554bfec4b15 +size 124823 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-using-cascades.png b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-using-cascades.png new file mode 100644 index 00000000000..a554f0aeecb --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-using-cascades.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4305f436505801c1de58c95b69d04c76648d4fce5dbfb9847667801b176c5e95 +size 117093 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-using-screenspace.png b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-using-screenspace.png new file mode 100644 index 00000000000..473c13427cd --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-cast-shadow-using-screenspace.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27fce9027fb66ccf091c59905cefe21e01f13c69df70d63a401e49fe287b756a +size 148745 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-framedebugger.png b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-framedebugger.png new file mode 100644 index 00000000000..29060b06419 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-framedebugger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d50ac884c4aedd248d33648eaee620db8e19ca41f6d18de9610c35e99914a87f +size 106816 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-result.png b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-result.png new file mode 100644 index 00000000000..46301367893 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-result.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dcbef7182db2dd24ee09b64f4d2e2f6f2b5cc476e4df0c2035b521760c06811 +size 1602863 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-shadow-texture.png b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-shadow-texture.png new file mode 100644 index 00000000000..b3ed67c0c98 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/ssshadows/ssshadows-shadow-texture.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d00bcb6e88a04fafdd8d5e2ca932aa4e3421333adb0be88d84b4209d5c342c6 +size 125362 diff --git a/com.unity.render-pipelines.universal/Documentation~/renderer-feature-screen-space-shadows.md b/com.unity.render-pipelines.universal/Documentation~/renderer-feature-screen-space-shadows.md new file mode 100644 index 00000000000..e21c84233f9 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/renderer-feature-screen-space-shadows.md @@ -0,0 +1,24 @@ +# Screen Space Shadows Renderer Feature + +The Screen Space Shadows [Renderer Feature](urp-renderer-feature.md) calculates screen-space shadows for opaque objects affected by the main directional light and draws them in the scene. To render screen-space shadows, URP requires an additional render target. This increases the amount of memory your application requires, but if your project uses forward rendering, screen-space shadows can benefit the runtime resource intensity. This is because if you use screen-space shadows, URP doesn't need to access the cascade shadow maps multiple times. +![Show screen space shadows](Images/ssshadows/ssshadows-result.png)
*Screen-space shadows in a sample Scene.* + +![Show screen space shadows texture](Images/ssshadows/ssshadows-shadow-texture.png)
*The screen-space shadows texture for the above image.* + +## Enabling screen-space shadows + +To add screen space shadows to your project, [add the Screen Space Shadows Renderer Feature ](urp-renderer-feature-how-to-add.md) to the URP Renderer. + +## Viewing screen-space shadows in the Frame Debugger + +After you enable this Renderer Feature, URP renders screen-space shadows in your scene. To distinguish between shadow map shadows and screen-space shadows, you can view the render passes that draws the shadows in the [Frame Debugger](https://docs.unity3d.com/Manual/FrameDebugger.html). +![Show main light shadows in frame debugger](Images/ssshadows/ssshadows-framedebugger.png)
*Screen Space Shadows pass in frame debugger.* + +You can compare shadows cast on opaque objects from the screen-space shadow texture or the cascade shadow maps. +![Cast Shadows using screen space shadow stexture](Images/ssshadows/ssshadows-cast-shadow-using-screenspace.png)
*The Frame Debugger shows the screen-space shadows texture.* + +![Cast shadows using cascade shadowmaps](Images/ssshadows/ssshadows-cast-shadow-using-cascades.png)
*The Frame Debugger shows shadows from a shadow map.* + +## **Requirements and compatibility** + +This Renderer Feature uses a depth texture and invokes a depth prepass before it draws opaque objects. It calculates the shadows in screen space before the `DrawOpaqueObjects` render pass. URP doesn't calculate or apply screen-space shadows for transparent objects; it uses [shadow maps](urp-shadows.md) for transparent objects instead. ![Won't cast shadows on transparent from screen space shadow texture](Images/ssshadows/ssshadows-cast-shadow-totransparent.png)*
The Frame Debugger showing that Unity uses shadow maps for transparent objects and screen-space shadows for opaque objects.* diff --git a/com.unity.render-pipelines.universal/Editor/RendererFeatures/ScreenSpaceShadowsEditor.cs b/com.unity.render-pipelines.universal/Editor/RendererFeatures/ScreenSpaceShadowsEditor.cs new file mode 100644 index 00000000000..ba30993c0cb --- /dev/null +++ b/com.unity.render-pipelines.universal/Editor/RendererFeatures/ScreenSpaceShadowsEditor.cs @@ -0,0 +1,36 @@ +using UnityEngine; +using UnityEngine.Rendering.Universal; + +namespace UnityEditor.Rendering.Universal +{ + [CustomEditor(typeof(ScreenSpaceShadows))] + internal class ScreenSpaceShadowsEditor : Editor + { + #region Serialized Properties + private SerializedProperty m_SettingsProp; + #endregion + + private bool m_IsInitialized = false; + + private struct Styles + { + public static GUIContent Description = EditorGUIUtility.TrTextContent("Description", "This feature resolves the cascaded shadows in screen space, so there is no options now. It might have additional settings later."); + } + + private void Init() + { + m_SettingsProp = serializedObject.FindProperty("m_Settings"); + m_IsInitialized = true; + } + + public override void OnInspectorGUI() + { + if (!m_IsInitialized) + { + Init(); + } + + EditorGUILayout.PropertyField(m_SettingsProp, Styles.Description); + } + } +} diff --git a/com.unity.render-pipelines.universal/Editor/RendererFeatures/ScreenSpaceShadowsEditor.cs.meta b/com.unity.render-pipelines.universal/Editor/RendererFeatures/ScreenSpaceShadowsEditor.cs.meta new file mode 100644 index 00000000000..8b9a03effff --- /dev/null +++ b/com.unity.render-pipelines.universal/Editor/RendererFeatures/ScreenSpaceShadowsEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d79f23692575f9d4f894c5b5a4b0ccad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.unity.render-pipelines.universal/Shaders/Utils/ScreenSpaceShadows.shader b/com.unity.render-pipelines.universal/Shaders/Utils/ScreenSpaceShadows.shader index ff8d122af33..ed8620e3f39 100644 --- a/com.unity.render-pipelines.universal/Shaders/Utils/ScreenSpaceShadows.shader +++ b/com.unity.render-pipelines.universal/Shaders/Utils/ScreenSpaceShadows.shader @@ -56,15 +56,14 @@ Shader "Hidden/Universal Render Pipeline/ScreenSpaceShadows" deviceDepth = deviceDepth * 2.0 - 1.0; #endif - float3 wpos = ComputeWorldSpacePosition(input.uv.xy, deviceDepth, unity_MatrixInvVP); - //Fetch shadow coordinates for cascade. + float3 wpos = ComputeWorldSpacePosition(input.uv.xy, deviceDepth, unity_MatrixInvVP); float4 coords = TransformWorldToShadowCoord(wpos); // Screenspace shadowmap is only used for directional lights which use orthogonal projection. - ShadowSamplingData shadowSamplingData = GetMainLightShadowSamplingData(); - half4 shadowParams = GetMainLightShadowParams(); - return SampleShadowmap(TEXTURE2D_ARGS(_MainLightShadowmapTexture, sampler_MainLightShadowmapTexture), coords, shadowSamplingData, shadowParams, false); + half realtimeShadow = MainLightRealtimeShadow(coords); + + return realtimeShadow; } ENDHLSL From 13ff7c798ab19378d63766b1ae9a59aa7c1a9907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolaj=20Z=C3=B8llner?= Date: Wed, 6 Oct 2021 16:43:51 +0200 Subject: [PATCH 04/14] ShadowCaster now using varyings normalWS for shader graph (#5527) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ShadowCaster now requires updated version on normals if changed in the vertex shader. * Updated changelog Co-authored-by: Nicolaj Zøllner Co-authored-by: Felipe Lira --- com.unity.render-pipelines.universal/CHANGELOG.md | 1 + .../Editor/ShaderGraph/Targets/UniversalTarget.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index fd4dc1ec844..8ba06e7c376 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fixed the LensFlare flicker with TAA on SceneView (case 1356734). - Fixed an issue where Unlit and ParticlesUnlit shaders did not have HDR color selection for albedo [case 1283767](https://issuetracker.unity3d.com/issues/built-in-unlit-particle-shader-has-hdr-color-selection-for-albedo-urp-unlit-particles-do-not) - Fixed overwriting of preview camera background color. [case 1357004](https://issuetracker.unity3d.com/product/unity/issues/guid/1361557/) +- Fixed ShadowCaster now requires varying normalWS to include changed normals from vertex shader in shader graph. ## [13.0.0] - 2021-09-01 ### Added diff --git a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs index 9fc4dfa43f4..52847c9e051 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs @@ -1083,7 +1083,7 @@ static class CoreRequiredFields { public static readonly FieldCollection ShadowCaster = new FieldCollection() { - StructFields.Attributes.normalOS, + StructFields.Varyings.normalWS, }; public static readonly FieldCollection DepthNormals = new FieldCollection() From 6b9b612431dc2b38486691e9920540c12690d849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Chodosevi=C4=8Dius?= Date: Wed, 6 Oct 2021 17:47:00 +0300 Subject: [PATCH 05/14] [2022.1] Add Shadow and Additional light variant stripping (#5544) * (Experimental) Adding strip off variants for additional lights and main/add shadows * Adding back check * Fix for main light with no shadows * Adding fake main light and fake additional light for disabled variants * Removing additional light shadows multi compile for paritcles deferred as it is not used there * Adding shadow strip off variant control * Adding fake passes to custom renderer * Adding empty main light shadows and empty additional shadows code path when regular one fails * Fix for additional lights and main light to work with empty pass setup * Fixing additional light check to use lightdata instead of urp asset * cleanup * Changing empty shadow function names to more clear ones * Spliting stripShadowsOffVariants into stripShadowsOffVariants and stripAdditionalLightOffVariants * Leftover * Moving setup empty passes to automatic setup * Adding empty pass setup for additional light shadows Co-authored-by: Felipe Lira --- .../CHANGELOG.md | 2 + .../Editor/ShaderPreprocessor.cs | 59 +++++++++++++++---- .../Runtime/ForwardLights.cs | 5 +- .../AdditionalLightsShadowCasterPass.cs | 57 ++++++++++++++++-- .../Passes/MainLightShadowCasterPass.cs | 45 ++++++++++++-- .../Runtime/ScriptableRenderer.cs | 4 ++ .../Runtime/UniversalRenderPipeline.cs | 1 + .../Runtime/UniversalRenderPipelineCore.cs | 5 ++ .../Runtime/UniversalRenderer.cs | 4 ++ .../Particles/ParticlesSimpleLit.shader | 2 +- .../CustomRenderPipeline/CustomRenderer.cs | 21 ++++++- 11 files changed, 176 insertions(+), 29 deletions(-) diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index 8ba06e7c376..585527917a8 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Added public api and updated docs for Light2D shape properties. - Added Depth Texture setting for Overlay Camera. - Added Depth Priming support for Vulkan with MSAA. +- Added Shadows and Additional Lights off variants stripping. ### Changed @@ -31,6 +32,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Changed - Removed experimental tile deferred code. - VFX: New shadergraph support directly on Universal target. +- Main light shadow, additional light shadow and additional light keywords are now enabled based on urp setting instead of existence in scene. This allows better variant stripping. ### Fixed - Added warning for lit shader detailed abledo, if texture is not linear. [1342011](https://issuetracker.unity3d.com/issues/detail-maps-packed-differently-in-built-in-vs-urp) diff --git a/com.unity.render-pipelines.universal/Editor/ShaderPreprocessor.cs b/com.unity.render-pipelines.universal/Editor/ShaderPreprocessor.cs index 281ff34c047..e87cb5fa551 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderPreprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/ShaderPreprocessor.cs @@ -48,6 +48,8 @@ enum ShaderFeatures MainLightShadowsCascade = (1 << 26), DrawProcedural = (1 << 27), ScreenSpaceOcclusionAfterOpaque = (1 << 28), + AdditionalLightsKeepOffVariants = (1 << 29), + ShadowsKeepOffVariants = (1 << 30), } [Flags] @@ -358,12 +360,22 @@ bool StripUnusedFeatures(ShaderFeatures features, Shader shader, ShaderSnippetDa var stripTool = new StripTool(features, shader, snippetData, compilerData.shaderKeywordSet, stripUnusedVariants); // strip main light shadows, cascade and screen variants - // TODO: Strip disabled keyword once no light will re-use same variant - if (stripTool.StripMultiCompileKeepOffVariant( - m_MainLightShadows, ShaderFeatures.MainLightShadows, - m_MainLightShadowsCascades, ShaderFeatures.MainLightShadowsCascade, - m_MainLightShadowsScreen, ShaderFeatures.ScreenSpaceShadows)) - return true; + if (IsFeatureEnabled(ShaderFeatures.ShadowsKeepOffVariants, features)) + { + if (stripTool.StripMultiCompileKeepOffVariant( + m_MainLightShadows, ShaderFeatures.MainLightShadows, + m_MainLightShadowsCascades, ShaderFeatures.MainLightShadowsCascade, + m_MainLightShadowsScreen, ShaderFeatures.ScreenSpaceShadows)) + return true; + } + else + { + if (stripTool.StripMultiCompile( + m_MainLightShadows, ShaderFeatures.MainLightShadows, + m_MainLightShadowsCascades, ShaderFeatures.MainLightShadowsCascade, + m_MainLightShadowsScreen, ShaderFeatures.ScreenSpaceShadows)) + return true; + } // TODO: Strip off variants once we have global soft shadows option for forcing instead as support if (stripTool.StripMultiCompileKeepOffVariant(m_SoftShadows, ShaderFeatures.SoftShadows)) @@ -400,9 +412,16 @@ bool StripUnusedFeatures(ShaderFeatures features, Shader shader, ShaderSnippetDa return true; // No additional light shadows - // TODO: Strip off variants once we support no shadow lights re-use same variant - if (stripTool.StripMultiCompileKeepOffVariant(m_AdditionalLightShadows, ShaderFeatures.AdditionalLightShadows)) - return true; + if (IsFeatureEnabled(ShaderFeatures.ShadowsKeepOffVariants, features)) + { + if (stripTool.StripMultiCompileKeepOffVariant(m_AdditionalLightShadows, ShaderFeatures.AdditionalLightShadows)) + return true; + } + else + { + if (stripTool.StripMultiCompile(m_AdditionalLightShadows, ShaderFeatures.AdditionalLightShadows)) + return true; + } if (stripTool.StripMultiCompile(m_ReflectionProbeBlending, ShaderFeatures.ReflectionProbeBlending)) return true; @@ -425,10 +444,18 @@ bool StripUnusedFeatures(ShaderFeatures features, Shader shader, ShaderSnippetDa } // Additional light are shaded per-vertex or per-pixel. - // TODO: Strip off variants once we support no additional lights re-used variants - if (stripTool.StripMultiCompileKeepOffVariant(m_AdditionalLightsVertex, ShaderFeatures.VertexLighting, - m_AdditionalLightsPixel, ShaderFeatures.AdditionalLights)) - return true; + if (IsFeatureEnabled(ShaderFeatures.AdditionalLightsKeepOffVariants, features)) + { + if (stripTool.StripMultiCompileKeepOffVariant(m_AdditionalLightsVertex, ShaderFeatures.VertexLighting, + m_AdditionalLightsPixel, ShaderFeatures.AdditionalLights)) + return true; + } + else + { + if (stripTool.StripMultiCompile(m_AdditionalLightsVertex, ShaderFeatures.VertexLighting, + m_AdditionalLightsPixel, ShaderFeatures.AdditionalLights)) + return true; + } if (stripTool.StripMultiCompile(m_ClusteredRendering, ShaderFeatures.ClusteredRendering)) return true; @@ -921,6 +948,12 @@ private static ShaderFeatures GetSupportedShaderFeatures(UniversalRenderPipeline } } + if (!renderer.stripShadowsOffVariants) + shaderFeatures |= ShaderFeatures.ShadowsKeepOffVariants; + + if (!renderer.stripAdditionalLightOffVariants) + shaderFeatures |= ShaderFeatures.AdditionalLightsKeepOffVariants; + var rendererClustered = false; ScriptableRendererData rendererData = pipelineAsset.m_RendererDataList[rendererIndex]; diff --git a/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs b/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs index 1dc4a6cd8ba..7a4f6ecb50c 100644 --- a/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs +++ b/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs @@ -353,10 +353,11 @@ public void Setup(ScriptableRenderContext context, ref RenderingData renderingDa SetupShaderLightConstants(cmd, ref renderingData); + bool lightCountCheck = (renderingData.cameraData.renderer.stripAdditionalLightOffVariants && renderingData.lightData.supportsAdditionalLights) || additionalLightsCount > 0; CoreUtils.SetKeyword(cmd, ShaderKeywordStrings.AdditionalLightsVertex, - additionalLightsCount > 0 && additionalLightsPerVertex && !useClusteredRendering); + lightCountCheck && additionalLightsPerVertex && !useClusteredRendering); CoreUtils.SetKeyword(cmd, ShaderKeywordStrings.AdditionalLightsPixel, - additionalLightsCount > 0 && !additionalLightsPerVertex && !useClusteredRendering); + lightCountCheck && !additionalLightsPerVertex && !useClusteredRendering); CoreUtils.SetKeyword(cmd, ShaderKeywordStrings.ClusteredRendering, useClusteredRendering); diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs index 0d7b638fd26..c7050766841 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs @@ -48,6 +48,12 @@ public ShadowResolutionRequest(int _visibleLightIndex, int _perLightShadowSliceI } } + /// + /// x is used in RenderAdditionalShadowMapAtlas to skip shadow map rendering for non-shadow-casting lights. + /// w is perLightFirstShadowSliceIndex, used in Lighting shader to find if Additional light casts shadows. + /// + readonly static Vector4 c_DefaultShadowParams = new Vector4(0, 0, 0, -1); + static int m_AdditionalLightsWorldToShadow_SSBO; static int m_AdditionalShadowParams_SSBO; bool m_UseStructuredBuffer; @@ -76,6 +82,8 @@ public ShadowResolutionRequest(int _visibleLightIndex, int _perLightShadowSliceI int[] m_VisibleLightIndexToSortedShadowResolutionRequestsFirstSliceIndex = null; // for each visible light, store the index of its first shadow slice in m_SortedShadowResolutionRequests (for quicker access) List m_UnusedAtlasSquareAreas = new List(); // this list tracks space available in the atlas + bool m_CreateEmptyShadowmap; + bool m_SupportsBoxFilterForShadows; ProfilingSampler m_ProfilingSetupSampler = new ProfilingSampler("Setup Additional Shadows"); @@ -608,11 +616,8 @@ public bool Setup(ref RenderingData renderingData) m_AdditionalLightShadowSliceIndexTo_WorldShadowMatrix = new Matrix4x4[totalShadowSlicesCount]; // initialize _AdditionalShadowParams - Vector4 defaultShadowParams = new Vector4(0 /*shadowStrength*/, 0, 0, -1 /*perLightFirstShadowSliceIndex*/); - // shadowParams.x is used in RenderAdditionalShadowMapAtlas to skip shadow map rendering for non-shadow-casting lights - // shadowParams.w is used in Lighting shader to find if Additional light casts shadows for (int i = 0; i < maxAdditionalLightShadowParams; ++i) - m_AdditionalLightIndexToShadowParams[i] = defaultShadowParams; + m_AdditionalLightIndexToShadowParams[i] = c_DefaultShadowParams; int validShadowCastingLightsCount = 0; bool supportsSoftShadows = renderingData.shadowData.supportsSoftShadows; @@ -731,7 +736,7 @@ public bool Setup(ref RenderingData renderingData) // Lights that need to be rendered in the shadow map atlas if (validShadowCastingLightsCount == 0) - return false; + return SetupForEmptyRendering(ref renderingData); int shadowCastingLightsBufferCount = m_ShadowSliceToAdditionalLightIndex.Count; @@ -786,6 +791,24 @@ public bool Setup(ref RenderingData renderingData) m_AdditionalLightsShadowmapTexture = ShadowUtils.GetTemporaryShadowTexture(renderTargetWidth, renderTargetHeight, k_ShadowmapBufferBits); m_MaxShadowDistanceSq = renderingData.cameraData.maxShadowDistance * renderingData.cameraData.maxShadowDistance; m_CascadeBorder = renderingData.shadowData.mainLightShadowCascadeBorder; + m_CreateEmptyShadowmap = false; + useNativeRenderPass = true; + + return true; + } + + bool SetupForEmptyRendering(ref RenderingData renderingData) + { + if (!renderingData.cameraData.renderer.stripShadowsOffVariants) + return false; + + m_AdditionalLightsShadowmapTexture = ShadowUtils.GetTemporaryShadowTexture(1, 1, k_ShadowmapBufferBits); + m_CreateEmptyShadowmap = true; + useNativeRenderPass = false; + + // initialize _AdditionalShadowParams + for (int i = 0; i < m_AdditionalLightIndexToShadowParams.Length; ++i) + m_AdditionalLightIndexToShadowParams[i] = c_DefaultShadowParams; return true; } @@ -799,6 +822,12 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera /// public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { + if (m_CreateEmptyShadowmap) + { + SetEmptyAdditionalShadowmapAtlas(ref context); + return; + } + if (renderingData.shadowData.supportsAdditionalLightShadows) RenderAdditionalShadowmapAtlas(ref context, ref renderingData.cullResults, ref renderingData.lightData, ref renderingData.shadowData); } @@ -832,6 +861,24 @@ void Clear() m_AdditionalLightsShadowmapTexture = null; } + void SetEmptyAdditionalShadowmapAtlas(ref ScriptableRenderContext context) + { + CommandBuffer cmd = CommandBufferPool.Get(); + CoreUtils.SetKeyword(cmd, ShaderKeywordStrings.AdditionalLightShadows, true); + if (RenderingUtils.useStructuredBuffer) + { + var shadowParamsBuffer = ShaderData.instance.GetAdditionalLightShadowParamsStructuredBuffer(m_AdditionalLightIndexToShadowParams.Length); + shadowParamsBuffer.SetData(m_AdditionalLightIndexToShadowParams); + cmd.SetGlobalBuffer(m_AdditionalShadowParams_SSBO, shadowParamsBuffer); + } + else + { + cmd.SetGlobalVectorArray(AdditionalShadowsConstantBuffer._AdditionalShadowParams, m_AdditionalLightIndexToShadowParams); + } + context.ExecuteCommandBuffer(cmd); + CommandBufferPool.Release(cmd); + } + void RenderAdditionalShadowmapAtlas(ref ScriptableRenderContext context, ref CullingResults cullResults, ref LightData lightData, ref ShadowData shadowData) { NativeArray visibleLights = lightData.visibleLights; diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs index 93f653a3846..5afe3b6a859 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs @@ -38,6 +38,8 @@ private static class MainLightShadowConstantBuffer ShadowSliceData[] m_CascadeSlices; Vector4[] m_CascadeSplitDistances; + bool m_CreateEmptyShadowmap; + ProfilingSampler m_ProfilingSetupSampler = new ProfilingSampler("Setup Main Shadowmap"); public MainLightShadowCasterPass(RenderPassEvent evt) @@ -71,17 +73,17 @@ public bool Setup(ref RenderingData renderingData) using var profScope = new ProfilingScope(null, m_ProfilingSetupSampler); if (!renderingData.shadowData.supportsMainLightShadows) - return false; + return SetupForEmptyRendering(ref renderingData); Clear(); int shadowLightIndex = renderingData.lightData.mainLightIndex; if (shadowLightIndex == -1) - return false; + return SetupForEmptyRendering(ref renderingData); VisibleLight shadowLight = renderingData.lightData.visibleLights[shadowLightIndex]; Light light = shadowLight.light; if (light.shadows == LightShadows.None) - return false; + return SetupForEmptyRendering(ref renderingData); if (shadowLight.lightType != LightType.Directional) { @@ -90,7 +92,7 @@ public bool Setup(ref RenderingData renderingData) Bounds bounds; if (!renderingData.cullResults.GetShadowCasterBounds(shadowLightIndex, out bounds)) - return false; + return SetupForEmptyRendering(ref renderingData); m_ShadowCasterCascadesCount = renderingData.shadowData.mainLightShadowCascadesCount; @@ -108,12 +110,26 @@ public bool Setup(ref RenderingData renderingData) out m_CascadeSplitDistances[cascadeIndex], out m_CascadeSlices[cascadeIndex]); if (!success) - return false; + return SetupForEmptyRendering(ref renderingData); } m_MainLightShadowmapTexture = ShadowUtils.GetTemporaryShadowTexture(renderTargetWidth, renderTargetHeight, k_ShadowmapBufferBits); m_MaxShadowDistanceSq = renderingData.cameraData.maxShadowDistance * renderingData.cameraData.maxShadowDistance; m_CascadeBorder = renderingData.shadowData.mainLightShadowCascadeBorder; + m_CreateEmptyShadowmap = false; + useNativeRenderPass = true; + + return true; + } + + bool SetupForEmptyRendering(ref RenderingData renderingData) + { + if (!renderingData.cameraData.renderer.stripShadowsOffVariants) + return false; + + m_MainLightShadowmapTexture = ShadowUtils.GetTemporaryShadowTexture(1, 1, k_ShadowmapBufferBits); + m_CreateEmptyShadowmap = true; + useNativeRenderPass = false; return true; } @@ -127,6 +143,12 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera /// public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { + if (m_CreateEmptyShadowmap) + { + SetEmptyMainLightCascadeShadowmap(ref context); + return; + } + RenderMainLightCascadeShadowmap(ref context, ref renderingData.cullResults, ref renderingData.lightData, ref renderingData.shadowData); } @@ -157,6 +179,19 @@ void Clear() m_CascadeSlices[i].Clear(); } + void SetEmptyMainLightCascadeShadowmap(ref ScriptableRenderContext context) + { + CommandBuffer cmd = CommandBufferPool.Get(); + CoreUtils.SetKeyword(cmd, ShaderKeywordStrings.MainLightShadows, true); + cmd.SetGlobalTexture(m_MainLightShadowmap.id, m_MainLightShadowmapTexture); + cmd.SetGlobalVector(MainLightShadowConstantBuffer._ShadowParams, + new Vector4(1, 0, 1, 0)); + cmd.SetGlobalVector(MainLightShadowConstantBuffer._ShadowmapSize, + new Vector4(1f / m_MainLightShadowmapTexture.width, 1f / m_MainLightShadowmapTexture.height, m_MainLightShadowmapTexture.width, m_MainLightShadowmapTexture.height)); + context.ExecuteCommandBuffer(cmd); + CommandBufferPool.Release(cmd); + } + void RenderMainLightCascadeShadowmap(ref ScriptableRenderContext context, ref CullingResults cullResults, ref LightData lightData, ref ShadowData shadowData) { int shadowLightIndex = lightData.mainLightIndex; diff --git a/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs b/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs index 13b7921386e..a69f7b6d9d2 100644 --- a/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs @@ -489,6 +489,10 @@ internal static void ConfigureActiveTarget(RenderTargetIdentifier colorAttachmen internal bool useDepthPriming { get; set; } = false; + internal bool stripShadowsOffVariants { get; set; } = false; + + internal bool stripAdditionalLightOffVariants { get; set; } = false; + public ScriptableRenderer(ScriptableRendererData data) { if (Debug.isDebugBuild) diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs index ec7279ff438..be5915726cf 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs @@ -1100,6 +1100,7 @@ static void InitializeLightData(UniversalRenderPipelineAsset settings, NativeArr lightData.maxPerObjectAdditionalLightsCount = 0; } + lightData.supportsAdditionalLights = settings.additionalLightsRenderingMode != LightRenderingMode.Disabled; lightData.shadeAdditionalLightsPerVertex = settings.additionalLightsRenderingMode == LightRenderingMode.PerVertex; lightData.visibleLights = visibleLights; lightData.supportsMixedLighting = settings.supportsMixedLighting; diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs index 41f07e5c61a..504730cf2fe 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs @@ -43,6 +43,11 @@ public struct LightData public bool reflectionProbeBoxProjection; public bool reflectionProbeBlending; public bool supportsLightLayers; + + /// + /// True if additional lights enabled. + /// + public bool supportsAdditionalLights; } public struct CameraData diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index aad25a931e5..e53a53139ba 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -158,6 +158,9 @@ public UniversalRenderer(UniversalRendererData data) : base(data) m_LightCookieManager = new LightCookieManager(ref settings); } + this.stripShadowsOffVariants = true; + this.stripAdditionalLightOffVariants = true; + ForwardLights.InitParams forwardInitParams; forwardInitParams.lightCookieManager = m_LightCookieManager; forwardInitParams.clusteredRendering = data.clusteredRendering; @@ -179,6 +182,7 @@ public UniversalRenderer(UniversalRendererData data) : base(data) // we inject the builtin passes in the before events. m_MainLightShadowCasterPass = new MainLightShadowCasterPass(RenderPassEvent.BeforeRenderingShadows); m_AdditionalLightsShadowCasterPass = new AdditionalLightsShadowCasterPass(RenderPassEvent.BeforeRenderingShadows); + #if ENABLE_VR && ENABLE_XR_MODULE m_XROcclusionMeshPass = new XROcclusionMeshPass(RenderPassEvent.BeforeRenderingOpaques); // Schedule XR copydepth right after m_FinalBlitPass(AfterRendering + 1) diff --git a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader index 6873d0b9b0d..756c1c10d03 100644 --- a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader @@ -177,7 +177,7 @@ Shader "Universal Render Pipeline/Particles/Simple Lit" // Universal Pipeline keywords #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN //#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS - #pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS + //#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS #pragma multi_compile_fragment _ _SHADOWS_SOFT #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED diff --git a/com.unity.testing.urp/Scripts/Runtime/CustomRenderPipeline/CustomRenderer.cs b/com.unity.testing.urp/Scripts/Runtime/CustomRenderPipeline/CustomRenderer.cs index c31e61e99a9..363abb1bd00 100644 --- a/com.unity.testing.urp/Scripts/Runtime/CustomRenderPipeline/CustomRenderer.cs +++ b/com.unity.testing.urp/Scripts/Runtime/CustomRenderPipeline/CustomRenderer.cs @@ -4,14 +4,21 @@ namespace UnityEngine.Rendering.Universal { public class CustomRenderer : ScriptableRenderer { - private DrawObjectsPass m_RenderOpaqueForwardPass; - + DrawObjectsPass m_RenderOpaqueForwardPass; ForwardLights m_ForwardLights; + MainLightShadowCasterPass m_MainLightShadowCasterPass; + AdditionalLightsShadowCasterPass m_AdditionalLightsShadowCasterPass; public CustomRenderer(CustomRenderGraphData data) : base(data) { - m_RenderOpaqueForwardPass = new DrawObjectsPass("Render Opaques", true, RenderPassEvent.BeforeRenderingOpaques + 1, RenderQueueRange.opaque, -1, StencilState.defaultValue, 0); + stripShadowsOffVariants = true; + stripAdditionalLightOffVariants = true; + m_ForwardLights = new ForwardLights(); + + m_RenderOpaqueForwardPass = new DrawObjectsPass("Render Opaques", true, RenderPassEvent.BeforeRenderingOpaques + 1, RenderQueueRange.opaque, -1, StencilState.defaultValue, 0); + m_MainLightShadowCasterPass = new MainLightShadowCasterPass(RenderPassEvent.BeforeRenderingShadows); + m_AdditionalLightsShadowCasterPass = new AdditionalLightsShadowCasterPass(RenderPassEvent.BeforeRenderingShadows); } public override void Setup(ScriptableRenderContext context, ref RenderingData renderingData) @@ -21,6 +28,14 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re foreach (var feature in rendererFeatures) feature.AddRenderPasses(this, ref renderingData); EnqueuePass(m_RenderOpaqueForwardPass); + + bool mainLightShadows = m_MainLightShadowCasterPass.Setup(ref renderingData); + bool additionalLightShadows = m_AdditionalLightsShadowCasterPass.Setup(ref renderingData); + + if (mainLightShadows) + EnqueuePass(m_MainLightShadowCasterPass); + if (additionalLightShadows) + EnqueuePass(m_AdditionalLightsShadowCasterPass); } public override void SetupLights(ScriptableRenderContext context, ref RenderingData renderingData) From 684dfdbb2bde015e60727a0d634e3e4322542e78 Mon Sep 17 00:00:00 2001 From: Martin Thorzen <35328557+martint-unity@users.noreply.github.com> Date: Wed, 6 Oct 2021 16:53:37 +0200 Subject: [PATCH 06/14] [URP][fix] adaptive performance foldout ui issue (#5820) * [URP][fix] adaptive performance foldout ui issue * added changelog entry --- com.unity.render-pipelines.universal/CHANGELOG.md | 1 + .../SerializedUniversalRenderPipelineAsset.cs | 6 ++++-- .../UniversalRenderPipelineAssetUI.Drawers.cs | 5 ++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index 585527917a8..11a35d6ca00 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -44,6 +44,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fixed a bug with Sprite Targets in ShaderGraph not rendering correctly in game view [1352225] - Fix for rendering thumbnails. [case 1348209](https://issuetracker.unity3d.com/issues/preview-of-assets-do-not-show-in-the-project-window) - Fixed a regression bug where XR camera postion can not be modified in beginCameraRendering [case 1365000] +- Fixed an issue in where installing the Adaptive Performance package caused errors to the inspector UI [1368161](https://issuetracker.unity3d.com/issues/urp-package-throws-compilation-error-cs1525-when-imported-together-with-adaptive-performance-package) ## [12.0.0] - 2021-01-11 ### Added diff --git a/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAsset/SerializedUniversalRenderPipelineAsset.cs b/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAsset/SerializedUniversalRenderPipelineAsset.cs index 71103e44ba1..caac1f9b20b 100644 --- a/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAsset/SerializedUniversalRenderPipelineAsset.cs +++ b/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAsset/SerializedUniversalRenderPipelineAsset.cs @@ -61,8 +61,9 @@ internal class SerializedUniversalRenderPipelineAsset public SerializedProperty colorGradingLutSize { get; } public SerializedProperty useFastSRGBLinearConversion { get; } +#if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER public SerializedProperty useAdaptivePerformance { get; } - +#endif public UniversalRenderPipelineAsset asset { get; } public SerializedObject serializedObject { get; } @@ -129,8 +130,9 @@ public SerializedUniversalRenderPipelineAsset(SerializedObject serializedObject) useFastSRGBLinearConversion = serializedObject.FindProperty("m_UseFastSRGBLinearConversion"); +#if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER useAdaptivePerformance = serializedObject.FindProperty("m_UseAdaptivePerformance"); - +#endif string Key = "Universal_Shadow_Setting_Unit:UI_State"; state = new EditorPrefBoolFlags(Key); } diff --git a/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAsset/UniversalRenderPipelineAssetUI.Drawers.cs b/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAsset/UniversalRenderPipelineAssetUI.Drawers.cs index 5ed4f8566d0..33cc3ee2758 100644 --- a/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAsset/UniversalRenderPipelineAssetUI.Drawers.cs +++ b/com.unity.render-pipelines.universal/Editor/UniversalRenderPipelineAsset/UniversalRenderPipelineAssetUI.Drawers.cs @@ -107,7 +107,7 @@ static bool ValidateRendererGraphicsAPIs(UniversalRenderPipelineAsset pipelineAs CED.AdditionalPropertiesFoldoutGroup(Styles.shadowSettingsText, Expandable.Shadows, k_ExpandedState, ExpandableAdditional.Shadows, k_AdditionalPropertiesState, DrawShadows, DrawShadowsAdditional), CED.AdditionalPropertiesFoldoutGroup(Styles.postProcessingSettingsText, Expandable.PostProcessing, k_ExpandedState, ExpandableAdditional.PostProcessing, k_AdditionalPropertiesState, DrawPostProcessing, DrawPostProcessingAdditional) #if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER - , CED.FoldoutGroup(Styles.adaptivePerformanceText, Expandable.AdaptivePerformance, k_ExpandedState, CED.Group(DrawAdvanced)), + , CED.FoldoutGroup(Styles.adaptivePerformanceText, Expandable.AdaptivePerformance, k_ExpandedState, CED.Group(DrawAdaptivePerformance)) #endif ); @@ -472,9 +472,8 @@ static void DrawPostProcessingAdditional(SerializedUniversalRenderPipelineAsset #if ADAPTIVE_PERFORMANCE_2_0_0_OR_NEWER static void DrawAdaptivePerformance(SerializedUniversalRenderPipelineAsset serialized, Editor ownerEditor) { - EditorGUILayout.PropertyField(m_UseAdaptivePerformance, Styles.useAdaptivePerformance); + EditorGUILayout.PropertyField(serialized.useAdaptivePerformance, Styles.useAdaptivePerformance); } - #endif } } From 84e1cf364fff33cc81c0b3699a59eee546f25345 Mon Sep 17 00:00:00 2001 From: Lewis Jordan Date: Wed, 6 Oct 2021 16:00:57 +0100 Subject: [PATCH 07/14] Updated link to the Enlighten documentation (#5928) --- com.unity.render-pipelines.universal/Documentation~/lighting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.universal/Documentation~/lighting.md b/com.unity.render-pipelines.universal/Documentation~/lighting.md index c3440c12fd8..9ffb6b53ea8 100644 --- a/com.unity.render-pipelines.universal/Documentation~/lighting.md +++ b/com.unity.render-pipelines.universal/Documentation~/lighting.md @@ -8,7 +8,7 @@ Areas where the Universal Render Pipeline (URP) differs from Unity's common ligh * The [Light component inspector](light-component.md), which displays some URP-specific controls. * The [Universal Additional Light Data](universal-additional-light-data.md) component, which allows Unity to store Light-related data that is specific to URP. -* Enlighten Realtime Global Illumination is supported in URP from version 12. For more information, see the forum post [Update on Global Illumination 2021](https://forum.unity.com/threads/update-on-global-illumination-2021.1067015/). +* Enlighten Realtime Global Illumination is supported in URP from version 12. For more information, see [Realtime Global Illumination using Enlighten](https://docs.unity3d.com/2021.2/Documentation/Manual/realtime-gi-using-enlighten.html). For a full comparison of lighting features between Unity's Built-in Render Pipeline and URP, and an up to date list of lighting features that are currently under research, see [this feature comparison chart](universalrp-builtin-feature-comparison.md). From a65bb59307a01978d9e9324055156a59d4faf2e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Sideravi=C4=8Dius?= Date: Wed, 6 Oct 2021 18:10:21 +0300 Subject: [PATCH 08/14] [URP] DepthCopy texture as a color (#5369) * switching _CameraDepthTexture to R32Float and accommodating some stuff for that * some changes to the Foundation Project for Repro project (to be reverted later on) * Revert "some changes to the Foundation Project for Repro project (to be reverted later on)" This reverts commit 80af9be07365f5184cba56f019f3ee8e8769a60c. * disable fbfetch on DbufferDeferred decals * adding IsTransientAttachment to ScriptableRenderPass/NativeRenderPass code * making depthOnly pass compatible to render color texture and changing shaders to accommodate that * fix after updating trunk * merge fix - change descriptor for DepthOnly configureTarget to the correct one * enabling depthbuffer for depth copy and adding additional override for ConfigureTarget * formatting fixes * terrain shader passes depthonly pass fix to output clippos * adding depth copy for renderpass as well and changing how fake depth is handled * some cleanup and refactoring and enabling Renderpass for SS forward decals * adding _OUTPUT_DEPTH keyword to CopyDepthPass to select correct output buffer in shader * adding depth output for VFXGraph depth only passes * changing the semantic for outDepthColor in VFXPasses.template --- .../Scenes/230_Decals/Materials/Brick.mat | 4 +- .../ShaderLibrary/API/Metal.hlsl | 3 +- .../ShaderGraph/Includes/DepthOnlyPass.hlsl | 2 +- .../ShaderGraph/Targets/UniversalTarget.cs | 2 +- .../VFXGraph/Shaders/VFXPasses.template | 5 ++- .../Runtime/DeferredLights.cs | 10 ++++- .../Runtime/NativeRenderPass.cs | 37 ++++++++++++++++--- .../Runtime/Passes/CopyDepthPass.cs | 15 ++++++-- .../Runtime/Passes/DeferredPass.cs | 2 +- .../Runtime/Passes/DepthOnlyPass.cs | 16 +++++--- .../Runtime/Passes/FinalBlitPass.cs | 2 +- .../Runtime/Passes/GBufferPass.cs | 10 ++++- .../Runtime/Passes/ScriptableRenderPass.cs | 27 +++++++++++++- .../RendererFeatures/DecalRendererFeature.cs | 8 ++++ .../Runtime/UniversalRenderer.cs | 6 ++- .../Shaders/BakedLit.shader | 4 +- .../Shaders/ComplexLit.shader | 4 +- .../Shaders/DepthOnlyPass.hlsl | 4 +- .../Shaders/Lit.shader | 4 +- .../Shaders/Nature/SpeedTree7.shader | 2 +- .../Shaders/Nature/SpeedTree7Billboard.shader | 2 +- .../Nature/SpeedTree7CommonPasses.hlsl | 2 +- .../Shaders/Nature/SpeedTree8.shader | 2 +- .../Shaders/Nature/SpeedTree8Passes.hlsl | 2 +- .../Particles/ParticlesDepthOnlyPass.hlsl | 4 +- .../Shaders/Particles/ParticlesLit.shader | 2 +- .../Particles/ParticlesSimpleLit.shader | 2 +- .../Shaders/Particles/ParticlesUnlit.shader | 2 +- .../Shaders/SimpleLit.shader | 4 +- .../Shaders/Terrain/TerrainDetailLit.shader | 2 +- .../Shaders/Terrain/TerrainLit.shader | 2 +- .../Shaders/Terrain/TerrainLitBase.shader | 2 +- .../Shaders/Terrain/TerrainLitPasses.hlsl | 2 +- .../Shaders/Terrain/WavingGrass.shader | 2 +- .../Terrain/WavingGrassBillboard.shader | 2 +- .../Shaders/Terrain/WavingGrassPasses.hlsl | 2 +- .../Shaders/Unlit.shader | 4 +- .../Shaders/Utils/CopyDepth.shader | 3 +- .../Shaders/Utils/CopyDepthPass.hlsl | 4 ++ .../Shaders/VFXParticleCommon.template | 2 +- 40 files changed, 156 insertions(+), 60 deletions(-) diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat index c0fdc5848a0..02249ca0b3c 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat @@ -13,7 +13,7 @@ Material: m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2000 + m_CustomRenderQueue: 1999 stringTagMap: RenderType: Opaque disabledShaderPasses: [] @@ -95,7 +95,7 @@ Material: - _Metallic: 0 - _OcclusionStrength: 0.387 - _Parallax: 0.0477 - - _QueueOffset: 0 + - _QueueOffset: -1 - _ReceiveShadows: 1 - _Smoothness: 0.742 - _SmoothnessTextureChannel: 0 diff --git a/com.unity.render-pipelines.core/ShaderLibrary/API/Metal.hlsl b/com.unity.render-pipelines.core/ShaderLibrary/API/Metal.hlsl index 295f1567367..648b20b4cf8 100644 --- a/com.unity.render-pipelines.core/ShaderLibrary/API/Metal.hlsl +++ b/com.unity.render-pipelines.core/ShaderLibrary/API/Metal.hlsl @@ -150,7 +150,6 @@ #define GATHER_GREEN_TEXTURE2D(textureName, samplerName, coord2) textureName.GatherGreen(samplerName, coord2) #define GATHER_BLUE_TEXTURE2D(textureName, samplerName, coord2) textureName.GatherBlue(samplerName, coord2) #define GATHER_ALPHA_TEXTURE2D(textureName, samplerName, coord2) textureName.GatherAlpha(samplerName, coord2) - -#if defined(SHADER_API_MOBILE) +#if defined(UNITY_FRAMEBUFFER_FETCH_AVAILABLE) #define PLATFORM_SUPPORTS_NATIVE_RENDERPASS #endif diff --git a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl index 26e80370a59..996ecb1f75a 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl +++ b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl @@ -21,7 +21,7 @@ half4 frag(PackedVaryings packedInput) : SV_TARGET clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold); #endif - return 0; + return packedInput.positionCS.z; } #endif diff --git a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs index 52847c9e051..ca97405fbba 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs @@ -1242,7 +1242,7 @@ public static RenderStateCollection DepthOnly(UniversalTarget target) { RenderState.ZTest(ZTest.LEqual) }, { RenderState.ZWrite(ZWrite.On) }, { UberSwitchedCullRenderState(target) }, - { RenderState.ColorMask("ColorMask 0") }, + { RenderState.ColorMask("ColorMask R") }, }; return result; diff --git a/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/VFXPasses.template b/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/VFXPasses.template index 0515d737096..ab6d76d401a 100644 --- a/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/VFXPasses.template +++ b/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/VFXPasses.template @@ -86,6 +86,9 @@ void frag(ps_input i #if VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL #if defined(WRITE_NORMAL_BUFFER) , out float4 outNormalBuffer : SV_Target0 + , out float4 outDepthColor : SV_Target1 + #else + , out float4 outDepthColor : SV_Target0 #endif #elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION , out float4 outColor : SV_Target0 @@ -130,7 +133,7 @@ void frag(ps_input i // We use depth prepass for scene selection in the editor, this code allow to output the outline correctly outColor = float4(_ObjectId, _PassValue, 1.0, 1.0); #elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL - //void + outDepthColor = float4(i.VFX_VARYING_POSCS.z, 0,0,0); #elif VFX_PASSDEPTH == VFX_PASSDEPTH_SHADOW //void #else diff --git a/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs b/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs index 7ea78e2d28f..1888441f080 100644 --- a/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs +++ b/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs @@ -188,6 +188,7 @@ internal bool AccurateGbufferNormals // Output lighting result. internal RenderTargetHandle[] GbufferAttachments { get; set; } internal RenderTargetIdentifier[] DeferredInputAttachments { get; set; } + internal bool[] DeferredInputIsTransient { get; set; } // Input depth texture, also bound as read-only RT internal RenderTargetHandle DepthAttachment { get; set; } // @@ -402,12 +403,17 @@ public void Setup(ref RenderingData renderingData, this.GbufferAttachmentIdentifiers[i] = this.GbufferAttachments[i].Identifier(); this.GbufferFormats[i] = this.GetGBufferFormat(i); } - if (this.DeferredInputAttachments == null && this.UseRenderPass && this.GbufferAttachments.Length >= 5) + if (this.DeferredInputAttachments == null && this.UseRenderPass && this.GbufferAttachments.Length >= 3) { this.DeferredInputAttachments = new RenderTargetIdentifier[4] { this.GbufferAttachmentIdentifiers[0], this.GbufferAttachmentIdentifiers[1], - this.GbufferAttachmentIdentifiers[2], this.GbufferAttachmentIdentifiers[4] + this.GbufferAttachmentIdentifiers[2], this.DepthCopyTextureIdentifier + }; + + this.DeferredInputIsTransient = new bool[4] + { + true, true, true, false }; } this.DepthAttachmentIdentifier = depthAttachment.Identifier(); diff --git a/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs b/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs index 4a117d6b681..2dc8e24140c 100644 --- a/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs @@ -29,6 +29,11 @@ public partial class ScriptableRenderer }; AttachmentDescriptor m_ActiveDepthAttachmentDescriptor; + bool[] m_IsActiveColorAttachmentTransient = new bool[] + { + false, false, false, false, false, false, false, false + }; + internal RenderBufferStoreAction[] m_FinalColorStoreAction = new RenderBufferStoreAction[] { RenderBufferStoreAction.Store, RenderBufferStoreAction.Store, RenderBufferStoreAction.Store, RenderBufferStoreAction.Store, @@ -200,6 +205,7 @@ internal void SetNativeRenderPassMRTAttachmentList(ScriptableRenderPass renderPa UpdateFinalStoreActions(currentMergeablePasses, cameraData); int currentAttachmentIdx = 0; + bool hasInput = false; foreach (var passIdx in currentMergeablePasses) { if (passIdx == -1) @@ -248,7 +254,10 @@ internal void SetNativeRenderPassMRTAttachmentList(ScriptableRenderPass renderPa } if (PassHasInputAttachments(pass)) + { + hasInput = true; SetupInputAttachmentIndices(pass); + } // TODO: this is redundant and is being setup for each attachment. Needs to be done only once per mergeable pass list (we need to make sure mergeable passes use the same depth!) m_ActiveDepthAttachmentDescriptor = new AttachmentDescriptor(SystemInfo.GetGraphicsFormat(DefaultFormat.DepthStencil)); @@ -260,6 +269,9 @@ internal void SetNativeRenderPassMRTAttachmentList(ScriptableRenderPass renderPa if (m_UseOptimizedStoreActions) m_ActiveDepthAttachmentDescriptor.storeAction = m_FinalDepthStoreAction; } + + if (hasInput) + SetupTransientInputAttachments(m_RenderPassesAttachmentCount[currentPassHash]); } } @@ -504,6 +516,7 @@ internal void ExecuteNativeRenderPass(ScriptableRenderContext context, Scriptabl for (int i = 0; i < m_ActiveColorAttachmentDescriptors.Length; ++i) { m_ActiveColorAttachmentDescriptors[i] = RenderingUtils.emptyAttachment; + m_IsActiveColorAttachmentTransient[i] = false; } m_ActiveDepthAttachmentDescriptor = RenderingUtils.emptyAttachment; @@ -523,11 +536,25 @@ internal void SetupInputAttachmentIndices(ScriptableRenderPass pass) continue; } - // Assume input attachment has to be transient as ScriptableRenderPass currently has only setters for StoreAction - // We also change the target of the descriptor for it to be initialized engine-side as a transient resource. - m_ActiveColorAttachmentDescriptors[pass.m_InputAttachmentIndices[i]].loadAction = RenderBufferLoadAction.DontCare; - m_ActiveColorAttachmentDescriptors[pass.m_InputAttachmentIndices[i]].storeAction = RenderBufferStoreAction.DontCare; - m_ActiveColorAttachmentDescriptors[pass.m_InputAttachmentIndices[i]].loadStoreTarget = BuiltinRenderTextureType.None; + // Only update it as long as it has default value - if it was changed once, we assume it'll be memoryless in the whole RenderPass + if (!m_IsActiveColorAttachmentTransient[pass.m_InputAttachmentIndices[i]]) + { + m_IsActiveColorAttachmentTransient[pass.m_InputAttachmentIndices[i]] = pass.IsInputAttachmentTransient(i); + } + } + } + + internal void SetupTransientInputAttachments(int attachmentCount) + { + for (int i = 0; i < attachmentCount; ++i) + { + if (!m_IsActiveColorAttachmentTransient[i]) + continue; + + m_ActiveColorAttachmentDescriptors[i].loadAction = RenderBufferLoadAction.DontCare; + m_ActiveColorAttachmentDescriptors[i].storeAction = RenderBufferStoreAction.DontCare; + // We change the target of the descriptor for it to be initialized engine-side as a transient resource. + m_ActiveColorAttachmentDescriptors[i].loadStoreTarget = BuiltinRenderTextureType.None; } } diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs index 55ece56250b..24000c01a0e 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs @@ -18,6 +18,9 @@ public class CopyDepthPass : ScriptableRenderPass private RenderTargetHandle destination { get; set; } internal bool AllocateRT { get; set; } internal int MssaSamples { get; set; } + // In some cases (Scene view, XR and etc.) we actually want to output to depth buffer + // So this variable needs to be set to true to enable the correct copy shader semantic + internal bool CopyToDepth { get; set; } Material m_CopyDepthMaterial; internal bool m_CopyResolvedDepth; @@ -26,6 +29,7 @@ public CopyDepthPass(RenderPassEvent evt, Material copyDepthMaterial) { base.profilingSampler = new ProfilingSampler(nameof(CopyDepthPass)); AllocateRT = true; + CopyToDepth = false; m_CopyDepthMaterial = copyDepthMaterial; renderPassEvent = evt; m_CopyResolvedDepth = false; @@ -47,14 +51,14 @@ public void Setup(RenderTargetHandle source, RenderTargetHandle destination) public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { var descriptor = renderingData.cameraData.cameraTargetDescriptor; - descriptor.colorFormat = RenderTextureFormat.Depth; - descriptor.depthBufferBits = 32; //TODO: do we really need this. double check; + descriptor.graphicsFormat = GraphicsFormat.R32_SFloat; + descriptor.depthBufferBits = 0; descriptor.msaaSamples = 1; if (this.AllocateRT) cmd.GetTemporaryRT(destination.id, descriptor, FilterMode.Point); // On Metal iOS, prevent camera attachments to be bound and cleared during this pass. - ConfigureTarget(new RenderTargetIdentifier(destination.Identifier(), 0, CubemapFace.Unknown, -1), descriptor.depthStencilFormat, descriptor.width, descriptor.height, descriptor.msaaSamples, true); + ConfigureTarget(new RenderTargetIdentifier(destination.Identifier(), 0, CubemapFace.Unknown, -1), GraphicsFormat.R32_SFloat, descriptor.width, descriptor.height, descriptor.msaaSamples, false); ConfigureClear(ClearFlag.None, Color.black); } @@ -112,6 +116,11 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData break; } + if (CopyToDepth) + cmd.EnableShaderKeyword("_OUTPUT_DEPTH"); + else + cmd.DisableShaderKeyword("_OUTPUT_DEPTH"); + cmd.SetGlobalTexture("_CameraDepthAttachment", source.Identifier()); diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs index bdcb7f891a0..a78ddccedb9 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs @@ -29,7 +29,7 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera RenderTargetIdentifier lightingAttachmentId = m_DeferredLights.GbufferAttachmentIdentifiers[m_DeferredLights.GBufferLightingIndex]; RenderTargetIdentifier depthAttachmentId = m_DeferredLights.DepthAttachmentIdentifier; if (m_DeferredLights.UseRenderPass) - ConfigureInputAttachments(m_DeferredLights.DeferredInputAttachments); + ConfigureInputAttachments(m_DeferredLights.DeferredInputAttachments, m_DeferredLights.DeferredInputIsTransient); // TODO: change to m_DeferredLights.GetGBufferFormat(m_DeferredLights.GBufferLightingIndex) when it's not GraphicsFormat.None // TODO: Cannot currently bind depth texture as read-only! diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs index 00b3a1aa512..a20015a5356 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs @@ -31,6 +31,7 @@ public DepthOnlyPass(RenderPassEvent evt, RenderQueueRange renderQueueRange, Lay base.profilingSampler = new ProfilingSampler(nameof(DepthOnlyPass)); m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask); renderPassEvent = evt; + useNativeRenderPass = false; } ///
@@ -41,7 +42,8 @@ public void Setup( RenderTargetHandle depthAttachmentHandle) { this.depthAttachmentHandle = depthAttachmentHandle; - baseDescriptor.colorFormat = RenderTextureFormat.Depth; + baseDescriptor.graphicsFormat = GraphicsFormat.R32_SFloat; + // Even though this texture is going to be a color texture, we need depth buffer to correctly render it (ZTest and all) baseDescriptor.depthBufferBits = k_DepthBufferBits; // Depth-Only pass don't use MSAA @@ -61,16 +63,18 @@ public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderin // When depth priming is in use the camera target should not be overridden so the Camera's MSAA depth attachment is used. if (renderingData.cameraData.renderer.useDepthPriming && (renderingData.cameraData.renderType == CameraRenderType.Base || renderingData.cameraData.clearDepth)) { - ConfigureTarget(renderingData.cameraData.renderer.cameraDepthTarget, descriptor.depthStencilFormat, desc.width, desc.height, 1, true); + ConfigureTarget(renderingData.cameraData.renderer.cameraDepthTarget, desc.depthStencilFormat, desc.width, desc.height, 1, true); + // Only clear depth here so we don't clear any bound color target. It might be unused by this pass but that doesn't mean we can just clear it. (e.g. in case of overlay cameras + depth priming) + ConfigureClear(ClearFlag.Depth, Color.black); } // When not using depth priming the camera target should be set to our non MSAA depth target. else { - ConfigureTarget(new RenderTargetIdentifier(depthAttachmentHandle.Identifier(), 0, CubemapFace.Unknown, -1), descriptor.depthStencilFormat, desc.width, desc.height, 1, true); + useNativeRenderPass = true; + var target = new RenderTargetIdentifier(depthAttachmentHandle.Identifier(), 0, CubemapFace.Unknown, -1); + ConfigureTarget(target, target, GraphicsFormat.R32_SFloat, desc.width, desc.height, 1); + ConfigureClear(ClearFlag.All, Color.black); } - - // Only clear depth here so we don't clear any bound color target. It might be unused by this pass but that doesn't mean we can just clear it. (e.g. in case of overlay cameras + depth priming) - ConfigureClear(ClearFlag.Depth, Color.black); } /// diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs index 3b1f0cfb827..6dcd1926258 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs @@ -109,7 +109,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData cameraTarget, RenderBufferLoadAction.Load, RenderBufferStoreAction.Store, - ClearFlag.None, + ClearFlag.Depth, Color.black); Camera camera = cameraData.camera; diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs index 9eb4cfd3649..7e9992d20a3 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs @@ -57,6 +57,11 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera if (cmd != null) { + if (m_DeferredLights.UseRenderPass) + { + m_DeferredLights.GbufferAttachments[m_DeferredLights.GbufferDepthIndex] = m_DeferredLights.DepthCopyTexture; + m_DeferredLights.GbufferAttachmentIdentifiers[m_DeferredLights.GbufferDepthIndex] = m_DeferredLights.DepthCopyTextureIdentifier; + } // Create and declare the render targets used in the pass for (int i = 0; i < gbufferAttachments.Length; ++i) { @@ -70,14 +75,15 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera continue; // No need to setup temporaryRTs if we are using input attachments as they will be Memoryless - if (m_DeferredLights.UseRenderPass && i != m_DeferredLights.GBufferShadowMask && i != m_DeferredLights.GBufferRenderingLayers) + if (m_DeferredLights.UseRenderPass && i != m_DeferredLights.GBufferShadowMask && i != m_DeferredLights.GBufferRenderingLayers && (i != m_DeferredLights.GbufferDepthIndex && !m_DeferredLights.HasDepthPrepass)) continue; RenderTextureDescriptor gbufferSlice = cameraTextureDescriptor; gbufferSlice.depthBufferBits = 0; // make sure no depth surface is actually created gbufferSlice.stencilFormat = GraphicsFormat.None; gbufferSlice.graphicsFormat = m_DeferredLights.GetGBufferFormat(i); - cmd.GetTemporaryRT(m_DeferredLights.GbufferAttachments[i].id, gbufferSlice); + + cmd.GetTemporaryRT(m_DeferredLights.GbufferAttachments[i].id, gbufferSlice, FilterMode.Point); } } diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs index 2c2fd432499..2cd48776f3f 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs @@ -227,6 +227,7 @@ public Color clearColor internal GraphicsFormat[] renderTargetFormat { get; set; } RenderTargetIdentifier[] m_ColorAttachments = new RenderTargetIdentifier[] { BuiltinRenderTextureType.CameraTarget }; internal RenderTargetIdentifier[] m_InputAttachments = new RenderTargetIdentifier[8]; + internal bool[] m_InputAttachmentIsTransient = new bool[8]; RenderTargetIdentifier m_DepthAttachment = BuiltinRenderTextureType.CameraTarget; ScriptableRenderPassInput m_Input = ScriptableRenderPassInput.None; ClearFlag m_ClearFlag = ClearFlag.None; @@ -245,6 +246,7 @@ public ScriptableRenderPass() renderPassEvent = RenderPassEvent.AfterRenderingOpaques; m_ColorAttachments = new RenderTargetIdentifier[] { BuiltinRenderTextureType.CameraTarget, 0, 0, 0, 0, 0, 0, 0 }; m_InputAttachments = new RenderTargetIdentifier[] { -1, -1, -1, -1, -1, -1, -1, -1 }; + m_InputAttachmentIsTransient = new bool[] { false, false, false, false, false, false, false, false }; m_DepthAttachment = BuiltinRenderTextureType.CameraTarget; m_ColorStoreActions = new RenderBufferStoreAction[] { RenderBufferStoreAction.Store, 0, 0, 0, 0, 0, 0, 0 }; m_DepthStoreAction = RenderBufferStoreAction.Store; @@ -314,9 +316,10 @@ public void ConfigureDepthStoreAction(RenderBufferStoreAction storeAction) m_OverriddenDepthStoreAction = true; } - internal void ConfigureInputAttachments(RenderTargetIdentifier input) + internal void ConfigureInputAttachments(RenderTargetIdentifier input, bool isTransient = false) { m_InputAttachments[0] = input; + m_InputAttachmentIsTransient[0] = isTransient; } internal void ConfigureInputAttachments(RenderTargetIdentifier[] inputs) @@ -324,6 +327,22 @@ internal void ConfigureInputAttachments(RenderTargetIdentifier[] inputs) m_InputAttachments = inputs; } + internal void ConfigureInputAttachments(RenderTargetIdentifier[] inputs, bool[] isTransient) + { + ConfigureInputAttachments(inputs); + m_InputAttachmentIsTransient = isTransient; + } + + internal void SetInputAttachmentTransient(int idx, bool isTransient) + { + m_InputAttachmentIsTransient[idx] = isTransient; + } + + internal bool IsInputAttachmentTransient(int idx) + { + return m_InputAttachmentIsTransient[idx]; + } + /// /// Configures render targets for this render pass. Call this instead of CommandBuffer.SetRenderTarget. /// This method should be called inside Configure. @@ -402,6 +421,12 @@ internal void ConfigureTarget(RenderTargetIdentifier colorAttachment, GraphicsFo renderTargetFormat[0] = format; } + internal void ConfigureTarget(RenderTargetIdentifier colorAttachment, RenderTargetIdentifier depthAttachment, GraphicsFormat format, int width, int height, int sampleCount) + { + m_DepthAttachment = depthAttachment; + ConfigureTarget(colorAttachment, format, width, height, sampleCount); + } + /// /// Configures render targets for this render pass. Call this instead of CommandBuffer.SetRenderTarget. /// This method should be called inside Configure. diff --git a/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs b/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs index 7dd94364e29..fb68deb2ade 100644 --- a/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs +++ b/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs @@ -392,7 +392,10 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData m_ForwardEmissivePass = new DecalForwardEmissivePass(m_DecalDrawForwardEmissiveSystem); if (universalRenderer.actualRenderingMode == RenderingMode.Deferred) + { m_DBufferRenderPass.deferredLights = universalRenderer.deferredLights; + m_DBufferRenderPass.deferredLights.DisableFramebufferFetchInput(); + } break; } @@ -483,6 +486,11 @@ public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingD } } + internal override bool SupportsNativeRenderPass() + { + return m_Technique == DecalTechnique.GBuffer || m_Technique == DecalTechnique.ScreenSpace; + } + protected override void Dispose(bool disposing) { CoreUtils.Destroy(m_CopyDepthMaterial); diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index e53a53139ba..aa05ff6c743 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -712,7 +712,9 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re } // If a depth texture was created we necessarily need to copy it, otherwise we could have render it to a renderbuffer. - if (requiresDepthCopyPass) + // Also skip if Deferred+RenderPass as CameraDepthTexture is used and filled by the GBufferPass + // however we might need the depth texture with Forward-only pass rendered to it, so enable the copy depth in that case + if (requiresDepthCopyPass && !(this.actualRenderingMode == RenderingMode.Deferred && useRenderPassEnabled && !renderPassInputs.requiresDepthTexture)) { m_CopyDepthPass.Setup(m_ActiveCameraDepthAttachment, m_DepthTexture); @@ -842,6 +844,7 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re if (!depthTargetResolved && cameraData.xr.copyDepth) { m_XRCopyDepthPass.Setup(m_ActiveCameraDepthAttachment, RenderTargetHandle.GetCameraTarget(cameraData.xr)); + m_XRCopyDepthPass.CopyToDepth = true; EnqueuePass(m_XRCopyDepthPass); } } @@ -860,6 +863,7 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re // Scene view camera should always resolve target (not stacked) Assertions.Assert.IsTrue(lastCameraInTheStack, "Editor camera must resolve target upon finish rendering."); m_FinalDepthCopyPass.Setup(m_DepthTexture, RenderTargetHandle.CameraTarget); + m_FinalDepthCopyPass.CopyToDepth = true; m_FinalDepthCopyPass.MssaSamples = 0; EnqueuePass(m_FinalDepthCopyPass); } diff --git a/com.unity.render-pipelines.universal/Shaders/BakedLit.shader b/com.unity.render-pipelines.universal/Shaders/BakedLit.shader index 9cbef2157a8..7c1f1a1fb84 100644 --- a/com.unity.render-pipelines.universal/Shaders/BakedLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/BakedLit.shader @@ -82,7 +82,7 @@ Shader "Universal Render Pipeline/Baked Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R HLSLPROGRAM #pragma exclude_renderers gles gles3 glcore @@ -280,7 +280,7 @@ Shader "Universal Render Pipeline/Baked Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R HLSLPROGRAM #pragma only_renderers gles gles3 glcore d3d11 diff --git a/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader b/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader index 7ebfcbf20e8..75d11157f9a 100644 --- a/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader @@ -191,7 +191,7 @@ Shader "Universal Render Pipeline/Complex Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull[_Cull] HLSLPROGRAM @@ -420,7 +420,7 @@ Shader "Universal Render Pipeline/Complex Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl b/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl index 7c00bd3d336..d7d12c64e5d 100644 --- a/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl @@ -29,11 +29,11 @@ Varyings DepthOnlyVertex(Attributes input) return output; } -half4 DepthOnlyFragment(Varyings input) : SV_TARGET +half DepthOnlyFragment(Varyings input) : SV_TARGET { UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); Alpha(SampleAlbedoAlpha(input.uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)).a, _BaseColor, _Cutoff); - return 0; + return input.positionCS.z; } #endif diff --git a/com.unity.render-pipelines.universal/Shaders/Lit.shader b/com.unity.render-pipelines.universal/Shaders/Lit.shader index fb085b39a26..da4ea8dc5da 100644 --- a/com.unity.render-pipelines.universal/Shaders/Lit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Lit.shader @@ -260,7 +260,7 @@ Shader "Universal Render Pipeline/Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull[_Cull] HLSLPROGRAM @@ -495,7 +495,7 @@ Shader "Universal Render Pipeline/Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7.shader b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7.shader index b719ebe8896..a3a9e0164fc 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7.shader +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7.shader @@ -168,7 +168,7 @@ Shader "Universal Render Pipeline/Nature/SpeedTree7" Name "DepthOnly" Tags{"LightMode" = "DepthOnly"} - ColorMask 0 + ColorMask R HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Billboard.shader b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Billboard.shader index a2a1e8ec143..349ad68e1a1 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Billboard.shader +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Billboard.shader @@ -116,7 +116,7 @@ Shader "Universal Render Pipeline/Nature/SpeedTree7 Billboard" Name "DepthOnly" Tags{"LightMode" = "DepthOnly"} - ColorMask 0 + ColorMask R HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl index 8d09d387219..24b06077f78 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl @@ -243,7 +243,7 @@ half4 SpeedTree7FragDepth(SpeedTreeVertexDepthOutput input) : SV_Target // We use depth prepass for scene selection in the editor, this code allow to output the outline correctly return half4(_ObjectId, _PassValue, 1.0, 1.0); #else - return half4(0, 0, 0, 0); + return half4(input.clipPos.z, 0, 0, 0); #endif } diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8.shader b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8.shader index 47c24003005..3e768e0b56b 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8.shader +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8.shader @@ -197,7 +197,7 @@ Shader "Universal Render Pipeline/Nature/SpeedTree8" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl index 20e664e417c..c80cf5372e2 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl @@ -512,7 +512,7 @@ half4 SpeedTree8FragDepth(SpeedTreeVertexDepthOutput input) : SV_Target // We use depth prepass for scene selection in the editor, this code allow to output the outline correctly return half4(_ObjectId, _PassValue, 1.0, 1.0); #else - return half4(0, 0, 0, 0); + return half4(input.clipPos.z, 0, 0, 0); #endif } diff --git a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesDepthOnlyPass.hlsl b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesDepthOnlyPass.hlsl index 548e095990c..517e7414e4e 100644 --- a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesDepthOnlyPass.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesDepthOnlyPass.hlsl @@ -30,7 +30,7 @@ VaryingsDepthOnlyParticle DepthOnlyVertex(AttributesDepthOnlyParticle input) return output; } -half4 DepthOnlyFragment(VaryingsDepthOnlyParticle input) : SV_TARGET +half DepthOnlyFragment(VaryingsDepthOnlyParticle input) : SV_TARGET { UNITY_SETUP_INSTANCE_ID(input); UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); @@ -57,7 +57,7 @@ half4 DepthOnlyFragment(VaryingsDepthOnlyParticle input) : SV_TARGET AlphaDiscard(albedo.a, _Cutoff); #endif - return 0; + return input.clipPos.z; } #endif // UNIVERSAL_PARTICLES_LIT_DEPTH_ONLY_PASS_INCLUDED diff --git a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesLit.shader b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesLit.shader index 59dd8a3af5e..f5480d1bb5c 100644 --- a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesLit.shader @@ -211,7 +211,7 @@ Shader "Universal Render Pipeline/Particles/Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader index 756c1c10d03..5b59ab8c30d 100644 --- a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader @@ -204,7 +204,7 @@ Shader "Universal Render Pipeline/Particles/Simple Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesUnlit.shader b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesUnlit.shader index c43b3e776bd..aeb87df6ed8 100644 --- a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesUnlit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesUnlit.shader @@ -115,7 +115,7 @@ Shader "Universal Render Pipeline/Particles/Unlit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader b/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader index 96f8516e45b..38f827ac723 100644 --- a/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader @@ -214,7 +214,7 @@ Shader "Universal Render Pipeline/Simple Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull[_Cull] HLSLPROGRAM @@ -417,7 +417,7 @@ Shader "Universal Render Pipeline/Simple Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader index 9c2d7d2f2b4..1bbfce5ef73 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader @@ -175,7 +175,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/Vertexlit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R HLSLPROGRAM #pragma target 2.0 diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader index e7149778059..13186d2dac3 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader @@ -182,7 +182,7 @@ Shader "Universal Render Pipeline/Terrain/Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R HLSLPROGRAM #pragma target 2.0 diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader index 4b8a96e510b..36a42ebc5df 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader @@ -152,7 +152,7 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Base Pass)" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R HLSLPROGRAM #pragma target 2.0 diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl index e581f71cfce..890fcf65cfe 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl @@ -507,7 +507,7 @@ half4 DepthOnlyFragment(VaryingsLean IN) : SV_TARGET // We use depth prepass for scene selection in the editor, this code allow to output the outline correctly return half4(_ObjectId, _PassValue, 1.0, 1.0); #endif - return 0; + return IN.clipPos.z; } #endif diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader index 4870e7f3206..00a26314eac 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader @@ -60,7 +60,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/WavingDoublePass" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull Off HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader index 3a447789a35..c29646ab149 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader @@ -55,7 +55,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/BillboardWavingDoublePass Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R Cull Off HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl index 8ecf5cfa9ae..196fcc08131 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl @@ -267,6 +267,6 @@ GrassVertexDepthOnlyOutput DepthOnlyVertex(GrassVertexDepthOnlyInput v) half4 DepthOnlyFragment(GrassVertexDepthOnlyOutput input) : SV_TARGET { Alpha(SampleAlbedoAlpha(input.uv, TEXTURE2D_ARGS(_MainTex, sampler_MainTex)).a, input.color, _Cutoff); - return 0; + return input.clipPos.z; } #endif diff --git a/com.unity.render-pipelines.universal/Shaders/Unlit.shader b/com.unity.render-pipelines.universal/Shaders/Unlit.shader index 6913ce7d09c..2be70754509 100644 --- a/com.unity.render-pipelines.universal/Shaders/Unlit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Unlit.shader @@ -69,7 +69,7 @@ Shader "Universal Render Pipeline/Unlit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R HLSLPROGRAM #pragma exclude_renderers gles gles3 glcore @@ -188,7 +188,7 @@ Shader "Universal Render Pipeline/Unlit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask 0 + ColorMask R HLSLPROGRAM #pragma only_renderers gles gles3 glcore d3d11 diff --git a/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepth.shader b/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepth.shader index 89b7fe022ab..acc712a7a31 100644 --- a/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepth.shader +++ b/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepth.shader @@ -7,7 +7,7 @@ Shader "Hidden/Universal Render Pipeline/CopyDepth" Pass { Name "CopyDepth" - ZTest Always ZWrite On ColorMask 0 + ZTest Always ZWrite Off ColorMask R Cull Off HLSLPROGRAM @@ -16,6 +16,7 @@ Shader "Hidden/Universal Render Pipeline/CopyDepth" #pragma multi_compile _ _DEPTH_MSAA_2 _DEPTH_MSAA_4 _DEPTH_MSAA_8 #pragma multi_compile _ _USE_DRAW_PROCEDURAL + #pragma multi_compile _ _OUTPUT_DEPTH #include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepthPass.hlsl" diff --git a/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepthPass.hlsl b/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepthPass.hlsl index e2686609b08..b1beca642cf 100644 --- a/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepthPass.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepthPass.hlsl @@ -106,7 +106,11 @@ float SampleDepth(float2 uv) #endif } +#if defined(_OUTPUT_DEPTH) float frag(Varyings input) : SV_Depth +#else +float frag(Varyings input) : SV_Target +#endif { UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); return SampleDepth(input.uv); diff --git a/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template b/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template index 7689e95a914..cfc888e4ef2 100644 --- a/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template +++ b/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template @@ -284,7 +284,7 @@ void frag(ps_input i outSelection = float4(_ObjectId, _PassValue, 1.0, 1.0); #elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL #ifndef WRITE_MSAA_DEPTH - dummy = (float4)0; + dummy = float4(i.VFX_VARYING_POSCS.z, 0,0,0); #endif #elif VFX_PASSDEPTH == VFX_PASSDEPTH_SHADOW dummy = (float4)0; From 7db6e532836d8bc76ff2ba8a4d5c1db0c26bc65a Mon Sep 17 00:00:00 2001 From: nigeljw-unity <72749964+nigeljw-unity@users.noreply.github.com> Date: Thu, 7 Oct 2021 09:04:26 +0200 Subject: [PATCH 09/14] Fixed typo in API name (#5854) * Fixed typo in API name * Added changelog * Added missing docs Co-authored-by: Felipe Lira --- com.unity.render-pipelines.universal/CHANGELOG.md | 1 + .../Runtime/Data/UniversalRenderPipelineAsset.cs | 9 ++++++++- .../Runtime/UniversalRenderer.cs | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index 11a35d6ca00..19c919115d7 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fixed an issue where Unlit and ParticlesUnlit shaders did not have HDR color selection for albedo [case 1283767](https://issuetracker.unity3d.com/issues/built-in-unlit-particle-shader-has-hdr-color-selection-for-albedo-urp-unlit-particles-do-not) - Fixed overwriting of preview camera background color. [case 1357004](https://issuetracker.unity3d.com/product/unity/issues/guid/1361557/) - Fixed ShadowCaster now requires varying normalWS to include changed normals from vertex shader in shader graph. +- Fixed typo in numIterationsEnclosingSphere api name ## [13.0.0] - 2021-09-01 ### Added diff --git a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs index f874bfad563..4f87708853c 100644 --- a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs +++ b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs @@ -918,13 +918,20 @@ public bool useAdaptivePerformance set { m_UseAdaptivePerformance = value; } } + /// + /// Set to true to enable a conservative method for calculating the size and position of the minimal enclosing sphere around the frustum cascade corner points for shadow culling. + /// public bool conservativeEnclosingSphere { get { return m_ConservativeEnclosingSphere; } set { m_ConservativeEnclosingSphere = value; } } - public int numItertionsEnclosingSphere + /// + /// Set the number of iterations to reduce the cascade culling enlcosing sphere to be closer to the absolute minimun enclosing sphere, but will also require more CPU computation for increasing values. + /// This parameter is used only when conservativeEnclosingSphere is set to true. Default value is 64. + /// + public int numIterationsEnclosingSphere { get { return m_NumIterationsEnclosingSphere; } set { m_NumIterationsEnclosingSphere = value; } diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index aa05ff6c743..a2e3d29e9f3 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -914,7 +914,7 @@ public override void SetupCullingParameters(ref ScriptableCullingParameters cull cullingParameters.conservativeEnclosingSphere = UniversalRenderPipeline.asset.conservativeEnclosingSphere; - cullingParameters.numIterationsEnclosingSphere = UniversalRenderPipeline.asset.numItertionsEnclosingSphere; + cullingParameters.numIterationsEnclosingSphere = UniversalRenderPipeline.asset.numIterationsEnclosingSphere; } /// From b4a7c94988bd49c773e224522bf56f2bece153fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Chodosevi=C4=8Dius?= Date: Thu, 7 Oct 2021 10:20:08 +0300 Subject: [PATCH 10/14] [URP] Decal fixes (#5384) * switching _CameraDepthTexture to R32Float and accommodating some stuff for that * some changes to the Foundation Project for Repro project (to be reverted later on) * Revert "some changes to the Foundation Project for Repro project (to be reverted later on)" This reverts commit 80af9be07365f5184cba56f019f3ee8e8769a60c. * disable fbfetch on DbufferDeferred decals * adding IsTransientAttachment to ScriptableRenderPass/NativeRenderPass code * Fixed decals to work with native render pass [case 1353141] * Adding changelog entry * Leftover * making depthOnly pass compatible to render color texture and changing shaders to accommodate that * Fixing decal+native renderpass+decal+deferred scenario * fix after updating trunk * merge fix - change descriptor for DepthOnly configureTarget to the correct one * enabling depthbuffer for depth copy and adding additional override for ConfigureTarget * formatting fixes * terrain shader passes depthonly pass fix to output clippos * adding depth copy for renderpass as well and changing how fake depth is handled * some cleanup and refactoring and enabling Renderpass for SS forward decals * Fixing decals rendering to be correct with render scale. [1353885] * Cleanup * Cleanup * Cleanup * Changing to correct normal sampling for decal shadergraph Co-authored-by: Jonas Sideravicius Co-authored-by: Felipe Lira --- .../CHANGELOG.md | 2 ++ .../Decal/DBuffer/DBufferRenderPass.cs | 25 +++++++++++-------- .../RendererFeatures/DecalRendererFeature.cs | 14 +++++------ .../Runtime/ScriptableRenderer.cs | 2 +- .../Shaders/Decal.shadergraph | 9 ++++--- 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index 19c919115d7..076b0e4c039 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -22,6 +22,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fixed an issue where Unlit and ParticlesUnlit shaders did not have HDR color selection for albedo [case 1283767](https://issuetracker.unity3d.com/issues/built-in-unlit-particle-shader-has-hdr-color-selection-for-albedo-urp-unlit-particles-do-not) - Fixed overwriting of preview camera background color. [case 1357004](https://issuetracker.unity3d.com/product/unity/issues/guid/1361557/) - Fixed ShadowCaster now requires varying normalWS to include changed normals from vertex shader in shader graph. +- Fixed decals to work with native render pass [case 1353141](https://issuetracker.unity3d.com/issues/urp-decals-are-not-visible-in-game-view-after-modifying-urp-asset-properties) +- Fixed decals to work with render scale [1353885](https://issuetracker.unity3d.com/issues/urp-builtin-to-urp-render-pipeline-converter-freezes-the-editor-when-converting-rendering-settings) - Fixed typo in numIterationsEnclosingSphere api name ## [13.0.0] - 2021-09-01 diff --git a/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs b/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs index 1f7e3d0e02f..cbb86b1a5be 100644 --- a/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs @@ -24,12 +24,17 @@ internal class DBufferRenderPass : ScriptableRenderPass private int m_DBufferCount; private ProfilingSampler m_ProfilingSampler; + private RenderTargetHandle m_DBufferDepth; + private RenderTargetHandle m_CameraDepthTexture; + private RenderTargetHandle m_CameraDepthAttachment; + internal DeferredLights deferredLights { get; set; } private bool isDeferred => deferredLights != null; internal RenderTargetIdentifier[] dBufferColorIndentifiers { get; private set; } - internal RenderTargetIdentifier dBufferDepthIndentifier { get; private set; } - internal RenderTargetIdentifier cameraDepthTextureIndentifier { get; private set; } - internal RenderTargetIdentifier cameraDepthAttachmentIndentifier { get; private set; } + + internal RenderTargetHandle dBufferDepth => m_DBufferDepth; + internal RenderTargetHandle cameraDepthTexture => m_CameraDepthTexture; + internal RenderTargetHandle cameraDepthAttachment => m_CameraDepthAttachment; public DBufferRenderPass(Material dBufferClear, DBufferSettings settings, DecalDrawDBufferSystem drawSystem) { @@ -51,9 +56,9 @@ public DBufferRenderPass(Material dBufferClear, DBufferSettings settings, DecalD dBufferColorIndentifiers[dbufferIndex] = new RenderTargetIdentifier(s_DBufferNames[dbufferIndex]); m_DBufferCount = dBufferCount; - dBufferDepthIndentifier = new RenderTargetIdentifier(s_DBufferDepthName); - cameraDepthTextureIndentifier = new RenderTargetIdentifier("_CameraDepthTexture"); - cameraDepthAttachmentIndentifier = new RenderTargetIdentifier("_CameraDepthAttachment"); + m_DBufferDepth.Init(s_DBufferDepthName); + m_CameraDepthTexture.Init("_CameraDepthTexture"); + m_CameraDepthAttachment.Init("_CameraDepthAttachment"); } public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) @@ -97,12 +102,12 @@ public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderin depthDesc.depthStencilFormat = renderingData.cameraData.cameraTargetDescriptor.depthStencilFormat; depthDesc.msaaSamples = 1; - cmd.GetTemporaryRT(Shader.PropertyToID(s_DBufferDepthName), depthDesc); - depthIdentifier = dBufferDepthIndentifier; + cmd.GetTemporaryRT(m_DBufferDepth.id, depthDesc); + depthIdentifier = m_DBufferDepth.Identifier(); } else { - depthIdentifier = deferredLights.DepthAttachmentIdentifier; + depthIdentifier = m_CameraDepthAttachment.Identifier(); } ConfigureTarget(dBufferColorIndentifiers, depthIdentifier); @@ -184,7 +189,7 @@ public override void OnCameraCleanup(CommandBuffer cmd) } if (!isDeferred) - cmd.ReleaseTemporaryRT(Shader.PropertyToID(s_DBufferDepthName)); + cmd.ReleaseTemporaryRT(m_DBufferDepth.id); } } } diff --git a/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs b/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs index fb68deb2ade..66d3e2c0df8 100644 --- a/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs +++ b/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs @@ -340,7 +340,6 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData m_ScreenSpaceSettings = GetScreenSpaceSettings(); m_CopyDepthMaterial = CoreUtils.CreateEngineMaterial(m_CopyDepthPS); - m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingPrePasses, m_CopyDepthMaterial); m_DBufferClearMaterial = CoreUtils.CreateEngineMaterial(m_DBufferClear); @@ -370,7 +369,6 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData switch (m_Technique) { case DecalTechnique.ScreenSpace: - m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingOpaques, m_DBufferClearMaterial); m_DecalDrawScreenSpaceSystem = new DecalDrawScreenSpaceSystem(m_DecalEntityManager); m_ScreenSpaceDecalRenderPass = new DecalScreenSpaceRenderPass(m_ScreenSpaceSettings, intermediateRendering ? m_DecalDrawScreenSpaceSystem : null); break; @@ -379,12 +377,12 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData m_DeferredLights = universalRenderer.deferredLights; - m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingOpaques, m_DBufferClearMaterial); m_DrawGBufferSystem = new DecalDrawGBufferSystem(m_DecalEntityManager); m_GBufferRenderPass = new DecalGBufferRenderPass(m_ScreenSpaceSettings, intermediateRendering ? m_DrawGBufferSystem : null); break; case DecalTechnique.DBuffer: + m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingPrePasses, m_CopyDepthMaterial); m_DecalDrawDBufferSystem = new DecalDrawDBufferSystem(m_DecalEntityManager); m_DBufferRenderPass = new DBufferRenderPass(m_DBufferClearMaterial, m_DBufferSettings, m_DecalDrawDBufferSystem); @@ -466,15 +464,17 @@ public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingD if (universalRenderer.actualRenderingMode == RenderingMode.Deferred) { m_CopyDepthPass.Setup( - new RenderTargetHandle(m_DBufferRenderPass.cameraDepthAttachmentIndentifier), - new RenderTargetHandle(m_DBufferRenderPass.cameraDepthTextureIndentifier) + m_DBufferRenderPass.cameraDepthAttachment, + m_DBufferRenderPass.cameraDepthTexture ); + + m_CopyDepthPass.AllocateRT = false; } else { m_CopyDepthPass.Setup( - new RenderTargetHandle(m_DBufferRenderPass.cameraDepthTextureIndentifier), - new RenderTargetHandle(m_DBufferRenderPass.dBufferDepthIndentifier) + m_DBufferRenderPass.cameraDepthTexture, + m_DBufferRenderPass.dBufferDepth ); } m_CopyDepthPass.MssaSamples = 1; diff --git a/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs b/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs index a69f7b6d9d2..7274dc66319 100644 --- a/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs @@ -218,7 +218,7 @@ void SetPerCameraShaderVariables(CommandBuffer cmd, ref CameraData cameraData) cmd.SetGlobalVector(ShaderPropertyId.zBufferParams, zBufferParams); cmd.SetGlobalVector(ShaderPropertyId.orthoParams, orthoParams); - cmd.SetGlobalVector(ShaderPropertyId.screenSize, new Vector4(cameraWidth, cameraHeight, 1.0f / cameraWidth, 1.0f / cameraHeight)); + cmd.SetGlobalVector(ShaderPropertyId.screenSize, new Vector4(scaledCameraWidth, scaledCameraHeight, 1.0f / scaledCameraWidth, 1.0f / scaledCameraHeight)); } /// diff --git a/com.unity.render-pipelines.universal/Shaders/Decal.shadergraph b/com.unity.render-pipelines.universal/Shaders/Decal.shadergraph index dc29db12650..33276e79bca 100644 --- a/com.unity.render-pipelines.universal/Shaders/Decal.shadergraph +++ b/com.unity.render-pipelines.universal/Shaders/Decal.shadergraph @@ -192,7 +192,8 @@ "serializedMesh": { "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", "m_Guid": "" - } + }, + "preventRotation": false }, "m_Path": "Shader Graphs", "m_GraphPrecision": 1, @@ -329,9 +330,9 @@ "m_CustomColors": { "m_SerializableColors": [] }, - "m_TextureType": 0, + "m_TextureType": 1, "m_NormalMapSpace": 0, - "m_DisableGlobalMipBias": false + "m_EnableGlobalMipBias": true } { @@ -889,7 +890,7 @@ }, "m_TextureType": 0, "m_NormalMapSpace": 0, - "m_DisableGlobalMipBias": false + "m_EnableGlobalMipBias": true } { From 9372e085592241321397bab483b21c703b421f90 Mon Sep 17 00:00:00 2001 From: Chris Tchou Date: Thu, 7 Oct 2021 03:09:18 -0700 Subject: [PATCH 11/14] [ShaderGraph] [2022.1] [Ruby] Fix regression in screen position when using XR (#5867) * Unblock XR test by use old code * Adding changelog * Update dependencies to provide screen position to NDCposition * Fix for GLES flipping * Removing changes to other pipelines (for now -- will follow up with more in-depth PR) Co-authored-by: Felipe Lira --- com.unity.render-pipelines.universal/CHANGELOG.md | 1 + .../ShaderGraph/Templates/SharedCode.template.hlsl | 9 +++++++++ .../Generation/TargetResources/FieldDependencies.cs | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index 076b0e4c039..a747aea4b28 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Fixed - Fixed the LensFlare flicker with TAA on SceneView (case 1356734). - Fixed an issue where Unlit and ParticlesUnlit shaders did not have HDR color selection for albedo [case 1283767](https://issuetracker.unity3d.com/issues/built-in-unlit-particle-shader-has-hdr-color-selection-for-albedo-urp-unlit-particles-do-not) +- Fixed a regression where ShaderGraph screen position was not correct in game view and when using XR [1369450] - Fixed overwriting of preview camera background color. [case 1357004](https://issuetracker.unity3d.com/product/unity/issues/guid/1361557/) - Fixed ShadowCaster now requires varying normalWS to include changed normals from vertex shader in shader graph. - Fixed decals to work with native render pass [case 1353141](https://issuetracker.unity3d.com/issues/urp-decals-are-not-visible-in-game-view-after-modifying-urp-asset-properties) diff --git a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Templates/SharedCode.template.hlsl b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Templates/SharedCode.template.hlsl index ccada955348..261b502f37b 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Templates/SharedCode.template.hlsl +++ b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Templates/SharedCode.template.hlsl @@ -55,7 +55,16 @@ SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input) $SurfaceDescriptionInputs.AbsoluteWorldSpacePositionPredisplacement:output.AbsoluteWorldSpacePositionPredisplacement = GetAbsolutePositionWS(input.positionWS); $SurfaceDescriptionInputs.ScreenPosition: output.ScreenPosition = ComputeScreenPos(TransformWorldToHClip(input.positionWS), _ProjectionParams.x); $SurfaceDescriptionInputs.PixelPosition: output.PixelPosition = input.positionCS.xy; + $SurfaceDescriptionInputs.NDCPosition: #if defined(USING_STEREO_MATRICES) + $SurfaceDescriptionInputs.NDCPosition: output.NDCPosition = output.ScreenPosition.xy / output.ScreenPosition.w; + $SurfaceDescriptionInputs.NDCPosition: #else $SurfaceDescriptionInputs.NDCPosition: output.NDCPosition = output.PixelPosition.xy / _ScreenParams.xy; + $SurfaceDescriptionInputs.NDCPosition: #if UNITY_UV_STARTS_AT_TOP + $SurfaceDescriptionInputs.NDCPosition: output.NDCPosition.y = (0.5f - output.NDCPosition.y) * _ProjectionParams.x + 0.5f; + $SurfaceDescriptionInputs.NDCPosition: #else + $SurfaceDescriptionInputs.NDCPosition: output.NDCPosition.y = (output.NDCPosition.y - 0.5f) * _ProjectionParams.x + 0.5f; + $SurfaceDescriptionInputs.NDCPosition: #endif + $SurfaceDescriptionInputs.NDCPosition: #endif $SurfaceDescriptionInputs.uv0: output.uv0 = input.texCoord0; $SurfaceDescriptionInputs.uv1: output.uv1 = input.texCoord1; $SurfaceDescriptionInputs.uv2: output.uv2 = input.texCoord2; diff --git a/com.unity.shadergraph/Editor/Generation/TargetResources/FieldDependencies.cs b/com.unity.shadergraph/Editor/Generation/TargetResources/FieldDependencies.cs index 6d7e76e86ad..1e5ca9ddeaa 100644 --- a/com.unity.shadergraph/Editor/Generation/TargetResources/FieldDependencies.cs +++ b/com.unity.shadergraph/Editor/Generation/TargetResources/FieldDependencies.cs @@ -101,8 +101,8 @@ internal static class FieldDependencies new FieldDependency(StructFields.SurfaceDescriptionInputs.TangentSpaceViewDirection, StructFields.SurfaceDescriptionInputs.WorldSpaceNormal), new FieldDependency(StructFields.SurfaceDescriptionInputs.ScreenPosition, StructFields.SurfaceDescriptionInputs.WorldSpacePosition), - // new FieldDependency(StructFields.SurfaceDescriptionInputs.PixelPosition, StructFields.Varyings.vpos), - new FieldDependency(StructFields.SurfaceDescriptionInputs.NDCPosition, StructFields.SurfaceDescriptionInputs.PixelPosition), + new FieldDependency(StructFields.SurfaceDescriptionInputs.NDCPosition, StructFields.SurfaceDescriptionInputs.PixelPosition), // for non-XR + new FieldDependency(StructFields.SurfaceDescriptionInputs.NDCPosition, StructFields.SurfaceDescriptionInputs.ScreenPosition), // for XR new FieldDependency(StructFields.SurfaceDescriptionInputs.uv0, StructFields.Varyings.texCoord0), new FieldDependency(StructFields.SurfaceDescriptionInputs.uv1, StructFields.Varyings.texCoord1), From 73be08451a2d901ae042d1148c2ce16870f37c73 Mon Sep 17 00:00:00 2001 From: Felipe Lira Date: Thu, 7 Oct 2021 20:58:35 +0200 Subject: [PATCH 12/14] Revert "Urp/depth priming tests (#4769)" This reverts commit 4d834d0e96f19939bb3a446f62d44786f955cf6d. --- .../Android/OpenGLES3/None/ChannelNodes.png | 0 .../Android/OpenGLES3/None/FlipbookNode.png | 0 .../Android/OpenGLES3/None/InputNodes.png | 0 .../OpenGLES3/None/InstancedRendering.png | 0 .../Android/OpenGLES3/None/LogicNodes.png | 0 .../Android/OpenGLES3/None/MathNodes.png | 0 .../OpenGLES3/None/NormalMapStressTests.png | 0 .../OpenGLES3/None/ProceduralNodes.png | 0 .../Android/OpenGLES3/None/TransformNode.png | 0 .../Linear/Android/OpenGLES3/None/UVNodes.png | 0 .../Android/OpenGLES3/None/UtilityNodes.png | 0 .../Android/Vulkan/None/ArtisticNodes.png | 0 .../CommonAssets/UniversalRPAsset.asset | 5 - .../ProjectSettings/EditorBuildSettings.asset | 3 - .../CommonAssets/UniversalRPAsset.asset | 12 +- .../OpenGLES3/None/240_DepthPriming.png | 3 - .../OpenGLES3/None/240_DepthPriming.png.meta | 134 -- .../Android/Vulkan/None/240_DepthPriming.png | 3 - .../Vulkan/None/240_DepthPriming.png.meta | 134 -- .../Metal/None/240_DepthPriming.png | 3 - .../Metal/None/240_DepthPriming.png.meta | 134 -- .../OpenGLCore/None/240_DepthPriming.png | 3 - .../OpenGLCore/None/240_DepthPriming.png.meta | 134 -- .../Vulkan/None/240_DepthPriming.png | 3 - .../Vulkan/None/240_DepthPriming.png.meta | 134 -- .../Vulkan/None/240_DepthPriming.png | 3 - .../Vulkan/None/240_DepthPriming.png.meta | 134 -- .../OSXEditor/Metal/None/240_DepthPriming.png | 3 - .../Metal/None/240_DepthPriming.png.meta | 134 -- .../OpenGLCore/None/240_DepthPriming.png | 3 - .../OpenGLCore/None/240_DepthPriming.png.meta | 134 -- .../OSXPlayer/Metal/None/240_DepthPriming.png | 3 - .../Metal/None/240_DepthPriming.png.meta | 134 -- .../OpenGLCore/None/240_DepthPriming.png | 3 - .../OpenGLCore/None/240_DepthPriming.png.meta | 134 -- .../Direct3D11/None/240_DepthPriming.png | 3 - .../Direct3D11/None/240_DepthPriming.png.meta | 134 -- .../Direct3D12/None/240_DepthPriming.png | 3 - .../Direct3D12/None/240_DepthPriming.png.meta | 134 -- .../Vulkan/None/240_DepthPriming.png | 3 - .../Vulkan/None/240_DepthPriming.png.meta | 134 -- .../Direct3D11/None/240_DepthPriming.png | 3 - .../Direct3D11/None/240_DepthPriming.png.meta | 134 -- .../Direct3D12/None/240_DepthPriming.png | 3 - .../Direct3D12/None/240_DepthPriming.png.meta | 134 -- .../Vulkan/None/240_DepthPriming.png | 3 - .../Vulkan/None/240_DepthPriming.png.meta | 134 -- .../146_MSAA_RenderToBackbuffer/BlueUnlit.mat | 3 +- .../Assets/Scenes/240_DepthPriming.meta | 8 - .../Assets/Scenes/240_DepthPriming.unity | 1679 ----------------- .../Assets/Scenes/240_DepthPriming.unity.meta | 7 - .../240_DepthPriming/LightingData.asset | Bin 18192 -> 0 bytes .../240_DepthPriming/LightingData.asset.meta | 8 - .../240_DepthPriming/Priming_Auto_SSAO.asset | 80 - .../Priming_Auto_SSAO.asset.meta | 8 - .../240_DepthPriming/Priming_Force.asset | 56 - .../240_DepthPriming/Priming_Force.asset.meta | 8 - .../Priming_Forced_Minimap.asset | 56 - .../Priming_Forced_Minimap.asset.meta | 8 - .../240_DepthPriming/ReflectionProbe-0.exr | Bin 163864 -> 0 bytes .../ReflectionProbe-0.exr.meta | 98 - .../Scenes/240_DepthPriming/Transparent.mat | 127 -- .../240_DepthPriming/Transparent.mat.meta | 8 - .../ProjectSettings/EditorBuildSettings.asset | 3 - .../Runtime/UniversalRenderer.cs | 2 +- 65 files changed, 5 insertions(+), 4366 deletions(-) mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ChannelNodes.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/FlipbookNode.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InputNodes.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InstancedRendering.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/LogicNodes.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/MathNodes.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/NormalMapStressTests.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ProceduralNodes.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/TransformNode.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UVNodes.png mode change 100644 => 100755 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UtilityNodes.png mode change 100755 => 100644 TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/Vulkan/None/ArtisticNodes.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/LightingData.asset delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/LightingData.asset.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Auto_SSAO.asset delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Auto_SSAO.asset.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Force.asset delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Force.asset.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Forced_Minimap.asset delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Priming_Forced_Minimap.asset.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/ReflectionProbe-0.exr delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/ReflectionProbe-0.exr.meta delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat delete mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat.meta diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ChannelNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ChannelNodes.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/FlipbookNode.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/FlipbookNode.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InputNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InputNodes.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InstancedRendering.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/InstancedRendering.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/LogicNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/LogicNodes.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/MathNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/MathNodes.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/NormalMapStressTests.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/NormalMapStressTests.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ProceduralNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/ProceduralNodes.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/TransformNode.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/TransformNode.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UVNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UVNodes.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UtilityNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/UtilityNodes.png old mode 100644 new mode 100755 diff --git a/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/Vulkan/None/ArtisticNodes.png b/TestProjects/ShaderGraph/Assets/ReferenceImages/Linear/Android/Vulkan/None/ArtisticNodes.png old mode 100755 new mode 100644 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAsset.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAsset.asset index 2c4270e174b..83633f30426 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAsset.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAsset.asset @@ -39,9 +39,6 @@ MonoBehaviour: - {fileID: 11400000, guid: 2db0ce930f34f41c3b2aad53e6336a24, type: 2} - {fileID: 11400000, guid: da4df2f1951704ee7aa560ed78d91c24, type: 2} - {fileID: 11400000, guid: efad480a4aa014a0fa578c4c317c3690, type: 2} - - {fileID: 11400000, guid: 04b9d8d9c8f143f4cabffec31ca85135, type: 2} - - {fileID: 11400000, guid: f6caeba8e73a4774fa061ede8461fc20, type: 2} - - {fileID: 11400000, guid: adf2b0846ed2f73488bf6509f16baaad, type: 2} m_DefaultRendererIndex: 0 m_RequireDepthTexture: 1 m_RequireOpaqueTexture: 1 @@ -72,8 +69,6 @@ MonoBehaviour: m_ShadowDepthBias: 1 m_ShadowNormalBias: 1 m_SoftShadowsSupported: 1 - m_ConservativeEnclosingSphere: 0 - m_NumIterationsEnclosingSphere: 64 m_AdditionalLightsCookieResolution: 2048 m_AdditionalLightsCookieFormat: 3 m_UseSRPBatcher: 1 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset b/TestProjects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset index efdf8e6f162..6dddc2294da 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset @@ -266,7 +266,4 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/206_Motion_Vectors.unity guid: aa08e99a89c77574e9a00b9888fc75ce - - enabled: 1 - path: Assets/Scenes/240_DepthPriming.unity - guid: ba9690ce0c2060144b1fc63bfd2893b8 m_configObjects: {} diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/UniversalRPAsset.asset b/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/UniversalRPAsset.asset index 9bd063630fe..cc93b1d9ceb 100644 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/UniversalRPAsset.asset +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/UniversalRPAsset.asset @@ -22,16 +22,15 @@ MonoBehaviour: - {fileID: 11400000, guid: e46834cadfc4eb241bd46a362765a390, type: 2} - {fileID: 11400000, guid: 00d10fe6866821340b490e3b5b5c19f6, type: 2} - {fileID: 11400000, guid: 25dd23104304c1c44af89227207beefb, type: 2} - - {fileID: 11400000, guid: 04b9d8d9c8f143f4cabffec31ca85135, type: 2} - - {fileID: 11400000, guid: f6caeba8e73a4774fa061ede8461fc20, type: 2} - - {fileID: 11400000, guid: adf2b0846ed2f73488bf6509f16baaad, type: 2} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} - {fileID: 11400000, guid: b523d3860846cdc4ea49a3ed7350a089, type: 2} m_DefaultRendererIndex: 0 m_RequireDepthTexture: 1 m_RequireOpaqueTexture: 1 m_OpaqueDownsampling: 1 m_SupportsTerrainHoles: 1 - m_StoreActionsOptimization: 0 m_SupportsHDR: 1 m_MSAA: 4 m_RenderScale: 1 @@ -56,14 +55,9 @@ MonoBehaviour: m_ShadowDepthBias: 1 m_ShadowNormalBias: 1 m_SoftShadowsSupported: 1 - m_ConservativeEnclosingSphere: 0 - m_NumIterationsEnclosingSphere: 64 - m_AdditionalLightsCookieResolution: 2048 - m_AdditionalLightsCookieFormat: 3 m_UseSRPBatcher: 1 m_SupportsDynamicBatching: 0 m_MixedLightingSupported: 0 - m_SupportsLightLayers: 0 m_DebugLevel: 0 m_UseAdaptivePerformance: 1 m_ColorGradingMode: 0 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png deleted file mode 100644 index 9ab0b25f1e3..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:79c264c51f2fd261d7114735767f92a17b5fef97cfbe2ca93255f8ae9a349004 -size 258375 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png.meta deleted file mode 100644 index c1efd9bdb4c..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/OpenGLES3/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: d3011e83a8a7b8d4f816671e4b58909e -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png deleted file mode 100644 index c461f759237..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:298aa89906f3c92ffb39eac6bede87d4fd510897342a30f237ef151da3bcb03a -size 259241 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png.meta deleted file mode 100644 index 46e243d9916..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/Android/Vulkan/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: 6262ad0d47f72e34fb4720e957a01f6e -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png deleted file mode 100644 index 39ae44d0669..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc8e3558819370a96fbce80537ccbed233442c2b4b9b7fc54d8c1a47b1b47531 -size 255979 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png.meta deleted file mode 100644 index 129f89c2615..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/IPhonePlayer/Metal/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: 686fc3f92798e704bb95bdc5757df2bb -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png.meta deleted file mode 100644 index ec09e61b055..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/OpenGLCore/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: 50ed1f4ad4c97604e94b81038c701ce4 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png.meta deleted file mode 100644 index 67aef0c3e11..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: 705e1e5afdfedc6418b166198d6750e8 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png.meta deleted file mode 100644 index bcbcd756fcd..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/LinuxPlayer/Vulkan/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: f4dc90b7302682c48b3e5a6dddf63a38 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png.meta deleted file mode 100644 index 971e8e78f22..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: cec0774e3a7162749af9c91543e9e153 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png.meta deleted file mode 100644 index 6a56d1eb9d0..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXEditor/OpenGLCore/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: c25aa8c0a68e38147827683267bebafc -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png.meta deleted file mode 100644 index 4d58e05a1a2..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/Metal/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: a1d995a4d8266a74a8116bad804ec94a -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png.meta deleted file mode 100644 index eea88e544ec..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/OSXPlayer/OpenGLCore/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: d81f60265fbeb634fb77bb1ba80faa0f -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png.meta deleted file mode 100644 index 5693b6f98f5..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: 78ea232c64975c04a85301f8777e24ca -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png.meta deleted file mode 100644 index 644441d87aa..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: 86274542a1be642448f9631d44b41613 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png.meta deleted file mode 100644 index a833718492a..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: 50463baaba2df4148b98cd26715d9f80 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png.meta deleted file mode 100644 index d1e9a497263..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: 7769c23a0ed78b74c9c66504ee7fbb5f -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png.meta deleted file mode 100644 index 73b25c13f8b..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D12/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: 76863dd773995bb40ad66d72e99c47b2 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png deleted file mode 100644 index 78edead8b57..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a3bff3f6970ca1f7811827e58d09cf1dcfac4d0a8c91357b01abb714085805f -size 310721 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png.meta deleted file mode 100644 index ca8ac27a565..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None/240_DepthPriming.png.meta +++ /dev/null @@ -1,134 +0,0 @@ -fileFormatVersion: 2 -guid: bac6a47cc5e8384488bf9f497cecac53 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 0 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 0 - seamlessCubemap: 0 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 1 - aniso: 1 - mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 1 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Standalone - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: CloudRendering - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 50 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/146_MSAA_RenderToBackbuffer/BlueUnlit.mat b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/146_MSAA_RenderToBackbuffer/BlueUnlit.mat index 934c1f65c1f..846b00080b9 100644 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/146_MSAA_RenderToBackbuffer/BlueUnlit.mat +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/146_MSAA_RenderToBackbuffer/BlueUnlit.mat @@ -80,7 +80,6 @@ Material: m_Floats: - _AlphaClip: 0 - _Blend: 0 - - _BlendOp: 0 - _BumpScale: 1 - _ClearCoatMask: 0 - _ClearCoatSmoothness: 0 @@ -108,7 +107,7 @@ Material: - _ZWrite: 1 m_Colors: - _BaseColor: {r: 0, g: 0, b: 1, a: 1} - - _Color: {r: 0, g: 0, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} m_BuildTextureStacks: [] diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.meta deleted file mode 100644 index 1918d2090e8..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 21a3199cd338d8342abb183141fb4380 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity deleted file mode 100644 index a4afd8b5de5..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity +++ /dev/null @@ -1,1679 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 9 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 0 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 500 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 500 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 2 - m_PVRDenoiserTypeDirect: 0 - m_PVRDenoiserTypeIndirect: 0 - m_PVRDenoiserTypeAO: 0 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 0 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: adb9e5ee6cd961f49ae1cae3e58e5bd6, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: cc9d1da32a07246e69be907ec4061230, - type: 2} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 2 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - accuratePlacement: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &23298849 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 23298853} - - component: {fileID: 23298852} - - component: {fileID: 23298851} - - component: {fileID: 23298850} - m_Layer: 5 - m_Name: Transparent Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &23298850 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23298849} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 4294967295 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 56193a9fa5c52444d9d649960af3ba23, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!65 &23298851 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23298849} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &23298852 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23298849} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &23298853 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 23298849} - m_LocalRotation: {x: 0.3857752, y: 0.39641288, z: 0.15129037, w: 0.8192348} - m_LocalPosition: {x: -1, y: 2.122, z: 0.08999993} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 11 - m_LocalEulerAnglesHint: {x: 30.806, y: 63.14, z: 40.143} ---- !u!1 &72253176 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 72253180} - - component: {fileID: 72253179} - - component: {fileID: 72253178} - - component: {fileID: 72253177} - m_Layer: 0 - m_Name: Plane - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!64 &72253177 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 72253176} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &72253178 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 72253176} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &72253179 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 72253176} - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &72253180 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 72253176} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &301999062 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 301999063} - - component: {fileID: 301999065} - - component: {fileID: 301999064} - m_Layer: 5 - m_Name: Deth Priming Auto SSAO CameraStack - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &301999063 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 301999062} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 798865924} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 5, y: 0} - m_SizeDelta: {x: 300, y: 90} - m_Pivot: {x: 0, y: 0} ---- !u!114 &301999064 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 301999062} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 20 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 0 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'Depth Priming: Auto - - SSAO - - Camera Stack: 1 Overlay Camera' ---- !u!222 &301999065 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 301999062} - m_CullTransparentMesh: 1 ---- !u!1 &337091010 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 337091014} - - component: {fileID: 337091013} - - component: {fileID: 337091012} - - component: {fileID: 337091011} - m_Layer: 5 - m_Name: Cube (3) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &337091011 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337091010} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 4294967295 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: f531e184f1aa0470199fa64291710568, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!65 &337091012 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337091010} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &337091013 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337091010} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &337091014 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 337091010} - m_LocalRotation: {x: 0.3857752, y: 0.39641288, z: 0.15129037, w: 0.8192348} - m_LocalPosition: {x: -1.7355657, y: 1.3858389, z: 0.09199725} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 30.806, y: 63.14, z: 40.143} ---- !u!1 &342685562 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 342685567} - - component: {fileID: 342685566} - - component: {fileID: 342685565} - - component: {fileID: 342685563} - m_Layer: 0 - m_Name: Overlay_Priming_Forced | placement on screen changes w/ XR - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &342685563 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 342685562} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 1 - m_Cameras: [] - m_RendererIndex: 7 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 0 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 ---- !u!124 &342685565 -Behaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 342685562} - m_Enabled: 1 ---- !u!20 &342685566 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 342685562} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 1} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0.5 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 1 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 8224 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 0 - m_AllowMSAA: 0 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &342685567 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 342685562} - m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} - m_LocalPosition: {x: 1.89, y: 7.25, z: 2.735} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} ---- !u!1 &380492249 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 380492254} - - component: {fileID: 380492253} - - component: {fileID: 380492251} - - component: {fileID: 380492250} - - component: {fileID: 380492252} - - component: {fileID: 380492255} - m_Layer: 0 - m_Name: Main Camera_Priming_Auto_SSAO - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &380492250 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 380492249} - m_Enabled: 1 ---- !u!124 &380492251 -Behaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 380492249} - m_Enabled: 1 ---- !u!114 &380492252 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 380492249} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} - m_Name: - m_EditorClassIdentifier: - ImageComparisonSettings: - TargetWidth: 512 - TargetHeight: 512 - PerPixelCorrectnessThreshold: 0.005 - PerPixelGammaThreshold: 0.003921569 - PerPixelAlphaThreshold: 0.003921569 - AverageCorrectnessThreshold: 0.001 - IncorrectPixelsThreshold: 0.0000038146973 - UseHDR: 0 - UseBackBuffer: 0 - ImageResolution: 0 - ActiveImageTests: 1 - ActivePixelTests: 7 - WaitFrames: 0 - XRCompatible: 0 - CheckMemoryAllocation: 1 ---- !u!20 &380492253 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 380492249} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 1} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0.5 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 0 - m_AllowMSAA: 0 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &380492254 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 380492249} - m_LocalRotation: {x: 0.24609356, y: 0.36251447, z: -0.099864565, w: 0.89333546} - m_LocalPosition: {x: -2.7441292, y: 2.2863412, z: -2.326582} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &380492255 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 380492249} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: - - {fileID: 342685566} - m_RendererIndex: 5 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 0 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 ---- !u!1 &507006376 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 507006380} - - component: {fileID: 507006379} - - component: {fileID: 507006378} - - component: {fileID: 507006377} - m_Layer: 5 - m_Name: Cube (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &507006377 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 507006376} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 4294967295 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: fba5a10b02ff7f646b786ce5f56d3659, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!65 &507006378 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 507006376} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &507006379 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 507006376} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &507006380 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 507006376} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.28, y: 0.202, z: -1.02} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &707831285 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 707831287} - - component: {fileID: 707831286} - - component: {fileID: 707831288} - m_Layer: 0 - m_Name: Directional Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &707831286 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 707831285} - m_Enabled: 1 - serializedVersion: 10 - m_Type: 1 - m_Shape: 0 - m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ShadowRadius: 0 - m_ShadowAngle: 0 ---- !u!4 &707831287 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 707831285} - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!114 &707831288 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 707831285} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Version: 1 - m_UsePipelineSettings: 1 - m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_LightCookieSize: {x: 1, y: 1} - m_LightCookieOffset: {x: 0, y: 0} ---- !u!1 &798865920 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 798865924} - - component: {fileID: 798865923} - - component: {fileID: 798865922} - - component: {fileID: 798865921} - m_Layer: 5 - m_Name: Canvas | Disabled due to inconsistent behavior - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!114 &798865921 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 798865920} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &798865922 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 798865920} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!223 &798865923 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 798865920} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_UpdateRectTransformForStandalone: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &798865924 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 798865920} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 301999063} - - {fileID: 1254977676} - m_Father: {fileID: 0} - m_RootOrder: 12 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!1 &837201115 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 837201121} - - component: {fileID: 837201120} - - component: {fileID: 837201119} - - component: {fileID: 837201116} - m_Layer: 0 - m_Name: Main Camera_Priming_Forced - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &837201116 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 837201115} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: 6 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 0 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_Version: 2 ---- !u!124 &837201119 -Behaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 837201115} - m_Enabled: 1 ---- !u!20 &837201120 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 837201115} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 1} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0.5 - y: 0 - width: 0.5 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 0 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 0 - m_AllowMSAA: 0 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &837201121 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 837201115} - m_LocalRotation: {x: 0.24609356, y: 0.36251447, z: -0.099864565, w: 0.89333546} - m_LocalPosition: {x: -2.7441292, y: 2.2863412, z: -2.326582} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &879744567 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 879744571} - - component: {fileID: 879744570} - - component: {fileID: 879744569} - - component: {fileID: 879744568} - m_Layer: 5 - m_Name: Cube (4) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &879744568 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 879744567} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 4294967295 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: b906647cbe2ee4b1082bb7bcb3234c37, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!65 &879744569 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 879744567} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &879744570 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 879744567} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &879744571 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 879744567} - m_LocalRotation: {x: 0.3857752, y: 0.39641288, z: 0.15129037, w: 0.8192348} - m_LocalPosition: {x: -0.9820001, y: 0.7650001, z: -0.36199892} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 30.806, y: 63.14, z: 40.143} ---- !u!1 &1194651329 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1194651333} - - component: {fileID: 1194651332} - - component: {fileID: 1194651331} - - component: {fileID: 1194651330} - m_Layer: 5 - m_Name: Cube (5) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &1194651330 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1194651329} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 4294967295 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a686171e40d367e4b897482b49fa9eb8, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!65 &1194651331 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1194651329} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1194651332 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1194651329} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1194651333 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1194651329} - m_LocalRotation: {x: 0.3857752, y: 0.39641288, z: 0.15129037, w: 0.8192348} - m_LocalPosition: {x: -0.846, y: 1.644, z: 0.205} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 10 - m_LocalEulerAnglesHint: {x: 30.806, y: 63.14, z: 40.143} ---- !u!1 &1203640971 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1203640975} - - component: {fileID: 1203640974} - - component: {fileID: 1203640973} - - component: {fileID: 1203640972} - m_Layer: 5 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &1203640972 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1203640971} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 4294967295 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 94f7f8b608e68794287180537627c973, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!65 &1203640973 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1203640971} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1203640974 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1203640971} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1203640975 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1203640971} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.0335656, y: 0.82283884, z: -0.5660038} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1254977675 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1254977676} - - component: {fileID: 1254977678} - - component: {fileID: 1254977677} - m_Layer: 5 - m_Name: Deth Priming Forced - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1254977676 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1254977675} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 798865924} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 5, y: 0} - m_SizeDelta: {x: 300, y: 60} - m_Pivot: {x: 0, y: 0} ---- !u!114 &1254977677 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1254977675} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 20 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 1 - m_MaxSize: 40 - m_Alignment: 0 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: Depth Priming Forced ---- !u!222 &1254977678 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1254977675} - m_CullTransparentMesh: 1 ---- !u!1 &1281754344 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1281754348} - - component: {fileID: 1281754347} - - component: {fileID: 1281754346} - - component: {fileID: 1281754345} - m_Layer: 5 - m_Name: Cube (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &1281754345 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1281754344} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 4294967295 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 5fbf105a3b09e4faf9c5dd6646a9ac4c, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 0 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!65 &1281754346 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1281754344} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!33 &1281754347 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1281754344} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1281754348 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1281754344} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.14399993, y: 1.081, z: -0.45300102} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity.meta deleted file mode 100644 index e85cbfb8343..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 06d3d04c77b97ba40969b415bc9a25dd -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/LightingData.asset b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/LightingData.asset deleted file mode 100644 index 161808f80b7b62e9894c4ef0dc4a62be046aa2ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18192 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
d7$kXh%(BRID-a!dmJy z8Iwf1M(>T};s_#V6{u%4#N?n2OxjDr3Jl)*A3S+gLKT&?$7J^Jh|YeE0(h?J?DpBv zd#X%rQT(uMcICX~LSK!ZT%p%XzaXlDPV;BNWjT=yNT;gbf136; zxe@OxtS*(CZj?}ss$P#CSdT`=<6fx&EQVCYcTUR7$X&jDN=e4-<0#AhSYa`@`>~@V zKn4++>qL*9%O8=JFwF4W9@ySb+J%*U+tZ;-giB{U-X2)~00 zJ|MUQj%z+T+4?suVh}NC^08z@?tKAQH8#}Z1E^pQjH4OvOTH*|?ilf&ytFU+GrG6L z^yEdDd{4(OZ-Ah305DFN?id@_M1Nul$Ub`m*iWaG?js_N0D#zOE0O_D5bVniFdh(A z#4<(@KJ1#~;}yOXzYtJ?y4N=8L?P&88YII~3#V1H?oiEnUy_tiT_%pXl#+bu=hL&Q z`%qPel%wQVosyA{6IC0AQ8t^ zwLoLomri!hGs$`W#PCGeS&jOCN6(`bF?EU&ErvjWkrxYtwX=c*+(2NFSLL_tbjCogOcWT84OM*PIc7kDbYf^T=-_ZFWuu@JAfpx=A?qE*GRx5pQw0)QLVYot@n>ZI&nTeb8Zi{gat3$SwVOA7 ziQ&NW_pft$K_*KWQ;cM1iGS$HoeZvv1IG8|=r?$eoMyv&e0or4l@B>txWZVw_eHz* zsh&%B0q4T1L%=Hk^ngK4gi|Jx^oyONrg^M;%j_=$9d==`_avO zZ4JeI`+D8j)1VzBUwYzYKhfQ+wdVp%H!gq~26!Mx`pTJiKaSo3GvyT+j^4e+djt8= z94<^ndLrIV_Zd7XU_H`KU(qT% hn>reclYwo=$2a6HXVTA|~PZJqSK6a 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�SNDAKT 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­)Xg8$I{8Yh)SWmxemd%QJEBIKT~sYD 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 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/ReflectionProbe-0.exr.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/ReflectionProbe-0.exr.meta deleted file mode 100644 index 51993773287..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/ReflectionProbe-0.exr.meta +++ /dev/null @@ -1,98 +0,0 @@ -fileFormatVersion: 2 -guid: 89527ea2efa43864d8b67850a779ca18 -TextureImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 11 - mipmaps: - mipMapMode: 0 - enableMipMap: 1 - sRGBTexture: 1 - linearTexture: 0 - fadeOut: 0 - borderMipMap: 0 - mipMapsPreserveCoverage: 0 - alphaTestReferenceValue: 0.5 - mipMapFadeDistanceStart: 1 - mipMapFadeDistanceEnd: 3 - bumpmap: - convertToNormalMap: 0 - externalNormalMap: 0 - heightScale: 0.25 - normalMapFilter: 0 - isReadable: 0 - streamingMipmaps: 0 - streamingMipmapsPriority: 0 - vTOnly: 0 - ignoreMasterTextureLimit: 0 - grayScaleToAlpha: 0 - generateCubemap: 6 - cubemapConvolution: 1 - seamlessCubemap: 1 - textureFormat: 1 - maxTextureSize: 2048 - textureSettings: - serializedVersion: 2 - filterMode: 2 - aniso: 0 - mipBias: 0 - wrapU: 1 - wrapV: 1 - wrapW: 1 - nPOTScale: 1 - lightmap: 0 - compressionQuality: 50 - spriteMode: 0 - spriteExtrude: 1 - spriteMeshType: 1 - alignment: 0 - spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} - spriteGenerateFallbackPhysicsShape: 1 - alphaUsage: 1 - alphaIsTransparency: 0 - spriteTessellationDetail: -1 - textureType: 0 - textureShape: 2 - singleChannelComponent: 0 - flipbookRows: 1 - flipbookColumns: 1 - maxTextureSizeSet: 0 - compressionQualitySet: 0 - textureFormatSet: 0 - ignorePngGamma: 0 - applyGammaDecoding: 0 - platformSettings: - - serializedVersion: 3 - buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 - resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 - compressionQuality: 100 - crunchedCompression: 0 - allowsAlphaSplitting: 0 - overridden: 0 - androidETC2FallbackOverride: 0 - forceMaximumCompressionQuality_BC6H_BC7: 0 - spriteSheet: - serializedVersion: 2 - sprites: [] - outline: [] - physicsShape: [] - bones: [] - spriteID: - internalID: 0 - vertices: [] - indices: - edges: [] - weights: [] - secondaryTextures: [] - nameFileIdTable: {} - spritePackingTag: - pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat deleted file mode 100644 index 80a680fb54f..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat +++ /dev/null @@ -1,127 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 6 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Transparent - m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} - m_ShaderKeywords: _SURFACE_TYPE_TRANSPARENT - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3000 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - DepthOnly - - SHADOWCASTER - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - unity_Lightmaps: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - unity_LightmapsInd: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - unity_ShadowMasks: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Ints: [] - m_Floats: - - _AlphaClip: 0 - - _Blend: 0 - - _BumpScale: 1 - - _ClearCoatMask: 0 - - _ClearCoatSmoothness: 0 - - _Cull: 2 - - _Cutoff: 0.5 - - _DetailAlbedoMapScale: 1 - - _DetailNormalMapScale: 1 - - _DstBlend: 10 - - _EnvironmentReflections: 1 - - _GlossMapScale: 0 - - _Glossiness: 0 - - _GlossyReflections: 0 - - _Metallic: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.005 - - _QueueOffset: 0 - - _ReceiveShadows: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 5 - - _Surface: 1 - - _WorkflowMode: 1 - - _ZWrite: 0 - m_Colors: - - _BaseColor: {r: 1, g: 0.4577373, b: 0, a: 0.3764706} - - _Color: {r: 1, g: 0.4577372, b: 0, a: 0.3764706} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - m_BuildTextureStacks: [] ---- !u!114 &3256230158234068506 -MonoBehaviour: - m_ObjectHideFlags: 11 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 5 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat.meta deleted file mode 100644 index ba96628e9e5..00000000000 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/Scenes/240_DepthPriming/Transparent.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 56193a9fa5c52444d9d649960af3ba23 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 2100000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset b/TestProjects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset index 9937affbc70..1b4e5ee9279 100644 --- a/TestProjects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset +++ b/TestProjects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset @@ -80,7 +80,4 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/200_Lens_Flare_Sanity.unity guid: b51c203a350144f97ba208c293ab8333 - - enabled: 1 - path: Assets/Scenes/240_DepthPriming.unity - guid: 06d3d04c77b97ba40969b415bc9a25dd m_configObjects: {} diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index a2e3d29e9f3..cc56eb42803 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -1140,7 +1140,7 @@ internal override void SwapColorBuffer(CommandBuffer cmd) ConfigureCameraTarget(m_ColorBufferSystem.GetBackBuffer(cmd).id, m_ColorBufferSystem.GetBufferA().id); else ConfigureCameraColorTarget(m_ColorBufferSystem.GetBackBuffer(cmd).id); - m_ActiveCameraColorAttachment = m_ColorBufferSystem.GetBackBuffer(cmd); + m_ActiveCameraColorAttachment = m_ColorBufferSystem.GetBackBuffer(); cmd.SetGlobalTexture("_CameraColorTexture", m_ActiveCameraColorAttachment.id); //Set _AfterPostProcessTexture, users might still rely on this although it is now always the cameratarget due to swapbuffer cmd.SetGlobalTexture("_AfterPostProcessTexture", m_ActiveCameraColorAttachment.id); From 22a46691816444e64f5e4d9395dbd85ca99b910b Mon Sep 17 00:00:00 2001 From: Felipe Lira Date: Fri, 8 Oct 2021 11:37:00 +0200 Subject: [PATCH 13/14] Revert "[URP] Decal fixes (#5384)" This reverts commit b4a7c94988bd49c773e224522bf56f2bece153fd. --- .../CHANGELOG.md | 2 -- .../Decal/DBuffer/DBufferRenderPass.cs | 25 ++++++++----------- .../RendererFeatures/DecalRendererFeature.cs | 14 +++++------ .../Runtime/ScriptableRenderer.cs | 2 +- .../Shaders/Decal.shadergraph | 9 +++---- 5 files changed, 22 insertions(+), 30 deletions(-) diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index a747aea4b28..9c8cf0745cc 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -23,8 +23,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fixed a regression where ShaderGraph screen position was not correct in game view and when using XR [1369450] - Fixed overwriting of preview camera background color. [case 1357004](https://issuetracker.unity3d.com/product/unity/issues/guid/1361557/) - Fixed ShadowCaster now requires varying normalWS to include changed normals from vertex shader in shader graph. -- Fixed decals to work with native render pass [case 1353141](https://issuetracker.unity3d.com/issues/urp-decals-are-not-visible-in-game-view-after-modifying-urp-asset-properties) -- Fixed decals to work with render scale [1353885](https://issuetracker.unity3d.com/issues/urp-builtin-to-urp-render-pipeline-converter-freezes-the-editor-when-converting-rendering-settings) - Fixed typo in numIterationsEnclosingSphere api name ## [13.0.0] - 2021-09-01 diff --git a/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs b/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs index cbb86b1a5be..1f7e3d0e02f 100644 --- a/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Decal/DBuffer/DBufferRenderPass.cs @@ -24,17 +24,12 @@ internal class DBufferRenderPass : ScriptableRenderPass private int m_DBufferCount; private ProfilingSampler m_ProfilingSampler; - private RenderTargetHandle m_DBufferDepth; - private RenderTargetHandle m_CameraDepthTexture; - private RenderTargetHandle m_CameraDepthAttachment; - internal DeferredLights deferredLights { get; set; } private bool isDeferred => deferredLights != null; internal RenderTargetIdentifier[] dBufferColorIndentifiers { get; private set; } - - internal RenderTargetHandle dBufferDepth => m_DBufferDepth; - internal RenderTargetHandle cameraDepthTexture => m_CameraDepthTexture; - internal RenderTargetHandle cameraDepthAttachment => m_CameraDepthAttachment; + internal RenderTargetIdentifier dBufferDepthIndentifier { get; private set; } + internal RenderTargetIdentifier cameraDepthTextureIndentifier { get; private set; } + internal RenderTargetIdentifier cameraDepthAttachmentIndentifier { get; private set; } public DBufferRenderPass(Material dBufferClear, DBufferSettings settings, DecalDrawDBufferSystem drawSystem) { @@ -56,9 +51,9 @@ public DBufferRenderPass(Material dBufferClear, DBufferSettings settings, DecalD dBufferColorIndentifiers[dbufferIndex] = new RenderTargetIdentifier(s_DBufferNames[dbufferIndex]); m_DBufferCount = dBufferCount; - m_DBufferDepth.Init(s_DBufferDepthName); - m_CameraDepthTexture.Init("_CameraDepthTexture"); - m_CameraDepthAttachment.Init("_CameraDepthAttachment"); + dBufferDepthIndentifier = new RenderTargetIdentifier(s_DBufferDepthName); + cameraDepthTextureIndentifier = new RenderTargetIdentifier("_CameraDepthTexture"); + cameraDepthAttachmentIndentifier = new RenderTargetIdentifier("_CameraDepthAttachment"); } public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) @@ -102,12 +97,12 @@ public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderin depthDesc.depthStencilFormat = renderingData.cameraData.cameraTargetDescriptor.depthStencilFormat; depthDesc.msaaSamples = 1; - cmd.GetTemporaryRT(m_DBufferDepth.id, depthDesc); - depthIdentifier = m_DBufferDepth.Identifier(); + cmd.GetTemporaryRT(Shader.PropertyToID(s_DBufferDepthName), depthDesc); + depthIdentifier = dBufferDepthIndentifier; } else { - depthIdentifier = m_CameraDepthAttachment.Identifier(); + depthIdentifier = deferredLights.DepthAttachmentIdentifier; } ConfigureTarget(dBufferColorIndentifiers, depthIdentifier); @@ -189,7 +184,7 @@ public override void OnCameraCleanup(CommandBuffer cmd) } if (!isDeferred) - cmd.ReleaseTemporaryRT(m_DBufferDepth.id); + cmd.ReleaseTemporaryRT(Shader.PropertyToID(s_DBufferDepthName)); } } } diff --git a/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs b/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs index 66d3e2c0df8..fb68deb2ade 100644 --- a/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs +++ b/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs @@ -340,6 +340,7 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData m_ScreenSpaceSettings = GetScreenSpaceSettings(); m_CopyDepthMaterial = CoreUtils.CreateEngineMaterial(m_CopyDepthPS); + m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingPrePasses, m_CopyDepthMaterial); m_DBufferClearMaterial = CoreUtils.CreateEngineMaterial(m_DBufferClear); @@ -369,6 +370,7 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData switch (m_Technique) { case DecalTechnique.ScreenSpace: + m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingOpaques, m_DBufferClearMaterial); m_DecalDrawScreenSpaceSystem = new DecalDrawScreenSpaceSystem(m_DecalEntityManager); m_ScreenSpaceDecalRenderPass = new DecalScreenSpaceRenderPass(m_ScreenSpaceSettings, intermediateRendering ? m_DecalDrawScreenSpaceSystem : null); break; @@ -377,12 +379,12 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData m_DeferredLights = universalRenderer.deferredLights; + m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingOpaques, m_DBufferClearMaterial); m_DrawGBufferSystem = new DecalDrawGBufferSystem(m_DecalEntityManager); m_GBufferRenderPass = new DecalGBufferRenderPass(m_ScreenSpaceSettings, intermediateRendering ? m_DrawGBufferSystem : null); break; case DecalTechnique.DBuffer: - m_CopyDepthPass = new CopyDepthPass(RenderPassEvent.AfterRenderingPrePasses, m_CopyDepthMaterial); m_DecalDrawDBufferSystem = new DecalDrawDBufferSystem(m_DecalEntityManager); m_DBufferRenderPass = new DBufferRenderPass(m_DBufferClearMaterial, m_DBufferSettings, m_DecalDrawDBufferSystem); @@ -464,17 +466,15 @@ public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingD if (universalRenderer.actualRenderingMode == RenderingMode.Deferred) { m_CopyDepthPass.Setup( - m_DBufferRenderPass.cameraDepthAttachment, - m_DBufferRenderPass.cameraDepthTexture + new RenderTargetHandle(m_DBufferRenderPass.cameraDepthAttachmentIndentifier), + new RenderTargetHandle(m_DBufferRenderPass.cameraDepthTextureIndentifier) ); - - m_CopyDepthPass.AllocateRT = false; } else { m_CopyDepthPass.Setup( - m_DBufferRenderPass.cameraDepthTexture, - m_DBufferRenderPass.dBufferDepth + new RenderTargetHandle(m_DBufferRenderPass.cameraDepthTextureIndentifier), + new RenderTargetHandle(m_DBufferRenderPass.dBufferDepthIndentifier) ); } m_CopyDepthPass.MssaSamples = 1; diff --git a/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs b/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs index 7274dc66319..a69f7b6d9d2 100644 --- a/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs @@ -218,7 +218,7 @@ void SetPerCameraShaderVariables(CommandBuffer cmd, ref CameraData cameraData) cmd.SetGlobalVector(ShaderPropertyId.zBufferParams, zBufferParams); cmd.SetGlobalVector(ShaderPropertyId.orthoParams, orthoParams); - cmd.SetGlobalVector(ShaderPropertyId.screenSize, new Vector4(scaledCameraWidth, scaledCameraHeight, 1.0f / scaledCameraWidth, 1.0f / scaledCameraHeight)); + cmd.SetGlobalVector(ShaderPropertyId.screenSize, new Vector4(cameraWidth, cameraHeight, 1.0f / cameraWidth, 1.0f / cameraHeight)); } /// diff --git a/com.unity.render-pipelines.universal/Shaders/Decal.shadergraph b/com.unity.render-pipelines.universal/Shaders/Decal.shadergraph index 33276e79bca..dc29db12650 100644 --- a/com.unity.render-pipelines.universal/Shaders/Decal.shadergraph +++ b/com.unity.render-pipelines.universal/Shaders/Decal.shadergraph @@ -192,8 +192,7 @@ "serializedMesh": { "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", "m_Guid": "" - }, - "preventRotation": false + } }, "m_Path": "Shader Graphs", "m_GraphPrecision": 1, @@ -330,9 +329,9 @@ "m_CustomColors": { "m_SerializableColors": [] }, - "m_TextureType": 1, + "m_TextureType": 0, "m_NormalMapSpace": 0, - "m_EnableGlobalMipBias": true + "m_DisableGlobalMipBias": false } { @@ -890,7 +889,7 @@ }, "m_TextureType": 0, "m_NormalMapSpace": 0, - "m_EnableGlobalMipBias": true + "m_DisableGlobalMipBias": false } { From e9b498558a0b95d79f9607f3a4cfd774bc03e1f6 Mon Sep 17 00:00:00 2001 From: Felipe Lira Date: Mon, 11 Oct 2021 11:55:19 +0200 Subject: [PATCH 14/14] Revert "[URP] DepthCopy texture as a color (#5369)" This reverts commit a65bb59307a01978d9e9324055156a59d4faf2e5. --- .../Scenes/230_Decals/Materials/Brick.mat | 4 +- .../ShaderLibrary/API/Metal.hlsl | 3 +- .../ShaderGraph/Includes/DepthOnlyPass.hlsl | 2 +- .../ShaderGraph/Targets/UniversalTarget.cs | 2 +- .../VFXGraph/Shaders/VFXPasses.template | 5 +-- .../Runtime/DeferredLights.cs | 10 +---- .../Runtime/NativeRenderPass.cs | 37 +++---------------- .../Runtime/Passes/CopyDepthPass.cs | 15 ++------ .../Runtime/Passes/DeferredPass.cs | 2 +- .../Runtime/Passes/DepthOnlyPass.cs | 16 +++----- .../Runtime/Passes/FinalBlitPass.cs | 2 +- .../Runtime/Passes/GBufferPass.cs | 10 +---- .../Runtime/Passes/ScriptableRenderPass.cs | 27 +------------- .../RendererFeatures/DecalRendererFeature.cs | 8 ---- .../Runtime/UniversalRenderer.cs | 6 +-- .../Shaders/BakedLit.shader | 4 +- .../Shaders/ComplexLit.shader | 4 +- .../Shaders/DepthOnlyPass.hlsl | 4 +- .../Shaders/Lit.shader | 4 +- .../Shaders/Nature/SpeedTree7.shader | 2 +- .../Shaders/Nature/SpeedTree7Billboard.shader | 2 +- .../Nature/SpeedTree7CommonPasses.hlsl | 2 +- .../Shaders/Nature/SpeedTree8.shader | 2 +- .../Shaders/Nature/SpeedTree8Passes.hlsl | 2 +- .../Particles/ParticlesDepthOnlyPass.hlsl | 4 +- .../Shaders/Particles/ParticlesLit.shader | 2 +- .../Particles/ParticlesSimpleLit.shader | 2 +- .../Shaders/Particles/ParticlesUnlit.shader | 2 +- .../Shaders/SimpleLit.shader | 4 +- .../Shaders/Terrain/TerrainDetailLit.shader | 2 +- .../Shaders/Terrain/TerrainLit.shader | 2 +- .../Shaders/Terrain/TerrainLitBase.shader | 2 +- .../Shaders/Terrain/TerrainLitPasses.hlsl | 2 +- .../Shaders/Terrain/WavingGrass.shader | 2 +- .../Terrain/WavingGrassBillboard.shader | 2 +- .../Shaders/Terrain/WavingGrassPasses.hlsl | 2 +- .../Shaders/Unlit.shader | 4 +- .../Shaders/Utils/CopyDepth.shader | 3 +- .../Shaders/Utils/CopyDepthPass.hlsl | 4 -- .../Shaders/VFXParticleCommon.template | 2 +- 40 files changed, 60 insertions(+), 156 deletions(-) diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat index 02249ca0b3c..c0fdc5848a0 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/Materials/Brick.mat @@ -13,7 +13,7 @@ Material: m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 - m_CustomRenderQueue: 1999 + m_CustomRenderQueue: 2000 stringTagMap: RenderType: Opaque disabledShaderPasses: [] @@ -95,7 +95,7 @@ Material: - _Metallic: 0 - _OcclusionStrength: 0.387 - _Parallax: 0.0477 - - _QueueOffset: -1 + - _QueueOffset: 0 - _ReceiveShadows: 1 - _Smoothness: 0.742 - _SmoothnessTextureChannel: 0 diff --git a/com.unity.render-pipelines.core/ShaderLibrary/API/Metal.hlsl b/com.unity.render-pipelines.core/ShaderLibrary/API/Metal.hlsl index 648b20b4cf8..295f1567367 100644 --- a/com.unity.render-pipelines.core/ShaderLibrary/API/Metal.hlsl +++ b/com.unity.render-pipelines.core/ShaderLibrary/API/Metal.hlsl @@ -150,6 +150,7 @@ #define GATHER_GREEN_TEXTURE2D(textureName, samplerName, coord2) textureName.GatherGreen(samplerName, coord2) #define GATHER_BLUE_TEXTURE2D(textureName, samplerName, coord2) textureName.GatherBlue(samplerName, coord2) #define GATHER_ALPHA_TEXTURE2D(textureName, samplerName, coord2) textureName.GatherAlpha(samplerName, coord2) -#if defined(UNITY_FRAMEBUFFER_FETCH_AVAILABLE) + +#if defined(SHADER_API_MOBILE) #define PLATFORM_SUPPORTS_NATIVE_RENDERPASS #endif diff --git a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl index 996ecb1f75a..26e80370a59 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl +++ b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl @@ -21,7 +21,7 @@ half4 frag(PackedVaryings packedInput) : SV_TARGET clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold); #endif - return packedInput.positionCS.z; + return 0; } #endif diff --git a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs index ca97405fbba..52847c9e051 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs @@ -1242,7 +1242,7 @@ public static RenderStateCollection DepthOnly(UniversalTarget target) { RenderState.ZTest(ZTest.LEqual) }, { RenderState.ZWrite(ZWrite.On) }, { UberSwitchedCullRenderState(target) }, - { RenderState.ColorMask("ColorMask R") }, + { RenderState.ColorMask("ColorMask 0") }, }; return result; diff --git a/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/VFXPasses.template b/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/VFXPasses.template index ab6d76d401a..0515d737096 100644 --- a/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/VFXPasses.template +++ b/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/VFXPasses.template @@ -86,9 +86,6 @@ void frag(ps_input i #if VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL #if defined(WRITE_NORMAL_BUFFER) , out float4 outNormalBuffer : SV_Target0 - , out float4 outDepthColor : SV_Target1 - #else - , out float4 outDepthColor : SV_Target0 #endif #elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION , out float4 outColor : SV_Target0 @@ -133,7 +130,7 @@ void frag(ps_input i // We use depth prepass for scene selection in the editor, this code allow to output the outline correctly outColor = float4(_ObjectId, _PassValue, 1.0, 1.0); #elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL - outDepthColor = float4(i.VFX_VARYING_POSCS.z, 0,0,0); + //void #elif VFX_PASSDEPTH == VFX_PASSDEPTH_SHADOW //void #else diff --git a/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs b/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs index 1888441f080..7ea78e2d28f 100644 --- a/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs +++ b/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs @@ -188,7 +188,6 @@ internal bool AccurateGbufferNormals // Output lighting result. internal RenderTargetHandle[] GbufferAttachments { get; set; } internal RenderTargetIdentifier[] DeferredInputAttachments { get; set; } - internal bool[] DeferredInputIsTransient { get; set; } // Input depth texture, also bound as read-only RT internal RenderTargetHandle DepthAttachment { get; set; } // @@ -403,17 +402,12 @@ public void Setup(ref RenderingData renderingData, this.GbufferAttachmentIdentifiers[i] = this.GbufferAttachments[i].Identifier(); this.GbufferFormats[i] = this.GetGBufferFormat(i); } - if (this.DeferredInputAttachments == null && this.UseRenderPass && this.GbufferAttachments.Length >= 3) + if (this.DeferredInputAttachments == null && this.UseRenderPass && this.GbufferAttachments.Length >= 5) { this.DeferredInputAttachments = new RenderTargetIdentifier[4] { this.GbufferAttachmentIdentifiers[0], this.GbufferAttachmentIdentifiers[1], - this.GbufferAttachmentIdentifiers[2], this.DepthCopyTextureIdentifier - }; - - this.DeferredInputIsTransient = new bool[4] - { - true, true, true, false + this.GbufferAttachmentIdentifiers[2], this.GbufferAttachmentIdentifiers[4] }; } this.DepthAttachmentIdentifier = depthAttachment.Identifier(); diff --git a/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs b/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs index 2dc8e24140c..4a117d6b681 100644 --- a/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/NativeRenderPass.cs @@ -29,11 +29,6 @@ public partial class ScriptableRenderer }; AttachmentDescriptor m_ActiveDepthAttachmentDescriptor; - bool[] m_IsActiveColorAttachmentTransient = new bool[] - { - false, false, false, false, false, false, false, false - }; - internal RenderBufferStoreAction[] m_FinalColorStoreAction = new RenderBufferStoreAction[] { RenderBufferStoreAction.Store, RenderBufferStoreAction.Store, RenderBufferStoreAction.Store, RenderBufferStoreAction.Store, @@ -205,7 +200,6 @@ internal void SetNativeRenderPassMRTAttachmentList(ScriptableRenderPass renderPa UpdateFinalStoreActions(currentMergeablePasses, cameraData); int currentAttachmentIdx = 0; - bool hasInput = false; foreach (var passIdx in currentMergeablePasses) { if (passIdx == -1) @@ -254,10 +248,7 @@ internal void SetNativeRenderPassMRTAttachmentList(ScriptableRenderPass renderPa } if (PassHasInputAttachments(pass)) - { - hasInput = true; SetupInputAttachmentIndices(pass); - } // TODO: this is redundant and is being setup for each attachment. Needs to be done only once per mergeable pass list (we need to make sure mergeable passes use the same depth!) m_ActiveDepthAttachmentDescriptor = new AttachmentDescriptor(SystemInfo.GetGraphicsFormat(DefaultFormat.DepthStencil)); @@ -269,9 +260,6 @@ internal void SetNativeRenderPassMRTAttachmentList(ScriptableRenderPass renderPa if (m_UseOptimizedStoreActions) m_ActiveDepthAttachmentDescriptor.storeAction = m_FinalDepthStoreAction; } - - if (hasInput) - SetupTransientInputAttachments(m_RenderPassesAttachmentCount[currentPassHash]); } } @@ -516,7 +504,6 @@ internal void ExecuteNativeRenderPass(ScriptableRenderContext context, Scriptabl for (int i = 0; i < m_ActiveColorAttachmentDescriptors.Length; ++i) { m_ActiveColorAttachmentDescriptors[i] = RenderingUtils.emptyAttachment; - m_IsActiveColorAttachmentTransient[i] = false; } m_ActiveDepthAttachmentDescriptor = RenderingUtils.emptyAttachment; @@ -536,25 +523,11 @@ internal void SetupInputAttachmentIndices(ScriptableRenderPass pass) continue; } - // Only update it as long as it has default value - if it was changed once, we assume it'll be memoryless in the whole RenderPass - if (!m_IsActiveColorAttachmentTransient[pass.m_InputAttachmentIndices[i]]) - { - m_IsActiveColorAttachmentTransient[pass.m_InputAttachmentIndices[i]] = pass.IsInputAttachmentTransient(i); - } - } - } - - internal void SetupTransientInputAttachments(int attachmentCount) - { - for (int i = 0; i < attachmentCount; ++i) - { - if (!m_IsActiveColorAttachmentTransient[i]) - continue; - - m_ActiveColorAttachmentDescriptors[i].loadAction = RenderBufferLoadAction.DontCare; - m_ActiveColorAttachmentDescriptors[i].storeAction = RenderBufferStoreAction.DontCare; - // We change the target of the descriptor for it to be initialized engine-side as a transient resource. - m_ActiveColorAttachmentDescriptors[i].loadStoreTarget = BuiltinRenderTextureType.None; + // Assume input attachment has to be transient as ScriptableRenderPass currently has only setters for StoreAction + // We also change the target of the descriptor for it to be initialized engine-side as a transient resource. + m_ActiveColorAttachmentDescriptors[pass.m_InputAttachmentIndices[i]].loadAction = RenderBufferLoadAction.DontCare; + m_ActiveColorAttachmentDescriptors[pass.m_InputAttachmentIndices[i]].storeAction = RenderBufferStoreAction.DontCare; + m_ActiveColorAttachmentDescriptors[pass.m_InputAttachmentIndices[i]].loadStoreTarget = BuiltinRenderTextureType.None; } } diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs index 24000c01a0e..55ece56250b 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs @@ -18,9 +18,6 @@ public class CopyDepthPass : ScriptableRenderPass private RenderTargetHandle destination { get; set; } internal bool AllocateRT { get; set; } internal int MssaSamples { get; set; } - // In some cases (Scene view, XR and etc.) we actually want to output to depth buffer - // So this variable needs to be set to true to enable the correct copy shader semantic - internal bool CopyToDepth { get; set; } Material m_CopyDepthMaterial; internal bool m_CopyResolvedDepth; @@ -29,7 +26,6 @@ public CopyDepthPass(RenderPassEvent evt, Material copyDepthMaterial) { base.profilingSampler = new ProfilingSampler(nameof(CopyDepthPass)); AllocateRT = true; - CopyToDepth = false; m_CopyDepthMaterial = copyDepthMaterial; renderPassEvent = evt; m_CopyResolvedDepth = false; @@ -51,14 +47,14 @@ public void Setup(RenderTargetHandle source, RenderTargetHandle destination) public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) { var descriptor = renderingData.cameraData.cameraTargetDescriptor; - descriptor.graphicsFormat = GraphicsFormat.R32_SFloat; - descriptor.depthBufferBits = 0; + descriptor.colorFormat = RenderTextureFormat.Depth; + descriptor.depthBufferBits = 32; //TODO: do we really need this. double check; descriptor.msaaSamples = 1; if (this.AllocateRT) cmd.GetTemporaryRT(destination.id, descriptor, FilterMode.Point); // On Metal iOS, prevent camera attachments to be bound and cleared during this pass. - ConfigureTarget(new RenderTargetIdentifier(destination.Identifier(), 0, CubemapFace.Unknown, -1), GraphicsFormat.R32_SFloat, descriptor.width, descriptor.height, descriptor.msaaSamples, false); + ConfigureTarget(new RenderTargetIdentifier(destination.Identifier(), 0, CubemapFace.Unknown, -1), descriptor.depthStencilFormat, descriptor.width, descriptor.height, descriptor.msaaSamples, true); ConfigureClear(ClearFlag.None, Color.black); } @@ -116,11 +112,6 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData break; } - if (CopyToDepth) - cmd.EnableShaderKeyword("_OUTPUT_DEPTH"); - else - cmd.DisableShaderKeyword("_OUTPUT_DEPTH"); - cmd.SetGlobalTexture("_CameraDepthAttachment", source.Identifier()); diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs index a78ddccedb9..bdcb7f891a0 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/DeferredPass.cs @@ -29,7 +29,7 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera RenderTargetIdentifier lightingAttachmentId = m_DeferredLights.GbufferAttachmentIdentifiers[m_DeferredLights.GBufferLightingIndex]; RenderTargetIdentifier depthAttachmentId = m_DeferredLights.DepthAttachmentIdentifier; if (m_DeferredLights.UseRenderPass) - ConfigureInputAttachments(m_DeferredLights.DeferredInputAttachments, m_DeferredLights.DeferredInputIsTransient); + ConfigureInputAttachments(m_DeferredLights.DeferredInputAttachments); // TODO: change to m_DeferredLights.GetGBufferFormat(m_DeferredLights.GBufferLightingIndex) when it's not GraphicsFormat.None // TODO: Cannot currently bind depth texture as read-only! diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs index a20015a5356..00b3a1aa512 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/DepthOnlyPass.cs @@ -31,7 +31,6 @@ public DepthOnlyPass(RenderPassEvent evt, RenderQueueRange renderQueueRange, Lay base.profilingSampler = new ProfilingSampler(nameof(DepthOnlyPass)); m_FilteringSettings = new FilteringSettings(renderQueueRange, layerMask); renderPassEvent = evt; - useNativeRenderPass = false; } /// @@ -42,8 +41,7 @@ public void Setup( RenderTargetHandle depthAttachmentHandle) { this.depthAttachmentHandle = depthAttachmentHandle; - baseDescriptor.graphicsFormat = GraphicsFormat.R32_SFloat; - // Even though this texture is going to be a color texture, we need depth buffer to correctly render it (ZTest and all) + baseDescriptor.colorFormat = RenderTextureFormat.Depth; baseDescriptor.depthBufferBits = k_DepthBufferBits; // Depth-Only pass don't use MSAA @@ -63,18 +61,16 @@ public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderin // When depth priming is in use the camera target should not be overridden so the Camera's MSAA depth attachment is used. if (renderingData.cameraData.renderer.useDepthPriming && (renderingData.cameraData.renderType == CameraRenderType.Base || renderingData.cameraData.clearDepth)) { - ConfigureTarget(renderingData.cameraData.renderer.cameraDepthTarget, desc.depthStencilFormat, desc.width, desc.height, 1, true); - // Only clear depth here so we don't clear any bound color target. It might be unused by this pass but that doesn't mean we can just clear it. (e.g. in case of overlay cameras + depth priming) - ConfigureClear(ClearFlag.Depth, Color.black); + ConfigureTarget(renderingData.cameraData.renderer.cameraDepthTarget, descriptor.depthStencilFormat, desc.width, desc.height, 1, true); } // When not using depth priming the camera target should be set to our non MSAA depth target. else { - useNativeRenderPass = true; - var target = new RenderTargetIdentifier(depthAttachmentHandle.Identifier(), 0, CubemapFace.Unknown, -1); - ConfigureTarget(target, target, GraphicsFormat.R32_SFloat, desc.width, desc.height, 1); - ConfigureClear(ClearFlag.All, Color.black); + ConfigureTarget(new RenderTargetIdentifier(depthAttachmentHandle.Identifier(), 0, CubemapFace.Unknown, -1), descriptor.depthStencilFormat, desc.width, desc.height, 1, true); } + + // Only clear depth here so we don't clear any bound color target. It might be unused by this pass but that doesn't mean we can just clear it. (e.g. in case of overlay cameras + depth priming) + ConfigureClear(ClearFlag.Depth, Color.black); } /// diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs index 6dcd1926258..3b1f0cfb827 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/FinalBlitPass.cs @@ -109,7 +109,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData cameraTarget, RenderBufferLoadAction.Load, RenderBufferStoreAction.Store, - ClearFlag.Depth, + ClearFlag.None, Color.black); Camera camera = cameraData.camera; diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs index 7e9992d20a3..9eb4cfd3649 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs @@ -57,11 +57,6 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera if (cmd != null) { - if (m_DeferredLights.UseRenderPass) - { - m_DeferredLights.GbufferAttachments[m_DeferredLights.GbufferDepthIndex] = m_DeferredLights.DepthCopyTexture; - m_DeferredLights.GbufferAttachmentIdentifiers[m_DeferredLights.GbufferDepthIndex] = m_DeferredLights.DepthCopyTextureIdentifier; - } // Create and declare the render targets used in the pass for (int i = 0; i < gbufferAttachments.Length; ++i) { @@ -75,15 +70,14 @@ public override void Configure(CommandBuffer cmd, RenderTextureDescriptor camera continue; // No need to setup temporaryRTs if we are using input attachments as they will be Memoryless - if (m_DeferredLights.UseRenderPass && i != m_DeferredLights.GBufferShadowMask && i != m_DeferredLights.GBufferRenderingLayers && (i != m_DeferredLights.GbufferDepthIndex && !m_DeferredLights.HasDepthPrepass)) + if (m_DeferredLights.UseRenderPass && i != m_DeferredLights.GBufferShadowMask && i != m_DeferredLights.GBufferRenderingLayers) continue; RenderTextureDescriptor gbufferSlice = cameraTextureDescriptor; gbufferSlice.depthBufferBits = 0; // make sure no depth surface is actually created gbufferSlice.stencilFormat = GraphicsFormat.None; gbufferSlice.graphicsFormat = m_DeferredLights.GetGBufferFormat(i); - - cmd.GetTemporaryRT(m_DeferredLights.GbufferAttachments[i].id, gbufferSlice, FilterMode.Point); + cmd.GetTemporaryRT(m_DeferredLights.GbufferAttachments[i].id, gbufferSlice); } } diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs index 2cd48776f3f..2c2fd432499 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/ScriptableRenderPass.cs @@ -227,7 +227,6 @@ public Color clearColor internal GraphicsFormat[] renderTargetFormat { get; set; } RenderTargetIdentifier[] m_ColorAttachments = new RenderTargetIdentifier[] { BuiltinRenderTextureType.CameraTarget }; internal RenderTargetIdentifier[] m_InputAttachments = new RenderTargetIdentifier[8]; - internal bool[] m_InputAttachmentIsTransient = new bool[8]; RenderTargetIdentifier m_DepthAttachment = BuiltinRenderTextureType.CameraTarget; ScriptableRenderPassInput m_Input = ScriptableRenderPassInput.None; ClearFlag m_ClearFlag = ClearFlag.None; @@ -246,7 +245,6 @@ public ScriptableRenderPass() renderPassEvent = RenderPassEvent.AfterRenderingOpaques; m_ColorAttachments = new RenderTargetIdentifier[] { BuiltinRenderTextureType.CameraTarget, 0, 0, 0, 0, 0, 0, 0 }; m_InputAttachments = new RenderTargetIdentifier[] { -1, -1, -1, -1, -1, -1, -1, -1 }; - m_InputAttachmentIsTransient = new bool[] { false, false, false, false, false, false, false, false }; m_DepthAttachment = BuiltinRenderTextureType.CameraTarget; m_ColorStoreActions = new RenderBufferStoreAction[] { RenderBufferStoreAction.Store, 0, 0, 0, 0, 0, 0, 0 }; m_DepthStoreAction = RenderBufferStoreAction.Store; @@ -316,10 +314,9 @@ public void ConfigureDepthStoreAction(RenderBufferStoreAction storeAction) m_OverriddenDepthStoreAction = true; } - internal void ConfigureInputAttachments(RenderTargetIdentifier input, bool isTransient = false) + internal void ConfigureInputAttachments(RenderTargetIdentifier input) { m_InputAttachments[0] = input; - m_InputAttachmentIsTransient[0] = isTransient; } internal void ConfigureInputAttachments(RenderTargetIdentifier[] inputs) @@ -327,22 +324,6 @@ internal void ConfigureInputAttachments(RenderTargetIdentifier[] inputs) m_InputAttachments = inputs; } - internal void ConfigureInputAttachments(RenderTargetIdentifier[] inputs, bool[] isTransient) - { - ConfigureInputAttachments(inputs); - m_InputAttachmentIsTransient = isTransient; - } - - internal void SetInputAttachmentTransient(int idx, bool isTransient) - { - m_InputAttachmentIsTransient[idx] = isTransient; - } - - internal bool IsInputAttachmentTransient(int idx) - { - return m_InputAttachmentIsTransient[idx]; - } - /// /// Configures render targets for this render pass. Call this instead of CommandBuffer.SetRenderTarget. /// This method should be called inside Configure. @@ -421,12 +402,6 @@ internal void ConfigureTarget(RenderTargetIdentifier colorAttachment, GraphicsFo renderTargetFormat[0] = format; } - internal void ConfigureTarget(RenderTargetIdentifier colorAttachment, RenderTargetIdentifier depthAttachment, GraphicsFormat format, int width, int height, int sampleCount) - { - m_DepthAttachment = depthAttachment; - ConfigureTarget(colorAttachment, format, width, height, sampleCount); - } - /// /// Configures render targets for this render pass. Call this instead of CommandBuffer.SetRenderTarget. /// This method should be called inside Configure. diff --git a/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs b/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs index fb68deb2ade..7dd94364e29 100644 --- a/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs +++ b/com.unity.render-pipelines.universal/Runtime/RendererFeatures/DecalRendererFeature.cs @@ -392,10 +392,7 @@ private void RecreateSystemsIfNeeded(ScriptableRenderer renderer, in CameraData m_ForwardEmissivePass = new DecalForwardEmissivePass(m_DecalDrawForwardEmissiveSystem); if (universalRenderer.actualRenderingMode == RenderingMode.Deferred) - { m_DBufferRenderPass.deferredLights = universalRenderer.deferredLights; - m_DBufferRenderPass.deferredLights.DisableFramebufferFetchInput(); - } break; } @@ -486,11 +483,6 @@ public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingD } } - internal override bool SupportsNativeRenderPass() - { - return m_Technique == DecalTechnique.GBuffer || m_Technique == DecalTechnique.ScreenSpace; - } - protected override void Dispose(bool disposing) { CoreUtils.Destroy(m_CopyDepthMaterial); diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index cc56eb42803..e55c91b7d64 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -712,9 +712,7 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re } // If a depth texture was created we necessarily need to copy it, otherwise we could have render it to a renderbuffer. - // Also skip if Deferred+RenderPass as CameraDepthTexture is used and filled by the GBufferPass - // however we might need the depth texture with Forward-only pass rendered to it, so enable the copy depth in that case - if (requiresDepthCopyPass && !(this.actualRenderingMode == RenderingMode.Deferred && useRenderPassEnabled && !renderPassInputs.requiresDepthTexture)) + if (requiresDepthCopyPass) { m_CopyDepthPass.Setup(m_ActiveCameraDepthAttachment, m_DepthTexture); @@ -844,7 +842,6 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re if (!depthTargetResolved && cameraData.xr.copyDepth) { m_XRCopyDepthPass.Setup(m_ActiveCameraDepthAttachment, RenderTargetHandle.GetCameraTarget(cameraData.xr)); - m_XRCopyDepthPass.CopyToDepth = true; EnqueuePass(m_XRCopyDepthPass); } } @@ -863,7 +860,6 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re // Scene view camera should always resolve target (not stacked) Assertions.Assert.IsTrue(lastCameraInTheStack, "Editor camera must resolve target upon finish rendering."); m_FinalDepthCopyPass.Setup(m_DepthTexture, RenderTargetHandle.CameraTarget); - m_FinalDepthCopyPass.CopyToDepth = true; m_FinalDepthCopyPass.MssaSamples = 0; EnqueuePass(m_FinalDepthCopyPass); } diff --git a/com.unity.render-pipelines.universal/Shaders/BakedLit.shader b/com.unity.render-pipelines.universal/Shaders/BakedLit.shader index 7c1f1a1fb84..9cbef2157a8 100644 --- a/com.unity.render-pipelines.universal/Shaders/BakedLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/BakedLit.shader @@ -82,7 +82,7 @@ Shader "Universal Render Pipeline/Baked Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 HLSLPROGRAM #pragma exclude_renderers gles gles3 glcore @@ -280,7 +280,7 @@ Shader "Universal Render Pipeline/Baked Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 HLSLPROGRAM #pragma only_renderers gles gles3 glcore d3d11 diff --git a/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader b/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader index 75d11157f9a..7ebfcbf20e8 100644 --- a/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/ComplexLit.shader @@ -191,7 +191,7 @@ Shader "Universal Render Pipeline/Complex Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull[_Cull] HLSLPROGRAM @@ -420,7 +420,7 @@ Shader "Universal Render Pipeline/Complex Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl b/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl index d7d12c64e5d..7c00bd3d336 100644 --- a/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl @@ -29,11 +29,11 @@ Varyings DepthOnlyVertex(Attributes input) return output; } -half DepthOnlyFragment(Varyings input) : SV_TARGET +half4 DepthOnlyFragment(Varyings input) : SV_TARGET { UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); Alpha(SampleAlbedoAlpha(input.uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)).a, _BaseColor, _Cutoff); - return input.positionCS.z; + return 0; } #endif diff --git a/com.unity.render-pipelines.universal/Shaders/Lit.shader b/com.unity.render-pipelines.universal/Shaders/Lit.shader index da4ea8dc5da..fb085b39a26 100644 --- a/com.unity.render-pipelines.universal/Shaders/Lit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Lit.shader @@ -260,7 +260,7 @@ Shader "Universal Render Pipeline/Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull[_Cull] HLSLPROGRAM @@ -495,7 +495,7 @@ Shader "Universal Render Pipeline/Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7.shader b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7.shader index a3a9e0164fc..b719ebe8896 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7.shader +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7.shader @@ -168,7 +168,7 @@ Shader "Universal Render Pipeline/Nature/SpeedTree7" Name "DepthOnly" Tags{"LightMode" = "DepthOnly"} - ColorMask R + ColorMask 0 HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Billboard.shader b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Billboard.shader index 349ad68e1a1..a2a1e8ec143 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Billboard.shader +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7Billboard.shader @@ -116,7 +116,7 @@ Shader "Universal Render Pipeline/Nature/SpeedTree7 Billboard" Name "DepthOnly" Tags{"LightMode" = "DepthOnly"} - ColorMask R + ColorMask 0 HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl index 24b06077f78..8d09d387219 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree7CommonPasses.hlsl @@ -243,7 +243,7 @@ half4 SpeedTree7FragDepth(SpeedTreeVertexDepthOutput input) : SV_Target // We use depth prepass for scene selection in the editor, this code allow to output the outline correctly return half4(_ObjectId, _PassValue, 1.0, 1.0); #else - return half4(input.clipPos.z, 0, 0, 0); + return half4(0, 0, 0, 0); #endif } diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8.shader b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8.shader index 3e768e0b56b..47c24003005 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8.shader +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8.shader @@ -197,7 +197,7 @@ Shader "Universal Render Pipeline/Nature/SpeedTree8" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl index c80cf5372e2..20e664e417c 100644 --- a/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Nature/SpeedTree8Passes.hlsl @@ -512,7 +512,7 @@ half4 SpeedTree8FragDepth(SpeedTreeVertexDepthOutput input) : SV_Target // We use depth prepass for scene selection in the editor, this code allow to output the outline correctly return half4(_ObjectId, _PassValue, 1.0, 1.0); #else - return half4(input.clipPos.z, 0, 0, 0); + return half4(0, 0, 0, 0); #endif } diff --git a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesDepthOnlyPass.hlsl b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesDepthOnlyPass.hlsl index 517e7414e4e..548e095990c 100644 --- a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesDepthOnlyPass.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesDepthOnlyPass.hlsl @@ -30,7 +30,7 @@ VaryingsDepthOnlyParticle DepthOnlyVertex(AttributesDepthOnlyParticle input) return output; } -half DepthOnlyFragment(VaryingsDepthOnlyParticle input) : SV_TARGET +half4 DepthOnlyFragment(VaryingsDepthOnlyParticle input) : SV_TARGET { UNITY_SETUP_INSTANCE_ID(input); UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); @@ -57,7 +57,7 @@ half DepthOnlyFragment(VaryingsDepthOnlyParticle input) : SV_TARGET AlphaDiscard(albedo.a, _Cutoff); #endif - return input.clipPos.z; + return 0; } #endif // UNIVERSAL_PARTICLES_LIT_DEPTH_ONLY_PASS_INCLUDED diff --git a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesLit.shader b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesLit.shader index f5480d1bb5c..59dd8a3af5e 100644 --- a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesLit.shader @@ -211,7 +211,7 @@ Shader "Universal Render Pipeline/Particles/Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader index 5b59ab8c30d..756c1c10d03 100644 --- a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLit.shader @@ -204,7 +204,7 @@ Shader "Universal Render Pipeline/Particles/Simple Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesUnlit.shader b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesUnlit.shader index aeb87df6ed8..c43b3e776bd 100644 --- a/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesUnlit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesUnlit.shader @@ -115,7 +115,7 @@ Shader "Universal Render Pipeline/Particles/Unlit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader b/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader index 38f827ac723..96f8516e45b 100644 --- a/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/SimpleLit.shader @@ -214,7 +214,7 @@ Shader "Universal Render Pipeline/Simple Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull[_Cull] HLSLPROGRAM @@ -417,7 +417,7 @@ Shader "Universal Render Pipeline/Simple Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull[_Cull] HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader index 1bbfce5ef73..9c2d7d2f2b4 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainDetailLit.shader @@ -175,7 +175,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/Vertexlit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 HLSLPROGRAM #pragma target 2.0 diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader index 13186d2dac3..e7149778059 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader @@ -182,7 +182,7 @@ Shader "Universal Render Pipeline/Terrain/Lit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 HLSLPROGRAM #pragma target 2.0 diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader index 36a42ebc5df..4b8a96e510b 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader @@ -152,7 +152,7 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Base Pass)" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 HLSLPROGRAM #pragma target 2.0 diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl index 890fcf65cfe..e581f71cfce 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl @@ -507,7 +507,7 @@ half4 DepthOnlyFragment(VaryingsLean IN) : SV_TARGET // We use depth prepass for scene selection in the editor, this code allow to output the outline correctly return half4(_ObjectId, _PassValue, 1.0, 1.0); #endif - return IN.clipPos.z; + return 0; } #endif diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader index 00a26314eac..4870e7f3206 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrass.shader @@ -60,7 +60,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/WavingDoublePass" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull Off HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader index c29646ab149..3a447789a35 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassBillboard.shader @@ -55,7 +55,7 @@ Shader "Hidden/TerrainEngine/Details/UniversalPipeline/BillboardWavingDoublePass Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 Cull Off HLSLPROGRAM diff --git a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl index 196fcc08131..8ecf5cfa9ae 100644 --- a/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl @@ -267,6 +267,6 @@ GrassVertexDepthOnlyOutput DepthOnlyVertex(GrassVertexDepthOnlyInput v) half4 DepthOnlyFragment(GrassVertexDepthOnlyOutput input) : SV_TARGET { Alpha(SampleAlbedoAlpha(input.uv, TEXTURE2D_ARGS(_MainTex, sampler_MainTex)).a, input.color, _Cutoff); - return input.clipPos.z; + return 0; } #endif diff --git a/com.unity.render-pipelines.universal/Shaders/Unlit.shader b/com.unity.render-pipelines.universal/Shaders/Unlit.shader index 2be70754509..6913ce7d09c 100644 --- a/com.unity.render-pipelines.universal/Shaders/Unlit.shader +++ b/com.unity.render-pipelines.universal/Shaders/Unlit.shader @@ -69,7 +69,7 @@ Shader "Universal Render Pipeline/Unlit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 HLSLPROGRAM #pragma exclude_renderers gles gles3 glcore @@ -188,7 +188,7 @@ Shader "Universal Render Pipeline/Unlit" Tags{"LightMode" = "DepthOnly"} ZWrite On - ColorMask R + ColorMask 0 HLSLPROGRAM #pragma only_renderers gles gles3 glcore d3d11 diff --git a/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepth.shader b/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepth.shader index acc712a7a31..89b7fe022ab 100644 --- a/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepth.shader +++ b/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepth.shader @@ -7,7 +7,7 @@ Shader "Hidden/Universal Render Pipeline/CopyDepth" Pass { Name "CopyDepth" - ZTest Always ZWrite Off ColorMask R + ZTest Always ZWrite On ColorMask 0 Cull Off HLSLPROGRAM @@ -16,7 +16,6 @@ Shader "Hidden/Universal Render Pipeline/CopyDepth" #pragma multi_compile _ _DEPTH_MSAA_2 _DEPTH_MSAA_4 _DEPTH_MSAA_8 #pragma multi_compile _ _USE_DRAW_PROCEDURAL - #pragma multi_compile _ _OUTPUT_DEPTH #include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepthPass.hlsl" diff --git a/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepthPass.hlsl b/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepthPass.hlsl index b1beca642cf..e2686609b08 100644 --- a/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepthPass.hlsl +++ b/com.unity.render-pipelines.universal/Shaders/Utils/CopyDepthPass.hlsl @@ -106,11 +106,7 @@ float SampleDepth(float2 uv) #endif } -#if defined(_OUTPUT_DEPTH) float frag(Varyings input) : SV_Depth -#else -float frag(Varyings input) : SV_Target -#endif { UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); return SampleDepth(input.uv); diff --git a/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template b/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template index cfc888e4ef2..7689e95a914 100644 --- a/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template +++ b/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template @@ -284,7 +284,7 @@ void frag(ps_input i outSelection = float4(_ObjectId, _PassValue, 1.0, 1.0); #elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL #ifndef WRITE_MSAA_DEPTH - dummy = float4(i.VFX_VARYING_POSCS.z, 0,0,0); + dummy = (float4)0; #endif #elif VFX_PASSDEPTH == VFX_PASSDEPTH_SHADOW dummy = (float4)0;