Skip to content

Commit f763714

Browse files
committed
Fixed upgrade issues regarding shininess values being zero.
1 parent 7cbadcc commit f763714

5 files changed

Lines changed: 40 additions & 20 deletions

File tree

Assets/LowEndMobilePipeline/Editor/LegacyShadersToLowEndUpgrader.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,22 +87,22 @@ private static class SupportedUpgradeParams
8787
};
8888
}
8989

90-
[MenuItem("RenderPipeline/LowEndMobilePipeline/Material Upgraders/Upgrade Legacy Materials to LowEndMobile - Selection", false, 3)]
91-
public static void UpgradeMaterialsToLDSelection()
90+
[MenuItem("RenderPipeline/LowEndMobilePipeline/Material Upgraders/Upgrade Legacy Materials to LowEndMobile - Project", false, 3)]
91+
public static void UpgradeMaterialsToLDProject()
9292
{
9393
List<MaterialUpgrader> materialUpgraders = new List<MaterialUpgrader>();
9494
GetUpgraders(ref materialUpgraders);
9595

96-
MaterialUpgrader.UpgradeSelection(materialUpgraders, "Upgrade to LD Materials");
96+
MaterialUpgrader.UpgradeProjectFolder(materialUpgraders, "Upgrade to LD Materials");
9797
}
9898

99-
[MenuItem("RenderPipeline/LowEndMobilePipeline/Material Upgraders/Upgrade Legacy Materials to LowEndMobile - Project", false, 4)]
100-
public static void UpgradeMaterialsToLDProject()
99+
[MenuItem("RenderPipeline/LowEndMobilePipeline/Material Upgraders/Upgrade Legacy Materials to LowEndMobile - Selection", false, 4)]
100+
public static void UpgradeMaterialsToLDSelection()
101101
{
102102
List<MaterialUpgrader> materialUpgraders = new List<MaterialUpgrader>();
103103
GetUpgraders(ref materialUpgraders);
104104

105-
MaterialUpgrader.UpgradeProjectFolder(materialUpgraders, "Upgrade to LD Materials");
105+
MaterialUpgrader.UpgradeSelection(materialUpgraders, "Upgrade to LD Materials");
106106
}
107107

108108
// TODO: Replace this logic with AssignNewShaderToMaterial

Assets/LowEndMobilePipeline/Editor/LowendMobilePipelineMaterialEditor.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
public class LowendMobilePipelineMaterialEditor : ShaderGUI
77
{
8+
private const float kMinShininessValue = 0.01f;
89
private MaterialProperty blendModeProp = null;
910
private MaterialProperty albedoMapProp = null;
1011
private MaterialProperty albedoColorProp = null;
@@ -159,6 +160,10 @@ public override void AssignNewShaderToMaterial(Material material, Shader oldShad
159160
{
160161
base.AssignNewShaderToMaterial(material, oldShader, newShader);
161162

163+
// Shininess value cannot be zero since it will produce undefined values for cases where pow(0, 0).
164+
float shininess = material.GetFloat("_Shininess");
165+
material.SetFloat("_Shininess", Mathf.Clamp(shininess, kMinShininessValue, 1.0f));
166+
162167
UpdateMaterialKeywords(material);
163168
}
164169

@@ -222,7 +227,10 @@ private void DoSpecular()
222227

223228
if (specSource != SpecularSource.NoSpecular)
224229
{
225-
m_MaterialEditor.RangeProperty(shininessProp, Styles.shininessLabel);
230+
EditorGUI.BeginChangeCheck();
231+
float shininess = EditorGUILayout.Slider(Styles.shininessLabel, shininessProp.floatValue, kMinShininessValue, 1.0f);
232+
if (EditorGUI.EndChangeCheck())
233+
shininessProp.floatValue = shininess;
226234
}
227235
}
228236

Assets/LowEndMobilePipeline/Editor/LowendUpgraders.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,21 @@ public ParticlesAdditiveUpgrader(string oldShaderName)
4343
RenameShader(oldShaderName, "ScriptableRenderPipeline/LowEndMobile/Particles/Additive");
4444
}
4545
}
46+
47+
public class StandardUpgrader : MaterialUpgrader
48+
{
49+
public StandardUpgrader(string oldShaderName)
50+
{
51+
RenameShader(oldShaderName, "ScriptableRenderPipeline/LowEndMobile/NonPBR");
52+
RenameFloat("_Glossiness", "_Shininess");
53+
}
54+
}
55+
56+
public class TerrainUpgrader : MaterialUpgrader
57+
{
58+
public TerrainUpgrader(string oldShaderName)
59+
{
60+
RenameShader(oldShaderName, "ScriptableRenderPipeline/LowEndMobile/NonPBR");
61+
SetNewFloatProperty("_Shininess", 1.0f);
62+
}
63+
}

Assets/LowEndMobilePipeline/Editor/StandardToLowEndMaterialUpgrader.cs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
using UnityEditor;
33
using UnityEditor.Experimental.Rendering;
44

5-
public class StandardToLowEndMaterialUpgrader : MaterialUpgrader
5+
public class StandardToLowEndMaterialUpgrader
66
{
7-
[MenuItem("RenderPipeline/LowEndMobilePipeline/Material Upgraders/Upgrade Standard Materials to Low End Mobile - Selection", false, 1)]
7+
[MenuItem("RenderPipeline/LowEndMobilePipeline/Material Upgraders/Upgrade Standard Materials to Low End Mobile - Project Folder", false, 1)]
88
private static void UpgradeMaterialsToLDProject()
99
{
1010
List<MaterialUpgrader> upgraders = new List<MaterialUpgrader>();
@@ -13,7 +13,7 @@ private static void UpgradeMaterialsToLDProject()
1313
MaterialUpgrader.UpgradeProjectFolder(upgraders, "Upgrade to LD Materials");
1414
}
1515

16-
[MenuItem("RenderPipeline/LowEndMobilePipeline/Material Upgraders/Upgrade Standard Materials to Low End Mobile - Project Folder", false, 2)]
16+
[MenuItem("RenderPipeline/LowEndMobilePipeline/Material Upgraders/Upgrade Standard Materials to Low End Mobile - Selection", false, 2)]
1717
private static void UpgradeMaterialsToLDSelection()
1818
{
1919
List<MaterialUpgrader> upgraders = new List<MaterialUpgrader>();
@@ -24,14 +24,8 @@ private static void UpgradeMaterialsToLDSelection()
2424

2525
private static void GetUpgraders(ref List<MaterialUpgrader> upgraders)
2626
{
27-
upgraders.Add(new StandardToLowEndMaterialUpgrader("Standard (Specular setup)"));
28-
upgraders.Add(new StandardToLowEndMaterialUpgrader("Standard"));
29-
upgraders.Add(new StandardToLowEndMaterialUpgrader("TerrainSurface"));
30-
}
31-
32-
StandardToLowEndMaterialUpgrader(string oldShaderName)
33-
{
34-
RenameShader(oldShaderName, "ScriptableRenderPipeline/LowEndMobile/NonPBR");
35-
RenameFloat("_Glossiness", "_Shininess");
27+
upgraders.Add(new StandardUpgrader("Standard (Specular setup)"));
28+
upgraders.Add(new StandardUpgrader("Standard"));
29+
upgraders.Add(new TerrainUpgrader("TerrainSurface"));
3630
}
3731
}

Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipeline.shader

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Shader "ScriptableRenderPipeline/LowEndMobile/NonPBR"
99

1010
_Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
1111

12-
_Shininess("Shininess", Range(0.0, 1.0)) = 1.0
12+
_Shininess("Shininess", Range(0.01, 1.0)) = 1.0
1313
_GlossMapScale("Smoothness Factor", Range(0.0, 1.0)) = 1.0
1414

1515
_Glossiness("Glossiness", Range(0.0, 1.0)) = 0.5

0 commit comments

Comments
 (0)