Skip to content

Commit 4368c56

Browse files
mseonkim-unityEvergreen
authored andcommitted
[UUM-113600] Add conditional shader renaming for Autodesk Interactive shaders to MaterialUpgrader
1 parent 38ed08f commit 4368c56

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

Packages/com.unity.render-pipelines.universal/Editor/Tools/MaterialUpgrader/UniversalRenderPipelineMaterialUpgrader.cs

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ internal sealed class UniversalRenderPipelineMaterialUpgrader : RenderPipelineCo
2020
List<string> m_AssetsToConvert = new List<string>();
2121

2222
static List<MaterialUpgrader> m_Upgraders;
23-
23+
2424
public UniversalRenderPipelineMaterialUpgrader()
2525
{
2626
m_Upgraders = MaterialUpgrader.FetchAllUpgradersForPipeline(typeof(UniversalRenderPipelineAsset));
@@ -543,6 +543,14 @@ public static void UpdateSurfaceBlendModes(Material material)
543543
/// </summary>
544544
public class AutodeskInteractiveUpgrader : MaterialUpgrader
545545
{
546+
enum LegacyRenderingMode
547+
{
548+
Opaque,
549+
Cutout,
550+
Fade, // Old school alpha-blending mode, fresnel does not affect amount of transparency
551+
Transparent // Physically plausible transparency mode, implemented as alpha pre-multiply
552+
}
553+
546554
/// <summary>
547555
/// Constructor for the autodesk interactive upgrader.
548556
/// </summary>
@@ -564,6 +572,25 @@ public override void Convert(Material srcMaterial, Material dstMaterial)
564572
dstMaterial.SetFloat("_UseAoMap", srcMaterial.GetTexture("_OcclusionMap") ? 1.0f : .0f);
565573
dstMaterial.SetVector("_UvOffset", srcMaterial.GetTextureOffset("_MainTex"));
566574
dstMaterial.SetVector("_UvTiling", srcMaterial.GetTextureScale("_MainTex"));
575+
576+
var legacyRenderingMode = (LegacyRenderingMode)srcMaterial.GetFloat("_Mode");
577+
switch (legacyRenderingMode)
578+
{
579+
case LegacyRenderingMode.Opaque:
580+
RenameShader(OldShaderPath, GraphicsSettings.GetRenderPipelineSettings<UniversalRenderPipelineEditorShaders>().autodeskInteractiveShader.name, UniversalRenderPipelineMaterialUpgrader.DisableKeywords);
581+
break;
582+
case LegacyRenderingMode.Cutout:
583+
RenameShader(OldShaderPath, GraphicsSettings.GetRenderPipelineSettings<UniversalRenderPipelineEditorShaders>().autodeskInteractiveMaskedShader.name, UniversalRenderPipelineMaterialUpgrader.DisableKeywords);
584+
dstMaterial.SetFloat("_UseOpacityMap", .0f);
585+
dstMaterial.SetFloat("_OpacityThreshold", srcMaterial.GetFloat("_Cutoff"));
586+
break;
587+
case LegacyRenderingMode.Fade:
588+
case LegacyRenderingMode.Transparent:
589+
RenameShader(OldShaderPath, GraphicsSettings.GetRenderPipelineSettings<UniversalRenderPipelineEditorShaders>().autodeskInteractiveTransparentShader.name, UniversalRenderPipelineMaterialUpgrader.DisableKeywords);
590+
dstMaterial.SetFloat("_UseOpacityMap", .0f);
591+
dstMaterial.SetFloat("_Opacity", srcMaterial.GetColor("_Color").a);
592+
break;
593+
}
567594
}
568595
}
569596
}

Packages/com.unity.render-pipelines.universal/Shaders/AutodeskInteractive/AutodeskInteractiveMasked.shadergraph

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
"typeInfo": {
8989
"fullName": "UnityEditor.ShaderGraph.BooleanShaderProperty"
9090
},
91-
"JSONnodeData": "{\n \"m_Name\": \"UseOpacityMap\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"86ed0329-e72d-4828-b2fe-4f3d4ba88ac4\"\n },\n \"m_DefaultReferenceName\": \"Boolean_8A2B8817\",\n \"m_OverrideReferenceName\": \"\",\n \"m_Precision\": 0,\n \"m_Value\": false,\n \"m_Hidden\": false\n}"
91+
"JSONnodeData": "{\n \"m_Name\": \"UseOpacityMap\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"86ed0329-e72d-4828-b2fe-4f3d4ba88ac4\"\n },\n \"m_DefaultReferenceName\": \"_UseOpacityMap\",\n \"m_OverrideReferenceName\": \"\",\n \"m_Precision\": 0,\n \"m_Value\": false,\n \"m_Hidden\": false\n}"
9292
},
9393
{
9494
"typeInfo": {

0 commit comments

Comments
 (0)