diff --git a/Assets/Scenes/Oasis/Art/Environment/Textures/OasisSunset_T_Cube.exr.meta b/Assets/Scenes/Oasis/Art/Environment/Textures/OasisSunset_T_Cube.exr.meta index 686ee0e..3314eec 100644 --- a/Assets/Scenes/Oasis/Art/Environment/Textures/OasisSunset_T_Cube.exr.meta +++ b/Assets/Scenes/Oasis/Art/Environment/Textures/OasisSunset_T_Cube.exr.meta @@ -1,9 +1,9 @@ fileFormatVersion: 2 -guid: 5500c7bc667b55f49b29485c043a2b42 +guid: Cn8ftXmqASi6epsI4nfo7953qufqb5nBuoGXa/Fnz8E2iB3Zkxr25P8= TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 12 + serializedVersion: 13 mipmaps: mipMapMode: 0 enableMipMap: 1 @@ -22,6 +22,9 @@ TextureImporter: normalMapFilter: 0 flipGreenChannel: 0 isReadable: 0 + webStreaming: 0 + priorityLevel: 0 + uploadedMode: 2 streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 @@ -70,6 +73,7 @@ TextureImporter: - serializedVersion: 3 buildTarget: DefaultTexturePlatform maxTextureSize: 512 + maxPlaceholderSize: 32 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -83,6 +87,7 @@ TextureImporter: - serializedVersion: 3 buildTarget: Standalone maxTextureSize: 2048 + maxPlaceholderSize: 32 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -96,6 +101,7 @@ TextureImporter: - serializedVersion: 3 buildTarget: Server maxTextureSize: 2048 + maxPlaceholderSize: 32 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -109,6 +115,7 @@ TextureImporter: - serializedVersion: 3 buildTarget: Android maxTextureSize: 512 + maxPlaceholderSize: 32 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -122,6 +129,7 @@ TextureImporter: - serializedVersion: 3 buildTarget: iPhone maxTextureSize: 512 + maxPlaceholderSize: 32 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 @@ -132,6 +140,34 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: HMIAndroid + maxTextureSize: 512 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: OpenHarmony + maxTextureSize: 512 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: 48 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/Settings/Mobile/Mobile_High.asset b/Assets/Settings/Mobile/Mobile_High.asset index 0c31499..5224959 100644 --- a/Assets/Settings/Mobile/Mobile_High.asset +++ b/Assets/Settings/Mobile/Mobile_High.asset @@ -28,7 +28,7 @@ MonoBehaviour: m_SupportsHDR: 1 m_HDRColorBufferPrecision: 0 m_MSAA: 1 - m_RenderScale: 0.5882813 + m_RenderScale: 0.6666667 m_UpscalingFilter: 0 m_FsrOverrideSharpness: 1 m_FsrSharpness: 1 @@ -114,5 +114,5 @@ MonoBehaviour: m_PrefilterNativeRenderPass: 1 m_ShaderVariantLogLevel: 0 m_ShadowCascades: 0 - superResolution: 14 + superResolution: 4 vrsRate: 0 diff --git a/Assets/Settings/Mobile/Mobile_High_Renderer.asset b/Assets/Settings/Mobile/Mobile_High_Renderer.asset index 0382291..4bc3a65 100644 --- a/Assets/Settings/Mobile/Mobile_High_Renderer.asset +++ b/Assets/Settings/Mobile/Mobile_High_Renderer.asset @@ -145,25 +145,25 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c3c4391133b9f3142b57264047029ec5, type: 3} m_Name: XESS m_EditorClassIdentifier: - m_Active: 1 + m_Active: 0 xess1ConfigParam: OutputWidth: 2560 OutputHeight: 1440 Quality: 103 - UseHiResMotionVectors: 0 + UseHiResMotionVectors: 1 UseJitteredMotionVectors: 0 UseMotionVectorsInNDC: 1 UseExposureTexture: 0 UseResponsiveMask: 0 - UseAutoExposure: 0 + UseAutoExposure: 1 EnableProfiling: 0 InvertedDepth: 0 VelocityScaleX: -2 VelocityScaleY: 2 - JitterScaleX: 0 - JitterScaleY: 0 + JitterScaleX: 1 + JitterScaleY: 1 ExposureScale: 1 - MipMapBias: -1.45 + MipMapBias: -1.64 --- !u!114 &1524480044783497712 MonoBehaviour: m_ObjectHideFlags: 0 @@ -176,8 +176,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a6b8ba513f1b1fe499924f362fdde22d, type: 3} m_Name: GSR m_EditorClassIdentifier: - m_Active: 0 - quality: 4 + m_Active: 1 + quality: 3 v1settings: EnableEdgeDirection: 1 Mode: 1 @@ -187,8 +187,8 @@ MonoBehaviour: UseCompute2Pass: 0 GSRV2Material: {fileID: 2100000, guid: faa906817c0647f42a0cec70faeb91c1, type: 2} GSRV2ComputeShader: {fileID: 7200000, guid: 9a4e6ff1f9a33fa4ea1e9744e313e2fd, type: 3} - FiveSample: 0 - Exposure_co_rcp: 1 + FiveSample: 1 + Exposure_co_rcp: 0.1 --- !u!114 &2459758869679212578 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/Passes/PostProcessPass.cs b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/Passes/PostProcessPass.cs index dcf1442..3ec244b 100644 --- a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/Passes/PostProcessPass.cs +++ b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/Passes/PostProcessPass.cs @@ -501,7 +501,7 @@ namespace UnityEngine.Rendering.Universal ref var colorDescriptor = ref cameraData.cameraTargetDescriptor; colorDescriptor.width = cameraData.camera.pixelWidth; colorDescriptor.height = cameraData.camera.pixelHeight; - if (asset.SuperResolution == ESuperResolution.XESS13) + if (asset.SuperResolution == ESuperResolution.XESS13 || asset.SuperResolution == ESuperResolution.GSR2) { colorDescriptor.graphicsFormat = GraphicsFormat.R16G16B16A16_SFloat; colorDescriptor.enableRandomWrite = true; // compute diff --git a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/ScriptableRenderer.cs b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/ScriptableRenderer.cs index 967c709..9ac9daf 100644 --- a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/ScriptableRenderer.cs +++ b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/ScriptableRenderer.cs @@ -278,7 +278,6 @@ namespace UnityEngine.Rendering.Universal SuperResolutionParamSets.Instance.Get("MipmapBias", ref ssMipBias); float taaMipBias = Math.Min(cameraData.taaSettings.mipBias, ssMipBias); mipBias = Math.Min(mipBias, taaMipBias); - // TODO: xyang Mip bias cmd.SetGlobalVector(ShaderPropertyId.globalMipBias, new Vector2(mipBias, Mathf.Pow(2.0f, mipBias))); //Set per camera matrices. diff --git a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/GSR.cs b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/GSR.cs index e96ac7b..22f0ccf 100644 --- a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/GSR.cs +++ b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/GSR.cs @@ -135,6 +135,8 @@ namespace X.Rendering.Feature public int Mode = 1; [SerializeField, Range(0.5f, 2.5f)] public float Sharp = 2; + [SerializeField, Range(-5f, 2.5f)] + public float MipMapBias = 0; [SerializeField] public Material GSRV1Material; } @@ -176,6 +178,7 @@ namespace X.Rendering.Feature cameraData.imageScalingMode = ImageScalingMode.None; cameraData.upscalingFilter = ImageUpscalingFilter.None; + SuperResolutionParamSets.Instance.Set("MipmapBias", v1settings.MipMapBias); cmd.SetGlobalVector(ViewportInfoId, new Vector4(1.0f / pixW, 1.0f / pixH, pixW, pixH)); cmd.SetGlobalVector(GSR1ParamsId, new Vector4(v1settings.Mode, v1settings.Sharp, 0, 0)); @@ -256,13 +259,16 @@ namespace X.Rendering.Feature private void UpscalePass(CommandBuffer cmdBuffer, RTHandle source, RTHandle destination) { + SuperResolutionParamSets.Instance.Set("NeedJitter", true); + var jitter = TemporalAA.CurrentJitter; + cmdBuffer.SetGlobalTexture("_PrevSceneColorTexture", prevSceneColorTexture1); cmdBuffer.SetGlobalTexture("_InputTexture", source); cmdBuffer.SetGlobalTexture("_MotionDepthClipAlphaBuffer", motionDepthClipAlphaBuffer); cmdBuffer.SetGlobalMatrix("_clipToPrevClip", clipToPrevClip); cmdBuffer.SetGlobalVector("_renderSizeParam", renderSizeParam); cmdBuffer.SetGlobalVector("_outputSizeParam", outputSizeParam); - cmdBuffer.SetGlobalVector("_JitterOffset", GetJitter()); + cmdBuffer.SetGlobalVector("_JitterOffset", jitter); cmdBuffer.SetGlobalVector("_ScaleRatio", scaleRatio.xyxx); cmdBuffer.SetGlobalFloat("_cameraFovAngleHor", cameraFovAngleHor); diff --git a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/SR.cs b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/SR.cs index 8c8d19e..c4dabe6 100644 --- a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/SR.cs +++ b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/SR.cs @@ -46,6 +46,7 @@ namespace X.Rendering.Feature } + Dictionary boolMap = new (); Dictionary intMap = new (); Dictionary floatMap = new (); Dictionary stringMap = new (); @@ -72,6 +73,12 @@ namespace X.Rendering.Feature map.TryGetValue(name, out value); break; } + case bool v: + { + var map = boolMap as Dictionary; + map.TryGetValue(name, out value); + break; + } default: throw new ArgumentException($"type err:{typeof(T)}"); } @@ -97,6 +104,11 @@ namespace X.Rendering.Feature stringMap[name] = v; break; } + case bool v: + { + boolMap[name] = v; + break; + } default: throw new ArgumentException($"type err:{typeof(T)}"); } diff --git a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/XESS.cs b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/XESS.cs index 147486b..aa119d5 100644 --- a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/XESS.cs +++ b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SR/Scripts/XESS.cs @@ -145,7 +145,7 @@ namespace X.Rendering.Feature lastQuality = xess1ConfigParam.Quality; } - cameraData.NeedJitter = true; + SuperResolutionParamSets.Instance.Set("NeedJitter", true); SuperResolutionParamSets.Instance.Set("MipmapBias", xess1ConfigParam.MipMapBias); SuperResolutionParamSets.Instance.Set("JitterScale", xess1ConfigParam.JitterScaleX); diff --git a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SRSettings.cs b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SRSettings.cs index 33ad0e6..ce0bed2 100644 --- a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SRSettings.cs +++ b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/SuperRendering/SRSettings.cs @@ -36,6 +36,7 @@ namespace UnityEngine.Rendering.Universal if (!hasActive) { superResolution = ESuperResolution.None; + SuperResolutionParamSets.Instance.Set("NeedJitter", false); } else { diff --git a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/TemporalAA.cs b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/TemporalAA.cs index df2b814..65596ae 100644 --- a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/TemporalAA.cs +++ b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/TemporalAA.cs @@ -301,8 +301,10 @@ namespace UnityEngine.Rendering.Universal static internal Matrix4x4 CalculateJitterMatrix(ref CameraData cameraData, out Vector2 jitter) { Matrix4x4 jitterMat = Matrix4x4.identity; + bool needJitter = false; + SuperResolutionParamSets.Instance.Get("NeedJitter", ref needJitter); - bool isJitter = cameraData.IsTemporalAAEnabled() || cameraData.NeedJitter; + bool isJitter = cameraData.IsTemporalAAEnabled() || needJitter; jitter = Vector2.zero; if (isJitter) { diff --git a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/UniversalRenderPipelineCore.cs b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/UniversalRenderPipelineCore.cs index 1b42f08..5dc1ac9 100644 --- a/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/UniversalRenderPipelineCore.cs +++ b/Packages/com.unity.render-pipelines.universal@14.0.11/Runtime/UniversalRenderPipelineCore.cs @@ -627,8 +627,6 @@ namespace UnityEngine.Rendering.Universal && postProcessEnabled; // No Postprocessing } - internal bool NeedJitter { get; set; } - /// /// The sorting criteria used when drawing opaque objects by the internal URP render passes. /// When a GPU supports hidden surface removal, URP will rely on that information to avoid sorting opaque objects front to back and