From 8d271f32852c3c8b93c8d834161a6f218f289a01 Mon Sep 17 00:00:00 2001 From: Paul Demeulenaere Date: Mon, 30 Aug 2021 10:41:17 +0200 Subject: [PATCH 1/2] Use uber template for all urp target --- .../Targets/UniversalSpriteCustomLitSubTarget.cs | 12 ++++++------ .../Targets/UniversalSpriteLitSubTarget.cs | 12 ++++++------ .../Targets/UniversalSpriteUnlitSubTarget.cs | 8 ++++---- .../Editor/ShaderGraph/Targets/UniversalTarget.cs | 12 ++++++------ 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs index ac30e0c207c..a13cf3e537d 100644 --- a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs @@ -115,8 +115,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -143,8 +143,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -170,8 +170,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, diff --git a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs index 55c571619c1..e4a3c951a68 100644 --- a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs @@ -137,8 +137,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -168,8 +168,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -198,8 +198,8 @@ static class SpriteLitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, diff --git a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs index 72aa82744c8..7393659da16 100644 --- a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs @@ -132,8 +132,8 @@ static class SpriteUnlitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -163,8 +163,8 @@ static class SpriteUnlitPasses useInPreview = true, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, diff --git a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs index ce9e84024f9..f15b47077be 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs @@ -811,7 +811,7 @@ public static PassDescriptor SceneSelection(UniversalTarget target) useInPreview = false, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), + passTemplatePath = UniversalTarget.kUberTemplatePath, sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask @@ -849,7 +849,7 @@ public static PassDescriptor ScenePicking(UniversalTarget target) useInPreview = false, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), + passTemplatePath = UniversalTarget.kUberTemplatePath, sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask @@ -887,8 +887,8 @@ public static PassDescriptor _2DSceneSelection(UniversalTarget target) useInPreview = false, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, @@ -925,8 +925,8 @@ public static PassDescriptor _2DScenePicking(UniversalTarget target) useInPreview = false, // Template - passTemplatePath = GenerationUtils.GetDefaultTemplatePath("PassMesh.template"), - sharedTemplateDirectories = GenerationUtils.GetDefaultSharedTemplateDirectories(), + passTemplatePath = UniversalTarget.kUberTemplatePath, + sharedTemplateDirectories = UniversalTarget.kSharedTemplateDirectories, // Port Mask validVertexBlocks = CoreBlockMasks.Vertex, From 7502dba5e259f8abfc492ad74c1af7619db8fcda Mon Sep 17 00:00:00 2001 From: Paul Demeulenaere Date: Mon, 30 Aug 2021 12:31:35 +0200 Subject: [PATCH 2/2] Use common UniversalSubTarget for Sprite & Decal --- .../Targets/UniversalSpriteCustomLitSubTarget.cs | 6 +++++- .../Targets/UniversalSpriteLitSubTarget.cs | 6 +++++- .../Targets/UniversalSpriteUnlitSubTarget.cs | 6 +++++- .../ShaderGraph/Targets/UniversalDecalSubTarget.cs | 8 ++++++-- .../Editor/ShaderUtils.cs | 12 ++++++++++++ 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs index a13cf3e537d..b6c2748c65d 100644 --- a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs @@ -2,10 +2,11 @@ using System.Linq; using UnityEditor.ShaderGraph; using UnityEditor.UIElements; +using Unity.Rendering.Universal; namespace UnityEditor.Rendering.Universal.ShaderGraph { - sealed class UniversalSpriteCustomLitSubTarget : SubTarget + sealed class UniversalSpriteCustomLitSubTarget : UniversalSubTarget { static readonly GUID kSourceCodeGuid = new GUID("69e608b3e7e0405bbc2f259ad9cfa196"); // UniversalUnlitSubTarget.cs @@ -14,10 +15,13 @@ public UniversalSpriteCustomLitSubTarget() displayName = "Sprite Custom Lit"; } + protected override ShaderUtils.ShaderID shaderID => ShaderUtils.ShaderID.SG_SpriteCustomLit; + public override bool IsActive() => true; public override void Setup(ref TargetSetupContext context) { + base.Setup(ref context); context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); context.AddSubShader(SubShaders.SpriteLit(target)); } diff --git a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs index e4a3c951a68..c105f9a0876 100644 --- a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs @@ -4,10 +4,11 @@ using UnityEditor.ShaderGraph; using UnityEditor.ShaderGraph.Legacy; using UnityEditor.UIElements; +using Unity.Rendering.Universal; namespace UnityEditor.Rendering.Universal.ShaderGraph { - sealed class UniversalSpriteLitSubTarget : SubTarget, ILegacyTarget + sealed class UniversalSpriteLitSubTarget : UniversalSubTarget, ILegacyTarget { static readonly GUID kSourceCodeGuid = new GUID("ea1514729d7120344b27dcd67fbf34de"); // UniversalSpriteLitSubTarget.cs @@ -18,8 +19,11 @@ public UniversalSpriteLitSubTarget() public override bool IsActive() => true; + protected override ShaderUtils.ShaderID shaderID => ShaderUtils.ShaderID.SG_SpriteLit; + public override void Setup(ref TargetSetupContext context) { + base.Setup(ref context); context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); context.AddSubShader(SubShaders.SpriteLit(target)); } diff --git a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs index 7393659da16..8cde8e1f45e 100644 --- a/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs @@ -4,10 +4,11 @@ using UnityEditor.ShaderGraph; using UnityEditor.ShaderGraph.Legacy; using UnityEditor.UIElements; +using Unity.Rendering.Universal; namespace UnityEditor.Rendering.Universal.ShaderGraph { - sealed class UniversalSpriteUnlitSubTarget : SubTarget, ILegacyTarget + sealed class UniversalSpriteUnlitSubTarget : UniversalSubTarget, ILegacyTarget { static readonly GUID kSourceCodeGuid = new GUID("ed7c0aacec26e9646b45c96fb318e5a3"); // UniversalSpriteUnlitSubTarget.cs @@ -16,10 +17,13 @@ public UniversalSpriteUnlitSubTarget() displayName = "Sprite Unlit"; } + protected override ShaderUtils.ShaderID shaderID => ShaderUtils.ShaderID.SG_SpriteUnlit; + public override bool IsActive() => true; public override void Setup(ref TargetSetupContext context) { + base.Setup(ref context); context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); context.AddSubShader(SubShaders.SpriteUnlit(target)); } diff --git a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs index 50ed2eacf84..7564fcf3415 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs +++ b/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalDecalSubTarget.cs @@ -3,16 +3,17 @@ using System.Collections.Generic; using UnityEngine; using UnityEditor.ShaderGraph; -using UnityEngine.Rendering; +using Unity.Rendering.Universal; using UnityEditor.UIElements; using UnityEngine.UIElements; using UnityEditor.ShaderGraph.Legacy; using UnityEngine.Rendering.Universal; using UnityEditor.ShaderGraph.Internal; +using ShaderUtils = Unity.Rendering.Universal.ShaderUtils; namespace UnityEditor.Rendering.Universal.ShaderGraph { - sealed class UniversalDecalSubTarget : SubTarget + sealed class UniversalDecalSubTarget : UniversalSubTarget { static readonly GUID kSourceCodeGuid = new GUID("f6cdcb0f9c306bf4895b74013d29ed47"); // UniversalDecalSubTarget.cs @@ -74,8 +75,11 @@ public UniversalDecalSubTarget() public override bool IsActive() => true; + protected override ShaderUtils.ShaderID shaderID => ShaderUtils.ShaderID.SG_Decal; + public override void Setup(ref TargetSetupContext context) { + base.Setup(ref context); context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); context.AddCustomEditorForRenderPipeline("UnityEditor.Rendering.Universal.DecalShaderGraphGUI", typeof(UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset)); // TODO: This should be owned by URP diff --git a/com.unity.render-pipelines.universal/Editor/ShaderUtils.cs b/com.unity.render-pipelines.universal/Editor/ShaderUtils.cs index 43bbbd6358c..274ad6d734d 100644 --- a/com.unity.render-pipelines.universal/Editor/ShaderUtils.cs +++ b/com.unity.render-pipelines.universal/Editor/ShaderUtils.cs @@ -29,6 +29,10 @@ internal enum ShaderID // ShaderGraph IDs start at 1000, correspond to subtargets SG_Unlit = 1000, // UniversalUnlitSubTarget SG_Lit, // UniversalLitSubTarget + SG_Decal, // UniversalDecalSubTarget + SG_SpriteUnlit, // UniversalSpriteUnlitSubTarget + SG_SpriteLit, // UniversalSpriteLitSubTarget + SG_SpriteCustomLit // UniversalSpriteCustomLitSubTarget } internal static bool IsShaderGraph(this ShaderID id) @@ -96,6 +100,14 @@ internal static void UpdateMaterial(Material material, MaterialUpdateType update case ShaderID.SG_Unlit: ShaderGraphUnlitGUI.UpdateMaterial(material, updateType); break; + case ShaderID.SG_Decal: + break; + case ShaderID.SG_SpriteUnlit: + break; + case ShaderID.SG_SpriteLit: + break; + case ShaderID.SG_SpriteCustomLit: + break; default: break; }