From 95250f15bee36710d55686ca0dfb208961e8c7b7 Mon Sep 17 00:00:00 2001 From: thomas-zeng Date: Thu, 21 Oct 2021 15:32:24 -0700 Subject: [PATCH 1/2] * Moved `SetPerCameraShaderVariables` into percamera setup scope. This call has to be called after SetupCameraProperties to reset the values. --- .../Runtime/ScriptableRenderer.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs b/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs index a69f7b6d9d2..5d5dd948a07 100644 --- a/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs @@ -640,7 +640,6 @@ public void Execute(ScriptableRenderContext context, ref RenderingData rendering // Initialize Camera Render State ClearRenderingState(cmd); - SetPerCameraShaderVariables(cmd, ref cameraData); SetShaderTimeValues(cmd, time, deltaTime, smoothDeltaTime); context.ExecuteCommandBuffer(cmd); cmd.Clear(); @@ -685,11 +684,13 @@ public void Execute(ScriptableRenderContext context, ref RenderingData rendering { context.SetupCameraProperties(camera); SetCameraMatrices(cmd, ref cameraData, true); + SetPerCameraShaderVariables(cmd, ref cameraData); } else { // Set new properties SetCameraMatrices(cmd, ref cameraData, true); + SetPerCameraShaderVariables(cmd, ref cameraData); SetPerCameraClippingPlaneProperties(cmd, in cameraData); SetPerCameraBillboardProperties(cmd, ref cameraData); } From e6199002e9f8ab3f889436d7e9577fa81042d157 Mon Sep 17 00:00:00 2001 From: thomas-zeng Date: Fri, 22 Oct 2021 14:21:37 -0700 Subject: [PATCH 2/2] * Moved SetCameraMatrices call inside the SetPerCameraShaderVariables --- .../Runtime/ScriptableRenderer.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs b/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs index 5d5dd948a07..f7645a661ee 100644 --- a/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs +++ b/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs @@ -219,6 +219,9 @@ void SetPerCameraShaderVariables(CommandBuffer cmd, ref CameraData cameraData) cmd.SetGlobalVector(ShaderPropertyId.orthoParams, orthoParams); cmd.SetGlobalVector(ShaderPropertyId.screenSize, new Vector4(cameraWidth, cameraHeight, 1.0f / cameraWidth, 1.0f / cameraHeight)); + + //Set per camera matrices. + SetCameraMatrices(cmd, ref cameraData, true); } /// @@ -683,13 +686,11 @@ public void Execute(ScriptableRenderContext context, ref RenderingData rendering if (cameraData.renderType == CameraRenderType.Base) { context.SetupCameraProperties(camera); - SetCameraMatrices(cmd, ref cameraData, true); SetPerCameraShaderVariables(cmd, ref cameraData); } else { // Set new properties - SetCameraMatrices(cmd, ref cameraData, true); SetPerCameraShaderVariables(cmd, ref cameraData); SetPerCameraClippingPlaneProperties(cmd, in cameraData); SetPerCameraBillboardProperties(cmd, ref cameraData);