Skip to content

Commit b1ba628

Browse files
committed
Added emission self-illumin upgrader to low end mobile pipeline.
1 parent 827e6e5 commit b1ba628

5 files changed

Lines changed: 24 additions & 6 deletions

File tree

Assets/LowEndMobilePipeline/Editor/LegacyShadersToLowEndUpgrader.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,11 @@ private static void GetUpgraders(ref List<MaterialUpgrader> materialUpgraders)
114114
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Reflective/Diffuse", SupportedUpgradeParams.diffuseCubemap));
115115
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Reflective/Specular", SupportedUpgradeParams.specularOpaque));
116116

117-
// Self-Illum upgrade still not supported
118-
//materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Self-Illum/Bumped Specular"));
117+
// Self-Illum upgrader
118+
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Self-Illumin/Diffuse", SupportedUpgradeParams.diffuseOpaque));
119+
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Self-Illumin/Bumped Diffuse", SupportedUpgradeParams.diffuseOpaque));
120+
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Self-Illumin/Specular", SupportedUpgradeParams.specularOpaque));
121+
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Self-Illumin/Bumped Specular", SupportedUpgradeParams.specularOpaque));
119122

120123
// Alpha Blended
121124
materialUpgraders.Add(new LegacyBlinnPhongUpgrader("Legacy Shaders/Transparent/Diffuse", SupportedUpgradeParams.diffuseAlpha));

Assets/LowEndMobilePipeline/Editor/LowendMobilePipelineMaterialEditor.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,11 +250,11 @@ private void UpdateMaterialKeywords(Material material)
250250
SetKeyword(material, "_NORMALMAP", material.GetTexture("_BumpMap"));
251251
SetKeyword(material, "_SPECGLOSSMAP", material.GetTexture("_SpecGlossMap"));
252252
SetKeyword(material, "_CUBEMAP_REFLECTION", material.GetTexture("_Cube"));
253+
SetKeyword(material, "_EMISSION_MAP", material.GetTexture("_EmissionMap"));
253254
}
254255

255256
private void UpdateMaterialBlendMode(Material material)
256257
{
257-
Debug.Log("BlendMode");
258258
BlendMode mode = (BlendMode) material.GetFloat("_Mode");
259259
switch (mode)
260260
{
@@ -292,7 +292,6 @@ private void UpdateMaterialBlendMode(Material material)
292292

293293
private void UpdateMaterialSpecularSource(Material material)
294294
{
295-
Debug.Log("SpecularSource");
296295
SpecularSource specSource = (SpecularSource) material.GetFloat("_SpecSource");
297296
if (specSource == SpecularSource.NoSpecular)
298297
{
@@ -328,7 +327,6 @@ private void UpdateMaterialSpecularSource(Material material)
328327

329328
private void UpdateMaterialReflectionSource(Material material)
330329
{
331-
Debug.Log("ReflectionSource");
332330
ReflectionSource reflectionSource = (ReflectionSource) material.GetFloat("_ReflectionSource");
333331
if (reflectionSource == ReflectionSource.NoReflection)
334332
{

Assets/LowEndMobilePipeline/Editor/LowendUpgraders.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using UnityEditor.Experimental.Rendering;
2+
using UnityEngine;
23

34
public struct UpgradeParams
45
{
@@ -17,6 +18,13 @@ public LegacyBlinnPhongUpgrader(string oldShaderName, UpgradeParams upgraderPara
1718
SetNewFloatProperty("_SpecSource", upgraderParams.specularSource);
1819
SetNewFloatProperty("_GlossinessSource", upgraderParams.glosinessSource);
1920
SetNewFloatProperty("_ReflectionSource", upgraderParams.reflectionSource);
21+
22+
if (oldShaderName.Contains("Legacy Shaders/Self-Illumin"))
23+
{
24+
RenameTexture("_MainTex", "_EmissionMap");
25+
RemoveTexture("_MainTex");
26+
SetNewColorProperty("_EmissionColor", Color.white);
27+
}
2028
}
2129
}
2230

Assets/LowEndMobilePipeline/Shaders/LowEndMobilePipelineCore.cginc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ inline void SpecularGloss(half3 diffuse, half alpha, out half4 specularGloss)
101101
inline void Emission(v2f i, out half3 emission)
102102
{
103103
#ifdef _EMISSION_MAP
104-
emission = tex2D(_EmissionMap, i.uv01.xy) * _EmissionColor
104+
emission = tex2D(_EmissionMap, i.uv01.xy) * _EmissionColor;
105105
#else
106106
emission = _EmissionColor;
107107
#endif

Assets/ScriptableRenderPipeline/Editor/MaterialUpgrader.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class MaterialUpgrader
1414
Dictionary<string, string> m_ColorRename = new Dictionary<string, string>();
1515

1616
Dictionary<string, float> m_FloatPropertiesToSet = new Dictionary<string, float>();
17+
Dictionary<string, Color> m_ColorPropertiesToSet = new Dictionary<string, Color>();
1718
List<string> m_TexturesToRemove = new List<string>();
1819

1920
[Flags]
@@ -72,6 +73,9 @@ public virtual void Convert(Material srcMaterial, Material dstMaterial)
7273

7374
foreach (var prop in m_FloatPropertiesToSet)
7475
dstMaterial.SetFloat(prop.Key, prop.Value);
76+
77+
foreach (var prop in m_ColorPropertiesToSet)
78+
dstMaterial.SetColor(prop.Key, prop.Value);
7579
}
7680

7781
public void RenameShader(string oldName, string newName)
@@ -105,6 +109,11 @@ public void SetNewFloatProperty(string propertyName, float value)
105109
m_FloatPropertiesToSet[propertyName] = value;
106110
}
107111

112+
public void SetNewColorProperty(string propertyName, Color value)
113+
{
114+
m_ColorPropertiesToSet[propertyName] = value;
115+
}
116+
108117
static bool IsMaterialPath(string path)
109118
{
110119
return path.EndsWith(".mat", StringComparison.OrdinalIgnoreCase);

0 commit comments

Comments
 (0)