From f081390b780b553a6c41a3b4dd4e290eca34c815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elvar=20O=CC=88rn=20Unn=C3=BEo=CC=81rsson?= Date: Tue, 17 Aug 2021 09:53:23 +0200 Subject: [PATCH 01/18] Initial fix. Fixes upgrading from 2021.1 and older to 2021.2 and later. --- ...ForwardToUniversalRendererPostprocessor.cs | 268 +++++++++--------- .../Runtime/Data/ForwardRendererData.asset | 51 ---- .../Data/ForwardRendererData.asset.meta | 8 - .../Runtime/ForwardRendererData.cs.meta | 2 +- .../Runtime/UniversalRendererData.cs.meta | 2 +- 5 files changed, 136 insertions(+), 195 deletions(-) delete mode 100644 com.unity.render-pipelines.universal/Runtime/Data/ForwardRendererData.asset delete mode 100644 com.unity.render-pipelines.universal/Runtime/Data/ForwardRendererData.asset.meta diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs index a1d13255b93..45659616f58 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs @@ -1,134 +1,134 @@ -using UnityEditor; -using UnityEngine; -using UnityEngine.Rendering; -using UnityEngine.Rendering.Universal; - -namespace UnityEditor.Rendering.Universal -{ - class ForwardToUniversalRendererPostprocessor : AssetPostprocessor - { - static bool firstTimeUpgrade = true; - static bool registeredRendererUpdate = false; - static int editedAssetsCount = 0; - static string fwdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("de640fe3d0db1804a85f9fc8f5cadab6"); //ForwardRendererData.cs - static Object fwdRendererScriptObj; - static string stdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("f971995892640ec4f807ef396269e91e"); //UniversalRendererData.cs - static Object stdRendererScriptObj; - - static void UpgradeAsset(Object rendererData, string rendererDataPath) - { - if (rendererData == null) return; - - //Gets the script file objects - if (!fwdRendererScriptObj) fwdRendererScriptObj = AssetDatabase.LoadAssetAtPath(fwdRendererScriptFilePath, typeof(Object)); - if (!stdRendererScriptObj) stdRendererScriptObj = AssetDatabase.LoadAssetAtPath(stdRendererScriptFilePath, typeof(Object)); - - //Double check to see if it's using ForwardRendererData - SerializedObject so = new SerializedObject(rendererData); - SerializedProperty scriptProperty = so.FindProperty("m_Script"); - if (scriptProperty == null) return; - if (scriptProperty.objectReferenceValue == fwdRendererScriptObj) - { - //Change the script to use UniversalRendererData - so.Update(); - scriptProperty.objectReferenceValue = stdRendererScriptObj; - so.ApplyModifiedProperties(); - - //Re-import asset - //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning - AssetDatabase.ImportAsset(rendererDataPath); - - editedAssetsCount++; - } - } - - static void IterateSubAssets(string assetPath) - { - //To prevent infinite importing loop caused by corrupted assets which are created from old bugs e.g. case 1214779 - Object[] subAssets = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath); - for (int j = 0; j < subAssets.Length; j++) - { - //Upgrade subAssets - UpgradeAsset(subAssets[j], assetPath); - } - - //Upgrade the main Asset - Object rendererData = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object)); - UpgradeAsset(rendererData, assetPath); - } - - [InitializeOnLoadMethod] - static void RegisterUpgraderReimport() - { - //Putting in delayCall will make sure AssetDatabase is ready for the FindAssets search below - EditorApplication.delayCall += () => - { - //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 - if (firstTimeUpgrade) - { - string[] allRenderers = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\"", null); - for (int i = 0; i < allRenderers.Length; i++) - { - string rendererDataPath = AssetDatabase.GUIDToAssetPath(allRenderers[i]); - IterateSubAssets(rendererDataPath); - } - - firstTimeUpgrade = false; - } - - //If there is no asset upgraded then we don't need to do the following - if (editedAssetsCount == 0) return; - - //Gets all the UniversalRenderPipeline Assets in project - string[] allURPassets = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); - for (int i = 0; i < allURPassets.Length; i++) - { - string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(allURPassets[i]); - Object pipelineAsset = AssetDatabase.LoadAssetAtPath(pipelineAssetPath, typeof(Object)); - SerializedObject soAsset = new SerializedObject(pipelineAsset); - - //Make some changes on the Pipeline assets - //If we don't do this, the pipeline assets won't recognise the changed renderer "type", so will give "no Default Renderer asset" error and nothing will render - SerializedProperty scriptPropertyAsset = soAsset.FindProperty("m_RequireDepthTexture"); - soAsset.Update(); - if (scriptPropertyAsset != null) - { - bool tmp = scriptPropertyAsset.boolValue; - scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes - soAsset.ApplyModifiedProperties(); - scriptPropertyAsset.boolValue = tmp; //revert the changes - soAsset.ApplyModifiedProperties(); - } - } - - //Reset counter and register state - editedAssetsCount = 0; - registeredRendererUpdate = false; - }; - } - - static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) - { - //Opening some projects e.g. URP Template relies on this interation for doing the asset upgrade. - //This also makes sure the RendererData will be re-upgraded again if the uppgraded changes are discarded using source control. - for (int i = 0; i < importedAssets.Length; i++) - { - var assetType = AssetDatabase.GetMainAssetTypeAtPath(importedAssets[i]); - if (assetType == null) continue; - if (assetType.ToString() == "UnityEngine.Rendering.Universal.ForwardRendererData") - { - IterateSubAssets(importedAssets[i]); - } - } - - //If there are assets being upgraded then we need to trigger an update on the Pipeline assets to avoid "no Default Renderer asset" error and making rendering fine again. - //However at this moment the Pipeline assets are not yet updated, so the error might still happen in the case of discarded upgrade changes, but it won't harm rendering - //This makes sure we re-register the delayCall only once - if (!registeredRendererUpdate && editedAssetsCount > 0) - { - RegisterUpgraderReimport(); - registeredRendererUpdate = true; - } - } - } -} +// using UnityEditor; +// using UnityEngine; +// using UnityEngine.Rendering; +// using UnityEngine.Rendering.Universal; +// +// namespace UnityEditor.Rendering.Universal +// { +// class ForwardToUniversalRendererPostprocessor : AssetPostprocessor +// { +// static bool firstTimeUpgrade = true; +// static bool registeredRendererUpdate = false; +// static int editedAssetsCount = 0; +// static string fwdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("f971995892640ec4f807ef396269e91e"); //ForwardRendererData.cs +// static Object fwdRendererScriptObj; +// static string stdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("de640fe3d0db1804a85f9fc8f5cadab6"); //UniversalRendererData.cs +// static Object stdRendererScriptObj; +// +// static void UpgradeAsset(Object rendererData, string rendererDataPath) +// { +// if (rendererData == null) return; +// +// //Gets the script file objects +// if (!fwdRendererScriptObj) fwdRendererScriptObj = AssetDatabase.LoadAssetAtPath(fwdRendererScriptFilePath, typeof(Object)); +// if (!stdRendererScriptObj) stdRendererScriptObj = AssetDatabase.LoadAssetAtPath(stdRendererScriptFilePath, typeof(Object)); +// +// //Double check to see if it's using ForwardRendererData +// SerializedObject so = new SerializedObject(rendererData); +// SerializedProperty scriptProperty = so.FindProperty("m_Script"); +// if (scriptProperty == null) return; +// if (scriptProperty.objectReferenceValue == fwdRendererScriptObj) +// { +// //Change the script to use UniversalRendererData +// so.Update(); +// scriptProperty.objectReferenceValue = stdRendererScriptObj; +// so.ApplyModifiedProperties(); +// +// //Re-import asset +// //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning +// AssetDatabase.ImportAsset(rendererDataPath); +// +// editedAssetsCount++; +// } +// } +// +// /*static void IterateSubAssets(string assetPath) +// { +// //To prevent infinite importing loop caused by corrupted assets which are created from old bugs e.g. case 1214779 +// Object[] subAssets = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath); +// for (int j = 0; j < subAssets.Length; j++) +// { +// //Upgrade subAssets +// UpgradeAsset(subAssets[j], assetPath); +// } +// +// //Upgrade the main Asset +// Object rendererData = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object)); +// UpgradeAsset(rendererData, assetPath); +// }*/ +// +// // [InitializeOnLoadMethod] +// // static void RegisterUpgraderReimport() +// // { +// // //Putting in delayCall will make sure AssetDatabase is ready for the FindAssets search below +// // EditorApplication.delayCall += () => +// // { +// // //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 +// // if (firstTimeUpgrade) +// // { +// // string[] allRenderers = AssetDatabase.FindAssets("t:UniversalRendererData glob:\"**/*.asset\"", null); +// // for (int i = 0; i < allRenderers.Length; i++) +// // { +// // string rendererDataPath = AssetDatabase.GUIDToAssetPath(allRenderers[i]); +// // IterateSubAssets(rendererDataPath); +// // } +// // +// // firstTimeUpgrade = false; +// // } +// // +// // //If there is no asset upgraded then we don't need to do the following +// // if (editedAssetsCount == 0) return; +// // +// // //Gets all the UniversalRenderPipeline Assets in project +// // string[] allURPassets = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); +// // for (int i = 0; i < allURPassets.Length; i++) +// // { +// // string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(allURPassets[i]); +// // Object pipelineAsset = AssetDatabase.LoadAssetAtPath(pipelineAssetPath, typeof(Object)); +// // SerializedObject soAsset = new SerializedObject(pipelineAsset); +// // +// // //Make some changes on the Pipeline assets +// // //If we don't do this, the pipeline assets won't recognise the changed renderer "type", so will give "no Default Renderer asset" error and nothing will render +// // SerializedProperty scriptPropertyAsset = soAsset.FindProperty("m_RequireDepthTexture"); +// // soAsset.Update(); +// // if (scriptPropertyAsset != null) +// // { +// // bool tmp = scriptPropertyAsset.boolValue; +// // scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes +// // soAsset.ApplyModifiedProperties(); +// // scriptPropertyAsset.boolValue = tmp; //revert the changes +// // soAsset.ApplyModifiedProperties(); +// // } +// // } +// // +// // //Reset counter and register state +// // editedAssetsCount = 0; +// // registeredRendererUpdate = false; +// // }; +// // } +// +// static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) +// { +// //Opening some projects e.g. URP Template relies on this interation for doing the asset upgrade. +// //This also makes sure the RendererData will be re-upgraded again if the uppgraded changes are discarded using source control. +// for (int i = 0; i < importedAssets.Length; i++) +// { +// var assetType = AssetDatabase.GetMainAssetTypeAtPath(importedAssets[i]); +// if (assetType == null) continue; +// if (assetType.ToString() == "UnityEngine.Rendering.Universal.ForwardRendererData") +// { +// IterateSubAssets(importedAssets[i]); +// } +// } +// +// //If there are assets being upgraded then we need to trigger an update on the Pipeline assets to avoid "no Default Renderer asset" error and making rendering fine again. +// //However at this moment the Pipeline assets are not yet updated, so the error might still happen in the case of discarded upgrade changes, but it won't harm rendering +// //This makes sure we re-register the delayCall only once +// if (!registeredRendererUpdate && editedAssetsCount > 0) +// { +// RegisterUpgraderReimport(); +// registeredRendererUpdate = true; +// } +// } +// } +// } diff --git a/com.unity.render-pipelines.universal/Runtime/Data/ForwardRendererData.asset b/com.unity.render-pipelines.universal/Runtime/Data/ForwardRendererData.asset deleted file mode 100644 index f22492616f8..00000000000 --- a/com.unity.render-pipelines.universal/Runtime/Data/ForwardRendererData.asset +++ /dev/null @@ -1,51 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - 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: f971995892640ec4f807ef396269e91e, type: 3} - m_Name: ForwardRendererData - m_EditorClassIdentifier: - debugShaders: - debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} - m_RendererFeatures: [] - m_RendererFeatureMap: - m_UseNativeRenderPass: 0 - postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} - xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} - shaders: - blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} - fullScreenDebugPS: {fileID: 4800000, guid: c7a2b17bb6580d840826b729f33a66ec, type: 3} - copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} - screenSpaceShadowPS: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd, type: 3} - samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} - stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} - fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} - materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} - coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} - coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3} - cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3} - objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, type: 3} - m_OpaqueLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_TransparentLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_DefaultStencilState: - overrideStencilState: 0 - stencilReference: 0 - stencilCompareFunction: 8 - passOperation: 2 - failOperation: 0 - zFailOperation: 0 - m_ShadowTransparentReceive: 1 - m_RenderingMode: 0 - m_DepthPrepassMode: 0 - m_AccurateGbufferNormals: 0 diff --git a/com.unity.render-pipelines.universal/Runtime/Data/ForwardRendererData.asset.meta b/com.unity.render-pipelines.universal/Runtime/Data/ForwardRendererData.asset.meta deleted file mode 100644 index 00ac56d96f9..00000000000 --- a/com.unity.render-pipelines.universal/Runtime/Data/ForwardRendererData.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 618d298269e66c542b306de85db1faea -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs.meta b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs.meta index 662b44b8e6f..364dd12a5ea 100644 --- a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs.meta +++ b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: de640fe3d0db1804a85f9fc8f5cadab6 +guid: 28e92416d1ef646ed9c63c6da5c97088 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs.meta b/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs.meta index 30136f50721..51c5f749e18 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs.meta +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f971995892640ec4f807ef396269e91e +guid: de640fe3d0db1804a85f9fc8f5cadab6 MonoImporter: externalObjects: {} serializedVersion: 2 From 5817cc1b5e194af9c1d32d7e54ddc5928af41f33 Mon Sep 17 00:00:00 2001 From: Andrem Date: Tue, 17 Aug 2021 11:18:03 +0200 Subject: [PATCH 02/18] 21.2+ upgrader back in --- ...ForwardToUniversalRendererPostprocessor.cs | 263 +++++++++--------- .../Runtime/ForwardRendererData.cs.meta | 2 +- .../Runtime/UniversalRendererData.cs.meta | 10 +- 3 files changed, 139 insertions(+), 136 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs index 45659616f58..7a5e3fb4105 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs @@ -1,134 +1,129 @@ -// using UnityEditor; -// using UnityEngine; -// using UnityEngine.Rendering; -// using UnityEngine.Rendering.Universal; -// -// namespace UnityEditor.Rendering.Universal -// { -// class ForwardToUniversalRendererPostprocessor : AssetPostprocessor -// { -// static bool firstTimeUpgrade = true; -// static bool registeredRendererUpdate = false; -// static int editedAssetsCount = 0; -// static string fwdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("f971995892640ec4f807ef396269e91e"); //ForwardRendererData.cs -// static Object fwdRendererScriptObj; -// static string stdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("de640fe3d0db1804a85f9fc8f5cadab6"); //UniversalRendererData.cs -// static Object stdRendererScriptObj; -// -// static void UpgradeAsset(Object rendererData, string rendererDataPath) -// { -// if (rendererData == null) return; -// -// //Gets the script file objects -// if (!fwdRendererScriptObj) fwdRendererScriptObj = AssetDatabase.LoadAssetAtPath(fwdRendererScriptFilePath, typeof(Object)); -// if (!stdRendererScriptObj) stdRendererScriptObj = AssetDatabase.LoadAssetAtPath(stdRendererScriptFilePath, typeof(Object)); -// -// //Double check to see if it's using ForwardRendererData -// SerializedObject so = new SerializedObject(rendererData); -// SerializedProperty scriptProperty = so.FindProperty("m_Script"); -// if (scriptProperty == null) return; -// if (scriptProperty.objectReferenceValue == fwdRendererScriptObj) -// { -// //Change the script to use UniversalRendererData -// so.Update(); -// scriptProperty.objectReferenceValue = stdRendererScriptObj; -// so.ApplyModifiedProperties(); -// -// //Re-import asset -// //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning -// AssetDatabase.ImportAsset(rendererDataPath); -// -// editedAssetsCount++; -// } -// } -// -// /*static void IterateSubAssets(string assetPath) -// { -// //To prevent infinite importing loop caused by corrupted assets which are created from old bugs e.g. case 1214779 -// Object[] subAssets = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath); -// for (int j = 0; j < subAssets.Length; j++) -// { -// //Upgrade subAssets -// UpgradeAsset(subAssets[j], assetPath); -// } -// -// //Upgrade the main Asset -// Object rendererData = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object)); -// UpgradeAsset(rendererData, assetPath); -// }*/ -// -// // [InitializeOnLoadMethod] -// // static void RegisterUpgraderReimport() -// // { -// // //Putting in delayCall will make sure AssetDatabase is ready for the FindAssets search below -// // EditorApplication.delayCall += () => -// // { -// // //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 -// // if (firstTimeUpgrade) -// // { -// // string[] allRenderers = AssetDatabase.FindAssets("t:UniversalRendererData glob:\"**/*.asset\"", null); -// // for (int i = 0; i < allRenderers.Length; i++) -// // { -// // string rendererDataPath = AssetDatabase.GUIDToAssetPath(allRenderers[i]); -// // IterateSubAssets(rendererDataPath); -// // } -// // -// // firstTimeUpgrade = false; -// // } -// // -// // //If there is no asset upgraded then we don't need to do the following -// // if (editedAssetsCount == 0) return; -// // -// // //Gets all the UniversalRenderPipeline Assets in project -// // string[] allURPassets = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); -// // for (int i = 0; i < allURPassets.Length; i++) -// // { -// // string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(allURPassets[i]); -// // Object pipelineAsset = AssetDatabase.LoadAssetAtPath(pipelineAssetPath, typeof(Object)); -// // SerializedObject soAsset = new SerializedObject(pipelineAsset); -// // -// // //Make some changes on the Pipeline assets -// // //If we don't do this, the pipeline assets won't recognise the changed renderer "type", so will give "no Default Renderer asset" error and nothing will render -// // SerializedProperty scriptPropertyAsset = soAsset.FindProperty("m_RequireDepthTexture"); -// // soAsset.Update(); -// // if (scriptPropertyAsset != null) -// // { -// // bool tmp = scriptPropertyAsset.boolValue; -// // scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes -// // soAsset.ApplyModifiedProperties(); -// // scriptPropertyAsset.boolValue = tmp; //revert the changes -// // soAsset.ApplyModifiedProperties(); -// // } -// // } -// // -// // //Reset counter and register state -// // editedAssetsCount = 0; -// // registeredRendererUpdate = false; -// // }; -// // } -// -// static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) -// { -// //Opening some projects e.g. URP Template relies on this interation for doing the asset upgrade. -// //This also makes sure the RendererData will be re-upgraded again if the uppgraded changes are discarded using source control. -// for (int i = 0; i < importedAssets.Length; i++) -// { -// var assetType = AssetDatabase.GetMainAssetTypeAtPath(importedAssets[i]); -// if (assetType == null) continue; -// if (assetType.ToString() == "UnityEngine.Rendering.Universal.ForwardRendererData") -// { -// IterateSubAssets(importedAssets[i]); -// } -// } -// -// //If there are assets being upgraded then we need to trigger an update on the Pipeline assets to avoid "no Default Renderer asset" error and making rendering fine again. -// //However at this moment the Pipeline assets are not yet updated, so the error might still happen in the case of discarded upgrade changes, but it won't harm rendering -// //This makes sure we re-register the delayCall only once -// if (!registeredRendererUpdate && editedAssetsCount > 0) -// { -// RegisterUpgraderReimport(); -// registeredRendererUpdate = true; -// } -// } -// } -// } + using UnityEditor; + using UnityEngine; + using UnityEngine.Rendering; + using UnityEngine.Rendering.Universal; + + namespace UnityEditor.Rendering.Universal + { + class ForwardToUniversalRendererPostprocessor : AssetPostprocessor + { + static bool firstTimeUpgrade = true; + static bool registeredRendererUpdate = false; + static int editedAssetsCount = 0; + static string fwdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("f971995892640ec4f807ef396269e91e"); //ForwardRendererData.cs + static Object fwdRendererScriptObj; + static string stdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("de640fe3d0db1804a85f9fc8f5cadab6"); //UniversalRendererData.cs + static Object stdRendererScriptObj; + + static void UpgradeAsset(Object rendererData, string rendererDataPath) + { + if (rendererData == null) return; + + //Gets the script file objects + if (!fwdRendererScriptObj) fwdRendererScriptObj = AssetDatabase.LoadAssetAtPath(fwdRendererScriptFilePath, typeof(Object)); + if (!stdRendererScriptObj) stdRendererScriptObj = AssetDatabase.LoadAssetAtPath(stdRendererScriptFilePath, typeof(Object)); + + //Double check to see if it's using ForwardRendererData + SerializedObject so = new SerializedObject(rendererData); + SerializedProperty scriptProperty = so.FindProperty("m_Script"); + if (scriptProperty == null) return; + if (scriptProperty.objectReferenceValue == fwdRendererScriptObj) + { + //Change the script to use UniversalRendererData + so.Update(); + scriptProperty.objectReferenceValue = stdRendererScriptObj; + so.ApplyModifiedProperties(); + + //Re-import asset + //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning + AssetDatabase.ImportAsset(rendererDataPath); + + editedAssetsCount++; + } + } + + static void IterateSubAssets(string assetPath) + { + //To prevent infinite importing loop caused by corrupted assets which are created from old bugs e.g. case 1214779 + Object[] subAssets = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath); + for (int j = 0; j < subAssets.Length; j++) + { + //Upgrade subAssets + UpgradeAsset(subAssets[j], assetPath); + } + + //Upgrade the main Asset + Object rendererData = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object)); + UpgradeAsset(rendererData, assetPath); + } + + [InitializeOnLoadMethod] + static void RegisterUpgraderReimport() + { + //Putting in delayCall will make sure AssetDatabase is ready for the FindAssets search below + EditorApplication.delayCall += () => + { + //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 + if (firstTimeUpgrade) + { + string[] allRenderers = AssetDatabase.FindAssets("t:UniversalRendererData glob:\"**/*.asset\"", null); + for (int i = 0; i < allRenderers.Length; i++) + { + string rendererDataPath = AssetDatabase.GUIDToAssetPath(allRenderers[i]); + IterateSubAssets(rendererDataPath); + } + firstTimeUpgrade = false; + } + //If there is no asset upgraded then we don't need to do the following + if (editedAssetsCount == 0) return; + //Gets all the UniversalRenderPipeline Assets in project + string[] allURPassets = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); + for (int i = 0; i < allURPassets.Length; i++) + { + string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(allURPassets[i]); + Object pipelineAsset = AssetDatabase.LoadAssetAtPath(pipelineAssetPath, typeof(Object)); + SerializedObject soAsset = new SerializedObject(pipelineAsset); + //Make some changes on the Pipeline assets + //If we don't do this, the pipeline assets won't recognise the changed renderer "type", so will give "no Default Renderer asset" error and nothing will render + SerializedProperty scriptPropertyAsset = soAsset.FindProperty("m_RequireDepthTexture"); + soAsset.Update(); + if (scriptPropertyAsset != null) + { + bool tmp = scriptPropertyAsset.boolValue; + scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes + soAsset.ApplyModifiedProperties(); + scriptPropertyAsset.boolValue = tmp; //revert the changes + soAsset.ApplyModifiedProperties(); + } + } + //Reset counter and register state + editedAssetsCount = 0; + registeredRendererUpdate = false; + }; + } + + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + { + //Opening some projects e.g. URP Template relies on this interation for doing the asset upgrade. + //This also makes sure the RendererData will be re-upgraded again if the uppgraded changes are discarded using source control. + for (int i = 0; i < importedAssets.Length; i++) + { + var assetType = AssetDatabase.GetMainAssetTypeAtPath(importedAssets[i]); + if (assetType == null) continue; + if (assetType.ToString() == "UnityEngine.Rendering.Universal.ForwardRendererData") + { + IterateSubAssets(importedAssets[i]); + } + } + + //If there are assets being upgraded then we need to trigger an update on the Pipeline assets to avoid "no Default Renderer asset" error and making rendering fine again. + //However at this moment the Pipeline assets are not yet updated, so the error might still happen in the case of discarded upgrade changes, but it won't harm rendering + //This makes sure we re-register the delayCall only once + if (!registeredRendererUpdate && editedAssetsCount > 0) + { + RegisterUpgraderReimport(); + registeredRendererUpdate = true; + } + } + } + } diff --git a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs.meta b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs.meta index 364dd12a5ea..de28d6d3620 100644 --- a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs.meta +++ b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 28e92416d1ef646ed9c63c6da5c97088 +guid: f971995892640ec4f807ef396269e91e MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs.meta b/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs.meta index 51c5f749e18..662b44b8e6f 100644 --- a/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs.meta +++ b/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs.meta @@ -3,7 +3,15 @@ guid: de640fe3d0db1804a85f9fc8f5cadab6 MonoImporter: externalObjects: {} serializedVersion: 2 - defaultReferences: [] + defaultReferences: + - m_BlitShader: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} + - m_CopyDepthShader: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + - m_ScreenSpaceShadowShader: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd, + type: 3} + - m_SamplingShader: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + - m_LutBuilderLdr: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, type: 3} + - m_LutBuilderHdr: {fileID: 4800000, guid: ec9fec698a3456d4fb18cf8bacb7a2bc, type: 3} + - m_UberPostShader: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3} executionOrder: 0 icon: {instanceID: 0} userData: From 08973e9e27132083ba264ade047c7f6567cac1fd Mon Sep 17 00:00:00 2001 From: Andrem Date: Tue, 17 Aug 2021 11:51:44 +0200 Subject: [PATCH 03/18] adding back properties for upgrade --- .../Runtime/ForwardRendererData.cs | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs index b1fd4c83e73..2fbdb9f28d4 100644 --- a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs +++ b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs @@ -39,17 +39,41 @@ public sealed class ShaderResources [Reload("Shaders/Utils/MaterialError.shader")] public Shader materialErrorPS; + + // Core blitter shaders, adapted from HDRP + // TODO: move to core and share with HDRP + [Reload("Shaders/Utils/CoreBlit.shader"), SerializeField] + internal Shader coreBlitPS; + [Reload("Shaders/Utils/CoreBlitColorAndDepth.shader"), SerializeField] + internal Shader coreBlitColorAndDepthPS; + + + [Reload("Shaders/CameraMotionVectors.shader")] + public Shader cameraMotionVector; + + [Reload("Shaders/ObjectMotionVectors.shader")] + public Shader objectMotionVector; } - public ShaderResources shaders = null; + public ShaderResources shaders; - public PostProcessData postProcessData = null; + public PostProcessData postProcessData; #if ENABLE_VR && ENABLE_XR_MODULE [Reload("Runtime/Data/XRSystemData.asset")] - public XRSystemData xrSystemData = null; + public XRSystemData xrSystemData; #endif + [SerializeField] LayerMask m_OpaqueLayerMask; + [SerializeField] LayerMask m_TransparentLayerMask; + [SerializeField] StencilStateData m_DefaultStencilState; // This default state is compatible with deferred renderer. + [SerializeField] bool m_ShadowTransparentReceive; + [SerializeField] RenderingMode m_RenderingMode; + [SerializeField] DepthPrimingMode m_DepthPrimingMode; // Default disabled because there are some outstanding issues with Text Mesh rendering. + [SerializeField] bool m_AccurateGbufferNormals; + [SerializeField] bool m_ClusteredRendering; + [SerializeField] TileSize m_TileSize; + protected override ScriptableRenderer Create() { throw new NotSupportedException(k_ErrorMessage); From 6f581995a9122f709844d3331907c75245eee5e6 Mon Sep 17 00:00:00 2001 From: Andrem Date: Tue, 17 Aug 2021 14:33:34 +0200 Subject: [PATCH 04/18] tentative fix --- ...ForwardToUniversalRendererPostprocessor.cs | 96 ++++++++++--------- 1 file changed, 52 insertions(+), 44 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs index 7a5e3fb4105..1f5546a9a95 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs @@ -40,6 +40,7 @@ static void UpgradeAsset(Object rendererData, string rendererDataPath) editedAssetsCount++; } + Debug.LogWarning($"upgraded renderer {rendererData.name} at {rendererDataPath}"); } static void IterateSubAssets(string assetPath) @@ -61,58 +62,65 @@ static void IterateSubAssets(string assetPath) static void RegisterUpgraderReimport() { //Putting in delayCall will make sure AssetDatabase is ready for the FindAssets search below - EditorApplication.delayCall += () => - { - //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 - if (firstTimeUpgrade) - { - string[] allRenderers = AssetDatabase.FindAssets("t:UniversalRendererData glob:\"**/*.asset\"", null); - for (int i = 0; i < allRenderers.Length; i++) - { - string rendererDataPath = AssetDatabase.GUIDToAssetPath(allRenderers[i]); - IterateSubAssets(rendererDataPath); - } - firstTimeUpgrade = false; - } - //If there is no asset upgraded then we don't need to do the following - if (editedAssetsCount == 0) return; - //Gets all the UniversalRenderPipeline Assets in project - string[] allURPassets = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); - for (int i = 0; i < allURPassets.Length; i++) - { - string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(allURPassets[i]); - Object pipelineAsset = AssetDatabase.LoadAssetAtPath(pipelineAssetPath, typeof(Object)); - SerializedObject soAsset = new SerializedObject(pipelineAsset); - //Make some changes on the Pipeline assets - //If we don't do this, the pipeline assets won't recognise the changed renderer "type", so will give "no Default Renderer asset" error and nothing will render - SerializedProperty scriptPropertyAsset = soAsset.FindProperty("m_RequireDepthTexture"); - soAsset.Update(); - if (scriptPropertyAsset != null) - { - bool tmp = scriptPropertyAsset.boolValue; - scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes - soAsset.ApplyModifiedProperties(); - scriptPropertyAsset.boolValue = tmp; //revert the changes - soAsset.ApplyModifiedProperties(); - } - } - //Reset counter and register state - editedAssetsCount = 0; - registeredRendererUpdate = false; - }; - } + // + // { + // //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 + // if (firstTimeUpgrade) + // { + // string[] allRenderers = AssetDatabase.FindAssets("t:UniversalRendererData glob:\"**/*.asset\"", null); + // for (int i = 0; i < allRenderers.Length; i++) + // { + // string rendererDataPath = AssetDatabase.GUIDToAssetPath(allRenderers[i]); + // IterateSubAssets(rendererDataPath); + // } + // firstTimeUpgrade = false; + // } + // //If there is no asset upgraded then we don't need to do the following + // if (editedAssetsCount == 0) return; + // //Gets all the UniversalRenderPipeline Assets in project + // string[] allURPassets = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); + // for (int i = 0; i < allURPassets.Length; i++) + // { + // string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(allURPassets[i]); + // Object pipelineAsset = AssetDatabase.LoadAssetAtPath(pipelineAssetPath, typeof(Object)); + // SerializedObject soAsset = new SerializedObject(pipelineAsset); + // //Make some changes on the Pipeline assets + // //If we don't do this, the pipeline assets won't recognise the changed renderer "type", so will give "no Default Renderer asset" error and nothing will render + // SerializedProperty scriptPropertyAsset = soAsset.FindProperty("m_RequireDepthTexture"); + // soAsset.Update(); + // if (scriptPropertyAsset != null) + // { + // bool tmp = scriptPropertyAsset.boolValue; + // scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes + // soAsset.ApplyModifiedProperties(); + // scriptPropertyAsset.boolValue = tmp; //revert the changes + // soAsset.ApplyModifiedProperties(); + // } + // } + // //Reset counter and register state + // editedAssetsCount = 0; + // registeredRendererUpdate = false; + // }; + } - static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + //static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + [InitializeOnLoadMethod] + void UpgradeUniDatas() { + Debug.LogWarning($"kicked off method"); + + string[] assetGUIDS = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\""); + //Opening some projects e.g. URP Template relies on this interation for doing the asset upgrade. //This also makes sure the RendererData will be re-upgraded again if the uppgraded changes are discarded using source control. - for (int i = 0; i < importedAssets.Length; i++) + for (int i = 0; i < assetGUIDS.Length; i++) { - var assetType = AssetDatabase.GetMainAssetTypeAtPath(importedAssets[i]); + var path = AssetDatabase.GUIDToAssetPath(assetGUIDS[i]); + var assetType = AssetDatabase.GetMainAssetTypeAtPath(AssetDatabase.GUIDToAssetPath(assetGUIDS[i])); if (assetType == null) continue; if (assetType.ToString() == "UnityEngine.Rendering.Universal.ForwardRendererData") { - IterateSubAssets(importedAssets[i]); + IterateSubAssets(path); } } From 1b02846893365a073b36992c4d81b3dbca641aef Mon Sep 17 00:00:00 2001 From: Andrem Date: Thu, 19 Aug 2021 11:17:04 +0200 Subject: [PATCH 05/18] upgrader tweaks --- ...ForwardToUniversalRendererPostprocessor.cs | 123 +++++++++--------- .../Runtime/Data/UniversalRendererData.asset | 10 +- 2 files changed, 65 insertions(+), 68 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs index 1f5546a9a95..40748afd265 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs @@ -26,31 +26,30 @@ static void UpgradeAsset(Object rendererData, string rendererDataPath) //Double check to see if it's using ForwardRendererData SerializedObject so = new SerializedObject(rendererData); SerializedProperty scriptProperty = so.FindProperty("m_Script"); - if (scriptProperty == null) return; - if (scriptProperty.objectReferenceValue == fwdRendererScriptObj) - { - //Change the script to use UniversalRendererData - so.Update(); - scriptProperty.objectReferenceValue = stdRendererScriptObj; - so.ApplyModifiedProperties(); + Debug.LogWarning($"upgraded renderer {rendererData.name} at {rendererDataPath}"); - //Re-import asset - //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning - AssetDatabase.ImportAsset(rendererDataPath); + if (scriptProperty == null || scriptProperty.objectReferenceValue != fwdRendererScriptObj) return; + //Change the script to use UniversalRendererData + so.Update(); + scriptProperty.objectReferenceValue = stdRendererScriptObj; + so.ApplyModifiedProperties(); - editedAssetsCount++; - } - Debug.LogWarning($"upgraded renderer {rendererData.name} at {rendererDataPath}"); + //Re-import asset + //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning + AssetDatabase.ImportAsset(rendererDataPath); + + editedAssetsCount++; } static void IterateSubAssets(string assetPath) { //To prevent infinite importing loop caused by corrupted assets which are created from old bugs e.g. case 1214779 Object[] subAssets = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath); - for (int j = 0; j < subAssets.Length; j++) + foreach (var t in subAssets) { //Upgrade subAssets - UpgradeAsset(subAssets[j], assetPath); + UpgradeAsset(t, assetPath); + return; } //Upgrade the main Asset @@ -62,65 +61,59 @@ static void IterateSubAssets(string assetPath) static void RegisterUpgraderReimport() { //Putting in delayCall will make sure AssetDatabase is ready for the FindAssets search below - // - // { - // //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 - // if (firstTimeUpgrade) - // { - // string[] allRenderers = AssetDatabase.FindAssets("t:UniversalRendererData glob:\"**/*.asset\"", null); - // for (int i = 0; i < allRenderers.Length; i++) - // { - // string rendererDataPath = AssetDatabase.GUIDToAssetPath(allRenderers[i]); - // IterateSubAssets(rendererDataPath); - // } - // firstTimeUpgrade = false; - // } - // //If there is no asset upgraded then we don't need to do the following - // if (editedAssetsCount == 0) return; - // //Gets all the UniversalRenderPipeline Assets in project - // string[] allURPassets = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); - // for (int i = 0; i < allURPassets.Length; i++) - // { - // string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(allURPassets[i]); - // Object pipelineAsset = AssetDatabase.LoadAssetAtPath(pipelineAssetPath, typeof(Object)); - // SerializedObject soAsset = new SerializedObject(pipelineAsset); - // //Make some changes on the Pipeline assets - // //If we don't do this, the pipeline assets won't recognise the changed renderer "type", so will give "no Default Renderer asset" error and nothing will render - // SerializedProperty scriptPropertyAsset = soAsset.FindProperty("m_RequireDepthTexture"); - // soAsset.Update(); - // if (scriptPropertyAsset != null) - // { - // bool tmp = scriptPropertyAsset.boolValue; - // scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes - // soAsset.ApplyModifiedProperties(); - // scriptPropertyAsset.boolValue = tmp; //revert the changes - // soAsset.ApplyModifiedProperties(); - // } - // } - // //Reset counter and register state - // editedAssetsCount = 0; - // registeredRendererUpdate = false; - // }; + EditorApplication.delayCall += () => { + //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 + if (firstTimeUpgrade) + { + string[] allRenderers = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\"", null); + foreach (var t in allRenderers) + { + string rendererDataPath = AssetDatabase.GUIDToAssetPath(t); + IterateSubAssets(rendererDataPath); + } + firstTimeUpgrade = false; + } + //If there is no asset upgraded then we don't need to do the following + if (editedAssetsCount == 0) return; + //Gets all the UniversalRenderPipeline Assets in project + string[] allURPassets = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); + foreach (var t in allURPassets) + { + string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(t); + Object pipelineAsset = AssetDatabase.LoadAssetAtPath(pipelineAssetPath, typeof(Object)); + SerializedObject soAsset = new SerializedObject(pipelineAsset); + //Make some changes on the Pipeline assets + //If we don't do this, the pipeline assets won't recognise the changed renderer "type", so will give "no Default Renderer asset" error and nothing will render + SerializedProperty scriptPropertyAsset = soAsset.FindProperty("m_RequireDepthTexture"); + soAsset.Update(); + + if (scriptPropertyAsset == null) continue; + + bool tmp = scriptPropertyAsset.boolValue; + scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes + soAsset.ApplyModifiedProperties(); + scriptPropertyAsset.boolValue = tmp; //revert the changes + soAsset.ApplyModifiedProperties(); + } + //Reset counter and register state + editedAssetsCount = 0; + registeredRendererUpdate = false; + }; } - //static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) - [InitializeOnLoadMethod] - void UpgradeUniDatas() - { + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + { Debug.LogWarning($"kicked off method"); - string[] assetGUIDS = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\""); - //Opening some projects e.g. URP Template relies on this interation for doing the asset upgrade. //This also makes sure the RendererData will be re-upgraded again if the uppgraded changes are discarded using source control. - for (int i = 0; i < assetGUIDS.Length; i++) + foreach (var t in importedAssets) { - var path = AssetDatabase.GUIDToAssetPath(assetGUIDS[i]); - var assetType = AssetDatabase.GetMainAssetTypeAtPath(AssetDatabase.GUIDToAssetPath(assetGUIDS[i])); + var assetType = AssetDatabase.GetMainAssetTypeAtPath(t); if (assetType == null) continue; - if (assetType.ToString() == "UnityEngine.Rendering.Universal.ForwardRendererData") + if (assetType.ToString().Contains("Universal.ForwardRendererData")) { - IterateSubAssets(path); + IterateSubAssets(t); } } diff --git a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRendererData.asset b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRendererData.asset index 30fba6ab98a..629cdba2a71 100644 --- a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRendererData.asset +++ b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRendererData.asset @@ -9,13 +9,14 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: UniversalRendererData - m_EditorClassIdentifier: + m_EditorClassIdentifier: debugShaders: debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} m_RendererFeatures: [] - m_RendererFeatureMap: + m_RendererFeatureMap: + m_UseNativeRenderPass: 0 postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} shaders: @@ -45,4 +46,7 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 1 m_RenderingMode: 0 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 From 5f8c749d0139048cdb8c9a4f821ffda5842009f1 Mon Sep 17 00:00:00 2001 From: Andrem Date: Thu, 19 Aug 2021 11:35:01 +0200 Subject: [PATCH 06/18] more tweak --- .../ForwardToUniversalRendererPostprocessor.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs index 40748afd265..7ca44ba1e63 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs @@ -33,6 +33,7 @@ static void UpgradeAsset(Object rendererData, string rendererDataPath) so.Update(); scriptProperty.objectReferenceValue = stdRendererScriptObj; so.ApplyModifiedProperties(); + EditorUtility.SetDirty(rendererData); //Re-import asset //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning @@ -88,12 +89,13 @@ static void RegisterUpgraderReimport() soAsset.Update(); if (scriptPropertyAsset == null) continue; - + bool tmp = scriptPropertyAsset.boolValue; scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes soAsset.ApplyModifiedProperties(); scriptPropertyAsset.boolValue = tmp; //revert the changes soAsset.ApplyModifiedProperties(); + EditorUtility.SetDirty(pipelineAsset); } //Reset counter and register state editedAssetsCount = 0; From 8c215245ca36f3c829425a87413a0f2f8cf81ffe Mon Sep 17 00:00:00 2001 From: Andrem Date: Thu, 19 Aug 2021 13:18:17 +0200 Subject: [PATCH 07/18] upgrade tweak --- ...ForwardToUniversalRendererPostprocessor.cs | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs index 7ca44ba1e63..8a6e555e4f5 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs @@ -15,9 +15,9 @@ class ForwardToUniversalRendererPostprocessor : AssetPostprocessor static string stdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("de640fe3d0db1804a85f9fc8f5cadab6"); //UniversalRendererData.cs static Object stdRendererScriptObj; - static void UpgradeAsset(Object rendererData, string rendererDataPath) + static bool UpgradeAsset(Object rendererData, string rendererDataPath) { - if (rendererData == null) return; + if (rendererData == null) return false; //Gets the script file objects if (!fwdRendererScriptObj) fwdRendererScriptObj = AssetDatabase.LoadAssetAtPath(fwdRendererScriptFilePath, typeof(Object)); @@ -28,18 +28,18 @@ static void UpgradeAsset(Object rendererData, string rendererDataPath) SerializedProperty scriptProperty = so.FindProperty("m_Script"); Debug.LogWarning($"upgraded renderer {rendererData.name} at {rendererDataPath}"); - if (scriptProperty == null || scriptProperty.objectReferenceValue != fwdRendererScriptObj) return; + if (scriptProperty == null || scriptProperty.objectReferenceValue != fwdRendererScriptObj) return false; //Change the script to use UniversalRendererData so.Update(); scriptProperty.objectReferenceValue = stdRendererScriptObj; so.ApplyModifiedProperties(); - EditorUtility.SetDirty(rendererData); //Re-import asset //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning AssetDatabase.ImportAsset(rendererDataPath); editedAssetsCount++; + return true; } static void IterateSubAssets(string assetPath) @@ -49,8 +49,8 @@ static void IterateSubAssets(string assetPath) foreach (var t in subAssets) { //Upgrade subAssets - UpgradeAsset(t, assetPath); - return; + if(UpgradeAsset(t, assetPath)) + return; } //Upgrade the main Asset @@ -61,6 +61,21 @@ static void IterateSubAssets(string assetPath) [InitializeOnLoadMethod] static void RegisterUpgraderReimport() { + Debug.LogWarning($"kicked off upgrader"); + + string[] allRenderers = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\"", null); + + foreach (var t in allRenderers) + { + string rendererDataPath = AssetDatabase.GUIDToAssetPath(t); + var assetType = AssetDatabase.GetMainAssetTypeAtPath(rendererDataPath); + if (assetType == null) continue; + if (assetType.ToString().Contains("Universal.ForwardRendererData")) + { + IterateSubAssets(rendererDataPath); + } + } + //Putting in delayCall will make sure AssetDatabase is ready for the FindAssets search below EditorApplication.delayCall += () => { //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 @@ -103,7 +118,7 @@ static void RegisterUpgraderReimport() }; } - static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + /*static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { Debug.LogWarning($"kicked off method"); @@ -127,6 +142,6 @@ static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAsse RegisterUpgraderReimport(); registeredRendererUpdate = true; } - } + }*/ } } From d39bdfba825535bf7daea8966eca2208dcd3efe1 Mon Sep 17 00:00:00 2001 From: Andrem Date: Thu, 19 Aug 2021 15:16:43 +0200 Subject: [PATCH 08/18] create a dummy UniversalRenderer for the pipeline in the initial frame --- .../ForwardToUniversalRendererPostprocessor.cs | 15 +++++++++------ .../Runtime/ForwardRendererData.cs | 5 ++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs index 8a6e555e4f5..fbbb7dca687 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs @@ -5,7 +5,8 @@ namespace UnityEditor.Rendering.Universal { - class ForwardToUniversalRendererPostprocessor : AssetPostprocessor + [InitializeOnLoad] + class ForwardToUniversalRendererPostprocessor { static bool firstTimeUpgrade = true; static bool registeredRendererUpdate = false; @@ -58,8 +59,7 @@ static void IterateSubAssets(string assetPath) UpgradeAsset(rendererData, assetPath); } - [InitializeOnLoadMethod] - static void RegisterUpgraderReimport() + static ForwardToUniversalRendererPostprocessor() { Debug.LogWarning($"kicked off upgrader"); @@ -91,8 +91,10 @@ static void RegisterUpgraderReimport() } //If there is no asset upgraded then we don't need to do the following if (editedAssetsCount == 0) return; - //Gets all the UniversalRenderPipeline Assets in project - string[] allURPassets = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); + + //Gets all the UniversalRenderPipeline Assets in project + string[] allURPassets = + AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); foreach (var t in allURPassets) { string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(t); @@ -112,7 +114,8 @@ static void RegisterUpgraderReimport() soAsset.ApplyModifiedProperties(); EditorUtility.SetDirty(pipelineAsset); } - //Reset counter and register state + + //Reset counter and register state editedAssetsCount = 0; registeredRendererUpdate = false; }; diff --git a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs index 2fbdb9f28d4..18721921381 100644 --- a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs +++ b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs @@ -1,6 +1,7 @@ #if UNITY_EDITOR using UnityEditor; using UnityEditor.ProjectWindowCallback; +using UnityEditor.Rendering.Universal; #endif using System; @@ -76,7 +77,9 @@ public sealed class ShaderResources protected override ScriptableRenderer Create() { - throw new NotSupportedException(k_ErrorMessage); + var universalRendererData = CreateInstance(); + var rendererData = new UniversalRenderer(universalRendererData); + return rendererData; } public LayerMask opaqueLayerMask From a3bda307a3bfe99ce3f5133606c6b1a25e2056da Mon Sep 17 00:00:00 2001 From: Andrem Date: Thu, 19 Aug 2021 15:39:18 +0200 Subject: [PATCH 09/18] back to null renderer --- .../Runtime/Data/UniversalRenderPipelineAsset.cs | 4 ++++ .../Runtime/ForwardRendererData.cs | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs index de87eef7084..3fe59963ba4 100644 --- a/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs +++ b/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs @@ -364,6 +364,10 @@ protected override RenderPipeline CreatePipeline() if (k_AssetPreviousVersion != k_AssetVersion) return null; + if (m_RendererDataList[m_DefaultRendererIndex].GetType().ToString() + .Contains("Universal.ForwardRendererData")) + return null; + Debug.LogError( $"Default Renderer is missing, make sure there is a Renderer assigned as the default on the current Universal RP asset:{UniversalRenderPipeline.asset.name}", this); diff --git a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs index 18721921381..640f3f9b0de 100644 --- a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs +++ b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs @@ -77,9 +77,8 @@ public sealed class ShaderResources protected override ScriptableRenderer Create() { - var universalRendererData = CreateInstance(); - var rendererData = new UniversalRenderer(universalRendererData); - return rendererData; + Debug.Log("Forward Renderer Data has been deprecated."); + return null; } public LayerMask opaqueLayerMask From 8aac05742d50d6d152cd7c2c774c28977de97e85 Mon Sep 17 00:00:00 2001 From: Andrem Date: Thu, 19 Aug 2021 15:50:25 +0200 Subject: [PATCH 10/18] warning when trying to render with forward renderer data --- ...ForwardToUniversalRendererPostprocessor.cs | 28 ------------------- .../Runtime/ForwardRendererData.cs | 2 +- 2 files changed, 1 insertion(+), 29 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs index fbbb7dca687..25eb23b579a 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs @@ -61,8 +61,6 @@ static void IterateSubAssets(string assetPath) static ForwardToUniversalRendererPostprocessor() { - Debug.LogWarning($"kicked off upgrader"); - string[] allRenderers = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\"", null); foreach (var t in allRenderers) @@ -120,31 +118,5 @@ static ForwardToUniversalRendererPostprocessor() registeredRendererUpdate = false; }; } - - /*static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) - { - Debug.LogWarning($"kicked off method"); - - //Opening some projects e.g. URP Template relies on this interation for doing the asset upgrade. - //This also makes sure the RendererData will be re-upgraded again if the uppgraded changes are discarded using source control. - foreach (var t in importedAssets) - { - var assetType = AssetDatabase.GetMainAssetTypeAtPath(t); - if (assetType == null) continue; - if (assetType.ToString().Contains("Universal.ForwardRendererData")) - { - IterateSubAssets(t); - } - } - - //If there are assets being upgraded then we need to trigger an update on the Pipeline assets to avoid "no Default Renderer asset" error and making rendering fine again. - //However at this moment the Pipeline assets are not yet updated, so the error might still happen in the case of discarded upgrade changes, but it won't harm rendering - //This makes sure we re-register the delayCall only once - if (!registeredRendererUpdate && editedAssetsCount > 0) - { - RegisterUpgraderReimport(); - registeredRendererUpdate = true; - } - }*/ } } diff --git a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs index 640f3f9b0de..c9dd459dbe2 100644 --- a/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs +++ b/com.unity.render-pipelines.universal/Runtime/ForwardRendererData.cs @@ -77,7 +77,7 @@ public sealed class ShaderResources protected override ScriptableRenderer Create() { - Debug.Log("Forward Renderer Data has been deprecated."); + Debug.LogWarning($"Forward Renderer Data has been deprecated, {name} will be upgraded to a {nameof(UniversalRendererData)}."); return null; } From 1e9a0f00389b7d82ad1b4e0116fb08896e2950d0 Mon Sep 17 00:00:00 2001 From: Andrem Date: Thu, 19 Aug 2021 16:12:17 +0200 Subject: [PATCH 11/18] some clean up and removal of unused variable --- .../ForwardToUniversalRendererPostprocessor.cs | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs index 25eb23b579a..562bafc5d35 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs @@ -1,7 +1,5 @@ - using UnityEditor; + using System.Linq; using UnityEngine; - using UnityEngine.Rendering; - using UnityEngine.Rendering.Universal; namespace UnityEditor.Rendering.Universal { @@ -9,7 +7,6 @@ namespace UnityEditor.Rendering.Universal class ForwardToUniversalRendererPostprocessor { static bool firstTimeUpgrade = true; - static bool registeredRendererUpdate = false; static int editedAssetsCount = 0; static string fwdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("f971995892640ec4f807ef396269e91e"); //ForwardRendererData.cs static Object fwdRendererScriptObj; @@ -47,12 +44,7 @@ static void IterateSubAssets(string assetPath) { //To prevent infinite importing loop caused by corrupted assets which are created from old bugs e.g. case 1214779 Object[] subAssets = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath); - foreach (var t in subAssets) - { - //Upgrade subAssets - if(UpgradeAsset(t, assetPath)) - return; - } + if (subAssets.Any(t => UpgradeAsset(t, assetPath))) return; //Upgrade the main Asset Object rendererData = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object)); @@ -87,7 +79,7 @@ static ForwardToUniversalRendererPostprocessor() } firstTimeUpgrade = false; } - //If there is no asset upgraded then we don't need to do the following + //If there is no asset upgraded then we don't need to do the following if (editedAssetsCount == 0) return; //Gets all the UniversalRenderPipeline Assets in project @@ -112,10 +104,8 @@ static ForwardToUniversalRendererPostprocessor() soAsset.ApplyModifiedProperties(); EditorUtility.SetDirty(pipelineAsset); } - //Reset counter and register state editedAssetsCount = 0; - registeredRendererUpdate = false; }; } } From 790b6e8f344b554353861cf8b4affdbf3dfbca67 Mon Sep 17 00:00:00 2001 From: Andrem Date: Thu, 19 Aug 2021 16:28:44 +0200 Subject: [PATCH 12/18] cleanup and rename --- ...ostprocessor.cs => RendererDataPatcher.cs} | 92 +++++++++++-------- ...or.cs.meta => RendererDataPatcher.cs.meta} | 2 +- 2 files changed, 56 insertions(+), 38 deletions(-) rename com.unity.render-pipelines.universal/Editor/{AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs => RendererDataPatcher.cs} (91%) rename com.unity.render-pipelines.universal/Editor/{AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs.meta => RendererDataPatcher.cs.meta} (83%) diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs similarity index 91% rename from com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs rename to com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs index 562bafc5d35..c97d461f9ad 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs +++ b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs @@ -4,8 +4,11 @@ namespace UnityEditor.Rendering.Universal { [InitializeOnLoad] - class ForwardToUniversalRendererPostprocessor + class RendererDataPatcher { + + #region Universal Renderer Patcher Params + static bool firstTimeUpgrade = true; static int editedAssetsCount = 0; static string fwdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("f971995892640ec4f807ef396269e91e"); //ForwardRendererData.cs @@ -13,45 +16,19 @@ class ForwardToUniversalRendererPostprocessor static string stdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("de640fe3d0db1804a85f9fc8f5cadab6"); //UniversalRendererData.cs static Object stdRendererScriptObj; - static bool UpgradeAsset(Object rendererData, string rendererDataPath) - { - if (rendererData == null) return false; - - //Gets the script file objects - if (!fwdRendererScriptObj) fwdRendererScriptObj = AssetDatabase.LoadAssetAtPath(fwdRendererScriptFilePath, typeof(Object)); - if (!stdRendererScriptObj) stdRendererScriptObj = AssetDatabase.LoadAssetAtPath(stdRendererScriptFilePath, typeof(Object)); - - //Double check to see if it's using ForwardRendererData - SerializedObject so = new SerializedObject(rendererData); - SerializedProperty scriptProperty = so.FindProperty("m_Script"); - Debug.LogWarning($"upgraded renderer {rendererData.name} at {rendererDataPath}"); - - if (scriptProperty == null || scriptProperty.objectReferenceValue != fwdRendererScriptObj) return false; - //Change the script to use UniversalRendererData - so.Update(); - scriptProperty.objectReferenceValue = stdRendererScriptObj; - so.ApplyModifiedProperties(); + #endregion - //Re-import asset - //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning - AssetDatabase.ImportAsset(rendererDataPath); - - editedAssetsCount++; - return true; - } - - static void IterateSubAssets(string assetPath) + static RendererDataPatcher() { - //To prevent infinite importing loop caused by corrupted assets which are created from old bugs e.g. case 1214779 - Object[] subAssets = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath); - if (subAssets.Any(t => UpgradeAsset(t, assetPath))) return; - - //Upgrade the main Asset - Object rendererData = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object)); - UpgradeAsset(rendererData, assetPath); + UniversalRendererPatcher(); } - static ForwardToUniversalRendererPostprocessor() + #region Universal Renderer Patcher + + /// + /// Patcher for fixing UniversalRendererData Scriptable Objects that were made in Unity 2021.2 Alpha & Beta + /// + static void UniversalRendererPatcher() { string[] allRenderers = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\"", null); @@ -107,6 +84,47 @@ static ForwardToUniversalRendererPostprocessor() //Reset counter and register state editedAssetsCount = 0; }; - } + } + + static bool UpgradeAsset(Object rendererData, string rendererDataPath) + { + if (rendererData == null) return false; + + //Gets the script file objects + if (!fwdRendererScriptObj) fwdRendererScriptObj = AssetDatabase.LoadAssetAtPath(fwdRendererScriptFilePath, typeof(Object)); + if (!stdRendererScriptObj) stdRendererScriptObj = AssetDatabase.LoadAssetAtPath(stdRendererScriptFilePath, typeof(Object)); + + //Double check to see if it's using ForwardRendererData + SerializedObject so = new SerializedObject(rendererData); + SerializedProperty scriptProperty = so.FindProperty("m_Script"); + Debug.LogWarning($"upgraded renderer {rendererData.name} at {rendererDataPath}"); + + if (scriptProperty == null || scriptProperty.objectReferenceValue != fwdRendererScriptObj) return false; + //Change the script to use UniversalRendererData + so.Update(); + scriptProperty.objectReferenceValue = stdRendererScriptObj; + so.ApplyModifiedProperties(); + + //Re-import asset + //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning + AssetDatabase.ImportAsset(rendererDataPath); + + editedAssetsCount++; + return true; + } + + static void IterateSubAssets(string assetPath) + { + //To prevent infinite importing loop caused by corrupted assets which are created from old bugs e.g. case 1214779 + Object[] subAssets = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath); + if (subAssets.Any(t => UpgradeAsset(t, assetPath))) return; + + //Upgrade the main Asset + Object rendererData = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object)); + UpgradeAsset(rendererData, assetPath); + } + + #endregion + } } diff --git a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs.meta b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs.meta similarity index 83% rename from com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs.meta rename to com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs.meta index cfe585b3271..0c58403ea89 100644 --- a/com.unity.render-pipelines.universal/Editor/AssetPostProcessors/ForwardToUniversalRendererPostprocessor.cs.meta +++ b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d0361945dd96b944eb61c43031ba573b +guid: f2b4fa84bdbc14eb5a4ead2c4ce41fb3 MonoImporter: externalObjects: {} serializedVersion: 2 From 0f029e3ed82ece0043efb9224e78c2bf63935db2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elvar=20O=CC=88rn=20Unn=C3=BEo=CC=81rsson?= Date: Thu, 19 Aug 2021 16:40:10 +0200 Subject: [PATCH 13/18] Changes after running the formatter locally --- .../Editor/RendererDataPatcher.cs | 258 +++++++++--------- 1 file changed, 128 insertions(+), 130 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs index c97d461f9ad..6baaa8244b0 100644 --- a/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs +++ b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs @@ -1,130 +1,128 @@ - using System.Linq; - using UnityEngine; - - namespace UnityEditor.Rendering.Universal - { - [InitializeOnLoad] - class RendererDataPatcher - { - - #region Universal Renderer Patcher Params - - static bool firstTimeUpgrade = true; - static int editedAssetsCount = 0; - static string fwdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("f971995892640ec4f807ef396269e91e"); //ForwardRendererData.cs - static Object fwdRendererScriptObj; - static string stdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("de640fe3d0db1804a85f9fc8f5cadab6"); //UniversalRendererData.cs - static Object stdRendererScriptObj; - - #endregion - - static RendererDataPatcher() - { - UniversalRendererPatcher(); - } - - #region Universal Renderer Patcher - - /// - /// Patcher for fixing UniversalRendererData Scriptable Objects that were made in Unity 2021.2 Alpha & Beta - /// - static void UniversalRendererPatcher() - { - string[] allRenderers = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\"", null); - - foreach (var t in allRenderers) - { - string rendererDataPath = AssetDatabase.GUIDToAssetPath(t); - var assetType = AssetDatabase.GetMainAssetTypeAtPath(rendererDataPath); - if (assetType == null) continue; - if (assetType.ToString().Contains("Universal.ForwardRendererData")) - { - IterateSubAssets(rendererDataPath); - } - } - - //Putting in delayCall will make sure AssetDatabase is ready for the FindAssets search below - EditorApplication.delayCall += () => { - //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 - if (firstTimeUpgrade) - { - string[] allRenderers = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\"", null); - foreach (var t in allRenderers) - { - string rendererDataPath = AssetDatabase.GUIDToAssetPath(t); - IterateSubAssets(rendererDataPath); - } - firstTimeUpgrade = false; - } - //If there is no asset upgraded then we don't need to do the following - if (editedAssetsCount == 0) return; - - //Gets all the UniversalRenderPipeline Assets in project - string[] allURPassets = - AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); - foreach (var t in allURPassets) - { - string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(t); - Object pipelineAsset = AssetDatabase.LoadAssetAtPath(pipelineAssetPath, typeof(Object)); - SerializedObject soAsset = new SerializedObject(pipelineAsset); - //Make some changes on the Pipeline assets - //If we don't do this, the pipeline assets won't recognise the changed renderer "type", so will give "no Default Renderer asset" error and nothing will render - SerializedProperty scriptPropertyAsset = soAsset.FindProperty("m_RequireDepthTexture"); - soAsset.Update(); - - if (scriptPropertyAsset == null) continue; - - bool tmp = scriptPropertyAsset.boolValue; - scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes - soAsset.ApplyModifiedProperties(); - scriptPropertyAsset.boolValue = tmp; //revert the changes - soAsset.ApplyModifiedProperties(); - EditorUtility.SetDirty(pipelineAsset); - } - //Reset counter and register state - editedAssetsCount = 0; - }; - } - - static bool UpgradeAsset(Object rendererData, string rendererDataPath) - { - if (rendererData == null) return false; - - //Gets the script file objects - if (!fwdRendererScriptObj) fwdRendererScriptObj = AssetDatabase.LoadAssetAtPath(fwdRendererScriptFilePath, typeof(Object)); - if (!stdRendererScriptObj) stdRendererScriptObj = AssetDatabase.LoadAssetAtPath(stdRendererScriptFilePath, typeof(Object)); - - //Double check to see if it's using ForwardRendererData - SerializedObject so = new SerializedObject(rendererData); - SerializedProperty scriptProperty = so.FindProperty("m_Script"); - Debug.LogWarning($"upgraded renderer {rendererData.name} at {rendererDataPath}"); - - if (scriptProperty == null || scriptProperty.objectReferenceValue != fwdRendererScriptObj) return false; - //Change the script to use UniversalRendererData - so.Update(); - scriptProperty.objectReferenceValue = stdRendererScriptObj; - so.ApplyModifiedProperties(); - - //Re-import asset - //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning - AssetDatabase.ImportAsset(rendererDataPath); - - editedAssetsCount++; - return true; - } - - static void IterateSubAssets(string assetPath) - { - //To prevent infinite importing loop caused by corrupted assets which are created from old bugs e.g. case 1214779 - Object[] subAssets = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath); - if (subAssets.Any(t => UpgradeAsset(t, assetPath))) return; - - //Upgrade the main Asset - Object rendererData = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object)); - UpgradeAsset(rendererData, assetPath); - } - - #endregion - - } - } +using System.Linq; +using UnityEngine; + +namespace UnityEditor.Rendering.Universal +{ + [InitializeOnLoad] + class RendererDataPatcher + { + #region Universal Renderer Patcher Params + + static bool firstTimeUpgrade = true; + static int editedAssetsCount = 0; + static string fwdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("f971995892640ec4f807ef396269e91e"); //ForwardRendererData.cs + static Object fwdRendererScriptObj; + static string stdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("de640fe3d0db1804a85f9fc8f5cadab6"); //UniversalRendererData.cs + static Object stdRendererScriptObj; + + #endregion + + static RendererDataPatcher() + { + UniversalRendererPatcher(); + } + + #region Universal Renderer Patcher + + /// + /// Patcher for fixing UniversalRendererData Scriptable Objects that were made in Unity 2021.2 Alpha & Beta + /// + static void UniversalRendererPatcher() + { + string[] allRenderers = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\"", null); + + foreach (var t in allRenderers) + { + string rendererDataPath = AssetDatabase.GUIDToAssetPath(t); + var assetType = AssetDatabase.GetMainAssetTypeAtPath(rendererDataPath); + if (assetType == null) continue; + if (assetType.ToString().Contains("Universal.ForwardRendererData")) + { + IterateSubAssets(rendererDataPath); + } + } + + //Putting in delayCall will make sure AssetDatabase is ready for the FindAssets search below + EditorApplication.delayCall += () => { + //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 + if (firstTimeUpgrade) + { + string[] allRenderers = AssetDatabase.FindAssets("t:ForwardRendererData glob:\"**/*.asset\"", null); + foreach (var t in allRenderers) + { + string rendererDataPath = AssetDatabase.GUIDToAssetPath(t); + IterateSubAssets(rendererDataPath); + } + firstTimeUpgrade = false; + } + //If there is no asset upgraded then we don't need to do the following + if (editedAssetsCount == 0) return; + + //Gets all the UniversalRenderPipeline Assets in project + string[] allURPassets = + AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset glob:\"**/*.asset\"", null); + foreach (var t in allURPassets) + { + string pipelineAssetPath = AssetDatabase.GUIDToAssetPath(t); + Object pipelineAsset = AssetDatabase.LoadAssetAtPath(pipelineAssetPath, typeof(Object)); + SerializedObject soAsset = new SerializedObject(pipelineAsset); + //Make some changes on the Pipeline assets + //If we don't do this, the pipeline assets won't recognise the changed renderer "type", so will give "no Default Renderer asset" error and nothing will render + SerializedProperty scriptPropertyAsset = soAsset.FindProperty("m_RequireDepthTexture"); + soAsset.Update(); + + if (scriptPropertyAsset == null) continue; + + bool tmp = scriptPropertyAsset.boolValue; + scriptPropertyAsset.boolValue = !scriptPropertyAsset.boolValue; //make the changes + soAsset.ApplyModifiedProperties(); + scriptPropertyAsset.boolValue = tmp; //revert the changes + soAsset.ApplyModifiedProperties(); + EditorUtility.SetDirty(pipelineAsset); + } + //Reset counter and register state + editedAssetsCount = 0; + }; + } + + static bool UpgradeAsset(Object rendererData, string rendererDataPath) + { + if (rendererData == null) return false; + + //Gets the script file objects + if (!fwdRendererScriptObj) fwdRendererScriptObj = AssetDatabase.LoadAssetAtPath(fwdRendererScriptFilePath, typeof(Object)); + if (!stdRendererScriptObj) stdRendererScriptObj = AssetDatabase.LoadAssetAtPath(stdRendererScriptFilePath, typeof(Object)); + + //Double check to see if it's using ForwardRendererData + SerializedObject so = new SerializedObject(rendererData); + SerializedProperty scriptProperty = so.FindProperty("m_Script"); + Debug.LogWarning($"upgraded renderer {rendererData.name} at {rendererDataPath}"); + + if (scriptProperty == null || scriptProperty.objectReferenceValue != fwdRendererScriptObj) return false; + //Change the script to use UniversalRendererData + so.Update(); + scriptProperty.objectReferenceValue = stdRendererScriptObj; + so.ApplyModifiedProperties(); + + //Re-import asset + //This prevents the "Importer(NativeFormatImporter) generated inconsistent result" warning + AssetDatabase.ImportAsset(rendererDataPath); + + editedAssetsCount++; + return true; + } + + static void IterateSubAssets(string assetPath) + { + //To prevent infinite importing loop caused by corrupted assets which are created from old bugs e.g. case 1214779 + Object[] subAssets = AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath); + if (subAssets.Any(t => UpgradeAsset(t, assetPath))) return; + + //Upgrade the main Asset + Object rendererData = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Object)); + UpgradeAsset(rendererData, assetPath); + } + + #endregion + } +} From 52818872ee24c5f168c431b681857a275cf452a7 Mon Sep 17 00:00:00 2001 From: Andrem Date: Thu, 19 Aug 2021 17:03:05 +0200 Subject: [PATCH 14/18] changed std > universal to be more clear --- .../Editor/RendererDataPatcher.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs index 6baaa8244b0..66288ac97f8 100644 --- a/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs +++ b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs @@ -12,8 +12,8 @@ class RendererDataPatcher static int editedAssetsCount = 0; static string fwdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("f971995892640ec4f807ef396269e91e"); //ForwardRendererData.cs static Object fwdRendererScriptObj; - static string stdRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("de640fe3d0db1804a85f9fc8f5cadab6"); //UniversalRendererData.cs - static Object stdRendererScriptObj; + static string universalRendererScriptFilePath = AssetDatabase.GUIDToAssetPath("de640fe3d0db1804a85f9fc8f5cadab6"); //UniversalRendererData.cs + static Object universalRendererScriptObj; #endregion @@ -91,7 +91,7 @@ static bool UpgradeAsset(Object rendererData, string rendererDataPath) //Gets the script file objects if (!fwdRendererScriptObj) fwdRendererScriptObj = AssetDatabase.LoadAssetAtPath(fwdRendererScriptFilePath, typeof(Object)); - if (!stdRendererScriptObj) stdRendererScriptObj = AssetDatabase.LoadAssetAtPath(stdRendererScriptFilePath, typeof(Object)); + if (!universalRendererScriptObj) universalRendererScriptObj = AssetDatabase.LoadAssetAtPath(universalRendererScriptFilePath, typeof(Object)); //Double check to see if it's using ForwardRendererData SerializedObject so = new SerializedObject(rendererData); @@ -101,7 +101,7 @@ static bool UpgradeAsset(Object rendererData, string rendererDataPath) if (scriptProperty == null || scriptProperty.objectReferenceValue != fwdRendererScriptObj) return false; //Change the script to use UniversalRendererData so.Update(); - scriptProperty.objectReferenceValue = stdRendererScriptObj; + scriptProperty.objectReferenceValue = universalRendererScriptObj; so.ApplyModifiedProperties(); //Re-import asset From 8976c84b32364feacbdf47e9b06f343eff091f80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20McGrail?= Date: Mon, 23 Aug 2021 15:41:52 +0200 Subject: [PATCH 15/18] tweaked renderer message, fixed warning appearing for renderer features and added an additional warning after all upgrades to recommend user to save project --- .../Editor/RendererDataPatcher.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs index 66288ac97f8..ea7c6f04c1d 100644 --- a/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs +++ b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs @@ -81,6 +81,7 @@ static void UniversalRendererPatcher() EditorUtility.SetDirty(pipelineAsset); } //Reset counter and register state + Debug.LogWarning($"URP Renderer(s) have been upgraded, please remember to save your project to write the upgrade to disk."); editedAssetsCount = 0; }; } @@ -96,9 +97,10 @@ static bool UpgradeAsset(Object rendererData, string rendererDataPath) //Double check to see if it's using ForwardRendererData SerializedObject so = new SerializedObject(rendererData); SerializedProperty scriptProperty = so.FindProperty("m_Script"); - Debug.LogWarning($"upgraded renderer {rendererData.name} at {rendererDataPath}"); if (scriptProperty == null || scriptProperty.objectReferenceValue != fwdRendererScriptObj) return false; + //Write debug warning out before renderer is switched and data is nullified + Debug.LogWarning($"Upgraded renderer {rendererData.name} at {rendererDataPath}.\nYou should only see this if you are upgrading from 2021.2 Alpha/Beta cycle."); //Change the script to use UniversalRendererData so.Update(); scriptProperty.objectReferenceValue = universalRendererScriptObj; From 66d36f8dbb925b36d40f12ccfebe5808d71edfd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20McGrail?= Date: Tue, 24 Aug 2021 13:29:52 +0200 Subject: [PATCH 16/18] formatter changes --- .../Editor/RendererDataPatcher.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs index ea7c6f04c1d..6295cdf2a60 100644 --- a/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs +++ b/com.unity.render-pipelines.universal/Editor/RendererDataPatcher.cs @@ -43,7 +43,8 @@ static void UniversalRendererPatcher() } //Putting in delayCall will make sure AssetDatabase is ready for the FindAssets search below - EditorApplication.delayCall += () => { + EditorApplication.delayCall += () => + { //This helps to scan the RendererData Assets which are subAssets caused by case 1214779 if (firstTimeUpgrade) { From ba5acac7c65a185b19c68a862c0661ea4ff32f2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20McGrail?= Date: Thu, 26 Aug 2021 13:32:09 +0200 Subject: [PATCH 17/18] Updated test project Renderers --- .../Assets/CommonAssets/ForwardRenderer.asset | 4 ++- .../CommonAssets/DeferredRenderer.asset | 2 +- .../DeferredRenderer_AccurateGBuffer.asset | 2 +- .../DeferredRenderer_RenderPass.asset | 2 +- .../Assets/CommonAssets/ForwardRenderer.asset | 6 ++--- .../ForwardRenderer_RenderPass.asset | 2 +- .../UniversalRPAssetBackBuffer.asset | 5 ++++ .../CallbackTestRenderer.asset | 6 +++-- .../Test_126_Renderer.asset | 6 +++-- .../Test_126_Renderer_RenderPass.asset | 2 +- .../Renderers/DepthNormalsRenderer.asset | 6 +++-- .../200_Assets/Renderers/DepthRenderer.asset | 6 +++-- .../Renderers/SSAO_DeferredRenderer.asset | 6 +++-- .../SSAO_DeferredRenderer_RenderPass.asset | 2 +- .../Renderers/SSAO_DepthNormalRenderer.asset | 6 +++-- .../Renderers/SSAO_DepthRenderer.asset | 6 +++-- .../MotionVectorRenderer.asset | 2 +- .../Scenes/230_Decals/DBufferDeferred.asset | 2 +- .../Scenes/230_Decals/DBufferForward.asset | 2 +- .../230_Decals/ScreenSpaceDeferred.asset | 2 +- .../230_Decals/ScreenSpaceForward.asset | 2 +- .../DrawNormalsRenderer.asset | 2 +- .../CommonAssets/DeferredRenderer.asset | 12 ++++++++- .../Assets/CommonAssets/ForwardRenderer.asset | 12 ++++++++- .../CommonAssets/UniversalRPAsset.asset | 4 +++ .../UniversalRPAssetBackBuffer.asset | 7 ++++++ .../CommonAssets/DeferredRenderer.asset | 16 +++++++++--- .../Assets/CommonAssets/ForwardRenderer.asset | 16 +++++++++--- ...niversalRenderPipelineGlobalSettings.asset | 25 +++++++++++++++++++ ...salRenderPipelineGlobalSettings.asset.meta | 8 ++++++ ...niversalRenderPipelineGlobalSettings.asset | 25 +++++++++++++++++++ ...salRenderPipelineGlobalSettings.asset.meta | 8 ++++++ 32 files changed, 176 insertions(+), 38 deletions(-) create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/UniversalRenderPipelineGlobalSettings.asset create mode 100644 TestProjects/UniversalGraphicsTest_PostPro/Assets/UniversalRenderPipelineGlobalSettings.asset.meta create mode 100644 TestProjects/UniversalGraphicsTest_Terrain/Assets/UniversalRenderPipelineGlobalSettings.asset create mode 100644 TestProjects/UniversalGraphicsTest_Terrain/Assets/UniversalRenderPipelineGlobalSettings.asset.meta diff --git a/TestProjects/UniversalGraphicsTest_2D/Assets/CommonAssets/ForwardRenderer.asset b/TestProjects/UniversalGraphicsTest_2D/Assets/CommonAssets/ForwardRenderer.asset index 9497f240aa3..224250dfc9c 100644 --- a/TestProjects/UniversalGraphicsTest_2D/Assets/CommonAssets/ForwardRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_2D/Assets/CommonAssets/ForwardRenderer.asset @@ -9,7 +9,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: ForwardRenderer m_EditorClassIdentifier: debugShaders: @@ -32,6 +32,8 @@ MonoBehaviour: coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3} + cameraMotionVector: {fileID: 0} + objectMotionVector: {fileID: 0} m_OpaqueLayerMask: serializedVersion: 2 m_Bits: 4294967295 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer.asset index b6bd97a9212..e4537e82890 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer.asset @@ -9,7 +9,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: DeferredRenderer m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer_AccurateGBuffer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer_AccurateGBuffer.asset index 737d22640de..a606b08e1fe 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer_AccurateGBuffer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer_AccurateGBuffer.asset @@ -9,7 +9,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: DeferredRenderer_AccurateGBuffer m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer_RenderPass.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer_RenderPass.asset index 060ddc6c724..1a5e8508383 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer_RenderPass.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/DeferredRenderer_RenderPass.asset @@ -9,7 +9,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: DeferredRenderer_RenderPass m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/ForwardRenderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/ForwardRenderer.asset index bf65e7b26d3..a4e7b67d147 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/ForwardRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/ForwardRenderer.asset @@ -9,11 +9,10 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: ForwardRenderer m_EditorClassIdentifier: debugShaders: - NumberFont: {fileID: 2800000, guid: f06a37246bbff114da01277637ca397e, type: 3} debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} m_RendererFeatures: [] @@ -52,6 +51,7 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 1 m_RenderingMode: 0 - m_DepthPrepassMode: 1 m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/ForwardRenderer_RenderPass.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/ForwardRenderer_RenderPass.asset index 86d545cb9c6..09a67268d83 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/ForwardRenderer_RenderPass.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/ForwardRenderer_RenderPass.asset @@ -9,7 +9,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: ForwardRenderer_RenderPass m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAssetBackBuffer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAssetBackBuffer.asset index 6c544985d58..14825a7d3ce 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAssetBackBuffer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/CommonAssets/UniversalRPAssetBackBuffer.asset @@ -39,6 +39,7 @@ MonoBehaviour: m_RequireOpaqueTexture: 0 m_OpaqueDownsampling: 1 m_SupportsTerrainHoles: 0 + m_StoreActionsOptimization: 0 m_SupportsHDR: 0 m_MSAA: 1 m_RenderScale: 1 @@ -63,9 +64,12 @@ MonoBehaviour: m_ShadowDepthBias: 1 m_ShadowNormalBias: 1 m_SoftShadowsSupported: 1 + 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 @@ -77,4 +81,5 @@ MonoBehaviour: m_MaxPixelLights: 4 m_ShadowAtlasResolution: 2048 m_ShaderVariantLogLevel: 0 + m_VolumeFrameworkUpdateMode: 0 m_ShadowCascades: 2 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/052_LWCallbacks/CallbackTestRenderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/052_LWCallbacks/CallbackTestRenderer.asset index 37b19bda478..c54631bf50e 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/052_LWCallbacks/CallbackTestRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/052_LWCallbacks/CallbackTestRenderer.asset @@ -9,11 +9,10 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: CallbackTestRenderer m_EditorClassIdentifier: debugShaders: - NumberFont: {fileID: 2800000, guid: f06a37246bbff114da01277637ca397e, type: 3} debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} m_RendererFeatures: @@ -53,7 +52,10 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 1 m_RenderingMode: 0 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 --- !u!114 &5740704530427184019 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/126_RendererFeatureActive/Test_126_Renderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/126_RendererFeatureActive/Test_126_Renderer.asset index 0f4bdfb8ead..ef3c669dabc 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/126_RendererFeatureActive/Test_126_Renderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/126_RendererFeatureActive/Test_126_Renderer.asset @@ -87,11 +87,10 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: Test_126_Renderer m_EditorClassIdentifier: debugShaders: - NumberFont: {fileID: 2800000, guid: f06a37246bbff114da01277637ca397e, type: 3} debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} m_RendererFeatures: @@ -132,4 +131,7 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 1 m_RenderingMode: 0 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/126_RendererFeatureActive/Test_126_Renderer_RenderPass.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/126_RendererFeatureActive/Test_126_Renderer_RenderPass.asset index 7231cfeeb5c..667cb214ff3 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/126_RendererFeatureActive/Test_126_Renderer_RenderPass.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/126_RendererFeatureActive/Test_126_Renderer_RenderPass.asset @@ -87,7 +87,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: Test_126_Renderer_RenderPass m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/DepthNormalsRenderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/DepthNormalsRenderer.asset index f2b81c14eb3..75e7ab25c92 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/DepthNormalsRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/DepthNormalsRenderer.asset @@ -9,11 +9,10 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: DepthNormalsRenderer m_EditorClassIdentifier: debugShaders: - NumberFont: {fileID: 2800000, guid: f06a37246bbff114da01277637ca397e, type: 3} debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} m_RendererFeatures: @@ -52,7 +51,10 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 1 m_RenderingMode: 0 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 --- !u!114 &7456660863052077093 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/DepthRenderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/DepthRenderer.asset index 4efbf0efc6c..dc1dd9dbe56 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/DepthRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/DepthRenderer.asset @@ -9,11 +9,10 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: DepthRenderer m_EditorClassIdentifier: debugShaders: - NumberFont: {fileID: 2800000, guid: f06a37246bbff114da01277637ca397e, type: 3} debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} m_RendererFeatures: @@ -52,7 +51,10 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 0 m_RenderingMode: 0 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 --- !u!114 &1912622647174990926 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DeferredRenderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DeferredRenderer.asset index d6cfcfdad0c..eaf3c00939b 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DeferredRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DeferredRenderer.asset @@ -26,11 +26,10 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: SSAO_DeferredRenderer m_EditorClassIdentifier: debugShaders: - NumberFont: {fileID: 2800000, guid: f06a37246bbff114da01277637ca397e, type: 3} debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} m_RendererFeatures: @@ -71,7 +70,10 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 0 m_RenderingMode: 1 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 --- !u!114 &3778245575090843755 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DeferredRenderer_RenderPass.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DeferredRenderer_RenderPass.asset index f13a524f09d..7a3bd3e618d 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DeferredRenderer_RenderPass.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DeferredRenderer_RenderPass.asset @@ -26,7 +26,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: SSAO_DeferredRenderer_RenderPass m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DepthNormalRenderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DepthNormalRenderer.asset index 07a491ff8ab..8e6945962cb 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DepthNormalRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DepthNormalRenderer.asset @@ -32,11 +32,10 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: SSAO_DepthNormalRenderer m_EditorClassIdentifier: debugShaders: - NumberFont: {fileID: 2800000, guid: f06a37246bbff114da01277637ca397e, type: 3} debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} m_RendererFeatures: @@ -77,7 +76,10 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 0 m_RenderingMode: 0 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 --- !u!114 &5568179863035868408 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DepthRenderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DepthRenderer.asset index cdef113f680..b8bf67fc2bb 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DepthRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/200_Assets/Renderers/SSAO_DepthRenderer.asset @@ -26,11 +26,10 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: SSAO_DepthRenderer m_EditorClassIdentifier: debugShaders: - NumberFont: {fileID: 2800000, guid: f06a37246bbff114da01277637ca397e, type: 3} debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} m_RendererFeatures: @@ -71,7 +70,10 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 0 m_RenderingMode: 0 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 --- !u!114 &339116797255187971 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/MotionVectorRenderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/MotionVectorRenderer.asset index 1dc2c51084f..34aad084864 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/MotionVectorRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/206_Motion_Vectors/MotionVectorRenderer.asset @@ -9,7 +9,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: MotionVectorRenderer m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/DBufferDeferred.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/DBufferDeferred.asset index 529bfe8e49b..c573487ea3a 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/DBufferDeferred.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/DBufferDeferred.asset @@ -32,7 +32,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: DBufferDeferred m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/DBufferForward.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/DBufferForward.asset index da5726e5e97..8cad546f1db 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/DBufferForward.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/DBufferForward.asset @@ -32,7 +32,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: DBufferForward m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/ScreenSpaceDeferred.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/ScreenSpaceDeferred.asset index ba504d00bce..2984da9faf1 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/ScreenSpaceDeferred.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/ScreenSpaceDeferred.asset @@ -32,7 +32,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: ScreenSpaceDeferred m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/ScreenSpaceForward.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/ScreenSpaceForward.asset index 1ead680eb5b..70b4722873e 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/ScreenSpaceForward.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/230_Decals/ScreenSpaceForward.asset @@ -32,7 +32,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: ScreenSpaceForward m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/245_Normal_Reconstruction/DrawNormalsRenderer.asset b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/245_Normal_Reconstruction/DrawNormalsRenderer.asset index 73306b9d4ca..d6d74555764 100644 --- a/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/245_Normal_Reconstruction/DrawNormalsRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Foundation/Assets/Scenes/245_Normal_Reconstruction/DrawNormalsRenderer.asset @@ -23,7 +23,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: DrawNormalsRenderer m_EditorClassIdentifier: debugShaders: diff --git a/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/DeferredRenderer.asset b/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/DeferredRenderer.asset index 75c7609ee0a..e4537e82890 100644 --- a/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/DeferredRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/DeferredRenderer.asset @@ -9,9 +9,12 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: DeferredRenderer m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} m_RendererFeatures: [] m_RendererFeatureMap: m_UseNativeRenderPass: 0 @@ -29,6 +32,10 @@ MonoBehaviour: coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3} + cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, + type: 3} + objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, + type: 3} m_OpaqueLayerMask: serializedVersion: 2 m_Bits: 4294967295 @@ -44,4 +51,7 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 1 m_RenderingMode: 1 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 diff --git a/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/ForwardRenderer.asset b/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/ForwardRenderer.asset index 95264ed7424..a4e7b67d147 100644 --- a/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/ForwardRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/ForwardRenderer.asset @@ -9,9 +9,12 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: ForwardRenderer m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} m_RendererFeatures: [] m_RendererFeatureMap: m_UseNativeRenderPass: 0 @@ -29,6 +32,10 @@ MonoBehaviour: coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3} + cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, + type: 3} + objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, + type: 3} m_OpaqueLayerMask: serializedVersion: 2 m_Bits: 4294967295 @@ -44,4 +51,7 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 1 m_RenderingMode: 0 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 diff --git a/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/UniversalRPAsset.asset b/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/UniversalRPAsset.asset index 86c7c94b6f7..cbc784e5a01 100644 --- a/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/UniversalRPAsset.asset +++ b/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/UniversalRPAsset.asset @@ -29,6 +29,7 @@ MonoBehaviour: m_RequireOpaqueTexture: 1 m_OpaqueDownsampling: 1 m_SupportsTerrainHoles: 1 + m_StoreActionsOptimization: 0 m_SupportsHDR: 1 m_MSAA: 4 m_RenderScale: 1 @@ -53,6 +54,8 @@ MonoBehaviour: m_ShadowDepthBias: 1 m_ShadowNormalBias: 1 m_SoftShadowsSupported: 1 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 m_UseSRPBatcher: 1 m_SupportsDynamicBatching: 0 m_MixedLightingSupported: 1 @@ -68,4 +71,5 @@ MonoBehaviour: m_MaxPixelLights: 4 m_ShadowAtlasResolution: 2048 m_ShaderVariantLogLevel: 0 + m_VolumeFrameworkUpdateMode: 0 m_ShadowCascades: 3 diff --git a/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/UniversalRPAssetBackBuffer.asset b/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/UniversalRPAssetBackBuffer.asset index 9bfd8cb6998..d39aef3940d 100644 --- a/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/UniversalRPAssetBackBuffer.asset +++ b/TestProjects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/UniversalRPAssetBackBuffer.asset @@ -29,6 +29,7 @@ MonoBehaviour: m_RequireOpaqueTexture: 0 m_OpaqueDownsampling: 1 m_SupportsTerrainHoles: 0 + m_StoreActionsOptimization: 0 m_SupportsHDR: 0 m_MSAA: 1 m_RenderScale: 1 @@ -42,6 +43,8 @@ MonoBehaviour: m_AdditionalLightsShadowResolutionTierLow: 128 m_AdditionalLightsShadowResolutionTierMedium: 256 m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 m_ShadowDistance: 50 m_ShadowCascadeCount: 4 m_Cascade2Split: 0.25 @@ -51,9 +54,12 @@ MonoBehaviour: m_ShadowDepthBias: 1 m_ShadowNormalBias: 1 m_SoftShadowsSupported: 1 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 m_UseSRPBatcher: 1 m_SupportsDynamicBatching: 0 m_MixedLightingSupported: 1 + m_SupportsLightLayers: 0 m_DebugLevel: 0 m_UseAdaptivePerformance: 1 m_ColorGradingMode: 0 @@ -65,4 +71,5 @@ MonoBehaviour: m_MaxPixelLights: 4 m_ShadowAtlasResolution: 2048 m_ShaderVariantLogLevel: 0 + m_VolumeFrameworkUpdateMode: 0 m_ShadowCascades: 2 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/DeferredRenderer.asset b/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/DeferredRenderer.asset index 7fe041ee3a2..95ad4bae4c5 100644 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/DeferredRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/DeferredRenderer.asset @@ -9,9 +9,12 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: DeferredRenderer m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} m_RendererFeatures: [] m_RendererFeatureMap: m_UseNativeRenderPass: 0 @@ -26,8 +29,12 @@ MonoBehaviour: stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} - coreBlitPS: {fileID: 4800000, guid: 370f7a9cc4e362d488af024d371091e8, type: 3} - coreBlitColorAndDepthPS: {fileID: 4800000, guid: c6e57f5bdbd2a284a86a3097c03884c8, + coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} + coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, + type: 3} + cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, + type: 3} + objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, type: 3} m_OpaqueLayerMask: serializedVersion: 2 @@ -44,4 +51,7 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 1 m_RenderingMode: 1 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/ForwardRenderer.asset b/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/ForwardRenderer.asset index e80abfa977a..88eae80c8d4 100644 --- a/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/ForwardRenderer.asset +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/CommonAssets/ForwardRenderer.asset @@ -9,9 +9,12 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f971995892640ec4f807ef396269e91e, type: 3} + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} m_Name: ForwardRenderer m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} m_RendererFeatures: [] m_RendererFeatureMap: m_UseNativeRenderPass: 0 @@ -26,8 +29,12 @@ MonoBehaviour: stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} - coreBlitPS: {fileID: 4800000, guid: 370f7a9cc4e362d488af024d371091e8, type: 3} - coreBlitColorAndDepthPS: {fileID: 4800000, guid: c6e57f5bdbd2a284a86a3097c03884c8, + coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} + coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, + type: 3} + cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, + type: 3} + objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, type: 3} m_OpaqueLayerMask: serializedVersion: 2 @@ -44,4 +51,7 @@ MonoBehaviour: zFailOperation: 0 m_ShadowTransparentReceive: 1 m_RenderingMode: 0 + m_DepthPrimingMode: 0 m_AccurateGbufferNormals: 0 + m_ClusteredRendering: 0 + m_TileSize: 32 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/UniversalRenderPipelineGlobalSettings.asset b/TestProjects/UniversalGraphicsTest_PostPro/Assets/UniversalRenderPipelineGlobalSettings.asset new file mode 100644 index 00000000000..e845351a316 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/UniversalRenderPipelineGlobalSettings.asset @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: 2ec995e51a6e251468d2a3fd8a686257, type: 3} + m_Name: UniversalRenderPipelineGlobalSettings + m_EditorClassIdentifier: + k_AssetVersion: 1 + k_AssetPreviousVersion: 1 + lightLayerName0: Light Layer default + lightLayerName1: Light Layer 1 + lightLayerName2: Light Layer 2 + lightLayerName3: Light Layer 3 + lightLayerName4: Light Layer 4 + lightLayerName5: Light Layer 5 + lightLayerName6: Light Layer 6 + lightLayerName7: Light Layer 7 + supportRuntimeDebugDisplay: 0 diff --git a/TestProjects/UniversalGraphicsTest_PostPro/Assets/UniversalRenderPipelineGlobalSettings.asset.meta b/TestProjects/UniversalGraphicsTest_PostPro/Assets/UniversalRenderPipelineGlobalSettings.asset.meta new file mode 100644 index 00000000000..2359d87104f --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_PostPro/Assets/UniversalRenderPipelineGlobalSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e4b9f5e2b53584aac82dd7144ca9c5c6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/UniversalGraphicsTest_Terrain/Assets/UniversalRenderPipelineGlobalSettings.asset b/TestProjects/UniversalGraphicsTest_Terrain/Assets/UniversalRenderPipelineGlobalSettings.asset new file mode 100644 index 00000000000..e845351a316 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_Terrain/Assets/UniversalRenderPipelineGlobalSettings.asset @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: 2ec995e51a6e251468d2a3fd8a686257, type: 3} + m_Name: UniversalRenderPipelineGlobalSettings + m_EditorClassIdentifier: + k_AssetVersion: 1 + k_AssetPreviousVersion: 1 + lightLayerName0: Light Layer default + lightLayerName1: Light Layer 1 + lightLayerName2: Light Layer 2 + lightLayerName3: Light Layer 3 + lightLayerName4: Light Layer 4 + lightLayerName5: Light Layer 5 + lightLayerName6: Light Layer 6 + lightLayerName7: Light Layer 7 + supportRuntimeDebugDisplay: 0 diff --git a/TestProjects/UniversalGraphicsTest_Terrain/Assets/UniversalRenderPipelineGlobalSettings.asset.meta b/TestProjects/UniversalGraphicsTest_Terrain/Assets/UniversalRenderPipelineGlobalSettings.asset.meta new file mode 100644 index 00000000000..8534f9f2b26 --- /dev/null +++ b/TestProjects/UniversalGraphicsTest_Terrain/Assets/UniversalRenderPipelineGlobalSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e3ef2824440a4435ea9c71478ba6bc2c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: From c5a72d3d464e4120a2ed5638d3d4e15ac52cacd4 Mon Sep 17 00:00:00 2001 From: Andrem Date: Mon, 30 Aug 2021 16:56:14 +0200 Subject: [PATCH 18/18] Updated changelog --- 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 ba9320d7da2..65e366bd3cd 100644 --- a/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/com.unity.render-pipelines.universal/CHANGELOG.md @@ -76,6 +76,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Changed the default name when a new urp asset is created. - URP Asset Inspector - `General` section has been renamed to `Rendering`. - Refactored some of the array resizing code around decal projector rendering to use new APIs in render core +- UniversalRendererData and ForwardRendererData GUIDs have been reversed so that users coming from 2019LTS, 2020LTS and 2021.1 have a smooth upgrade path, you may encounter issues coming from 2021.2 Alpha/Beta versions and are recommended to start with a fresh library if initial upgrade fails. ### Fixed - Fixed an issue in PostProcessPass causing OnGUI draws to not show on screen. [case 1346650]