From aae01d60c1e964e59fe3f3d4e084fce5fd7fd348 Mon Sep 17 00:00:00 2001 From: Jonas Sideravicius Date: Wed, 3 Nov 2021 15:41:54 +0200 Subject: [PATCH 1/3] Make LensFlare dimensions respect RenderScale setting (also passing CameraData instead of Camera) --- .../Runtime/Passes/PostProcessPass.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs index b18dcb6429a..8947d847ef0 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs @@ -489,7 +489,7 @@ void Swap(ref ScriptableRenderer r) using (new ProfilingScope(cmd, ProfilingSampler.Get(URPProfileId.LensFlareDataDriven))) { - DoLensFlareDatadriven(cameraData.camera, cmd, GetSource(), usePanini, paniniDistance, paniniCropToFit); + DoLensFlareDatadriven(cameraData, cmd, GetSource(), usePanini, paniniDistance, paniniCropToFit); } } @@ -944,15 +944,15 @@ static float GetLensFlareLightAttenuation(Light light, Camera cam, Vector3 wo) return 1.0f; } - void DoLensFlareDatadriven(Camera camera, CommandBuffer cmd, RenderTargetIdentifier source, bool usePanini, float paniniDistance, float paniniCropToFit) + void DoLensFlareDatadriven(CameraData cameraData, CommandBuffer cmd, RenderTargetIdentifier source, bool usePanini, float paniniDistance, float paniniCropToFit) { + var camera = cameraData.camera; var gpuView = camera.worldToCameraMatrix; var gpuNonJitteredProj = GL.GetGPUProjectionMatrix(camera.projectionMatrix, true); // Zero out the translation component. gpuView.SetColumn(3, new Vector4(0, 0, 0, 1)); var gpuVP = gpuNonJitteredProj * camera.worldToCameraMatrix; - - LensFlareCommonSRP.DoLensFlareDataDrivenCommon(m_Materials.lensFlareDataDriven, LensFlareCommonSRP.Instance, camera, (float)Screen.width, (float)Screen.height, + LensFlareCommonSRP.DoLensFlareDataDrivenCommon(m_Materials.lensFlareDataDriven, LensFlareCommonSRP.Instance, camera, (float)Screen.width * cameraData.renderScale, (float)Screen.height * cameraData.renderScale, usePanini, paniniDistance, paniniCropToFit, true, camera.transform.position, From d3a911aa3a3ced323e6641946a5f0ea9cc33a115 Mon Sep 17 00:00:00 2001 From: Jonas Sideravicius Date: Thu, 4 Nov 2021 10:21:01 +0200 Subject: [PATCH 2/3] using descriptor for lensflare descriptions instead of multiplying by renderscale --- .../Runtime/Passes/PostProcessPass.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs b/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs index 8947d847ef0..973da972dc4 100644 --- a/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs +++ b/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPass.cs @@ -489,7 +489,7 @@ void Swap(ref ScriptableRenderer r) using (new ProfilingScope(cmd, ProfilingSampler.Get(URPProfileId.LensFlareDataDriven))) { - DoLensFlareDatadriven(cameraData, cmd, GetSource(), usePanini, paniniDistance, paniniCropToFit); + DoLensFlareDatadriven(cameraData.camera, cmd, GetSource(), usePanini, paniniDistance, paniniCropToFit); } } @@ -944,15 +944,14 @@ static float GetLensFlareLightAttenuation(Light light, Camera cam, Vector3 wo) return 1.0f; } - void DoLensFlareDatadriven(CameraData cameraData, CommandBuffer cmd, RenderTargetIdentifier source, bool usePanini, float paniniDistance, float paniniCropToFit) + void DoLensFlareDatadriven(Camera camera, CommandBuffer cmd, RenderTargetIdentifier source, bool usePanini, float paniniDistance, float paniniCropToFit) { - var camera = cameraData.camera; var gpuView = camera.worldToCameraMatrix; var gpuNonJitteredProj = GL.GetGPUProjectionMatrix(camera.projectionMatrix, true); // Zero out the translation component. gpuView.SetColumn(3, new Vector4(0, 0, 0, 1)); var gpuVP = gpuNonJitteredProj * camera.worldToCameraMatrix; - LensFlareCommonSRP.DoLensFlareDataDrivenCommon(m_Materials.lensFlareDataDriven, LensFlareCommonSRP.Instance, camera, (float)Screen.width * cameraData.renderScale, (float)Screen.height * cameraData.renderScale, + LensFlareCommonSRP.DoLensFlareDataDrivenCommon(m_Materials.lensFlareDataDriven, LensFlareCommonSRP.Instance, camera, (float)m_Descriptor.width, (float)m_Descriptor.height, usePanini, paniniDistance, paniniCropToFit, true, camera.transform.position, From a6e6c104b39200e0d997cbc5f3c3f091261a4294 Mon Sep 17 00:00:00 2001 From: Jonas Sideravicius Date: Wed, 10 Nov 2021 11:19:56 +0200 Subject: [PATCH 3/3] Update CHANGELOG.md --- com.unity.render-pipelines.universal/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/com.unity.render-pipelines.universal/CHANGELOG.md b/com.unity.render-pipelines.universal/CHANGELOG.md index 70b7aaf8fe3..cd16d1db7df 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - 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) +- Fixed Lens Flare not accounting Render Scale setting. [case 1376820](https://issuetracker.unity3d.com/issues/urp-lens-flare-do-not-account-for-render-scale-setting) ## [13.1.0] - 2021-09-24 ### Added