Skip to content

Commit a1b4e2a

Browse files
chore: Material utils optimization (#579)
* Use cached property indices * Remove unused globalIlluminationFlags assignment * Remove unnecessary _SpecTex_ST assignment
1 parent f811474 commit a1b4e2a

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

Nautilus/Utility/MaterialUtils.cs

+8-6
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ namespace Nautilus.Utility;
1111
public static partial class MaterialUtils
1212
{
1313
private static readonly int _emissionMap = Shader.PropertyToID("_EmissionMap");
14+
private static readonly int _specInt = Shader.PropertyToID("_SpecInt");
15+
private static readonly int _shininess = Shader.PropertyToID("_Shininess");
16+
private static readonly int _fresnel = Shader.PropertyToID("_Fresnel");
17+
private static readonly int _bumpMap = Shader.PropertyToID("_BumpMap");
1418

1519
internal static void Patch()
1620
{
@@ -224,13 +228,12 @@ public static void ApplyUBERShader(Material material, float shininess, float spe
224228
if (specularTexture != null)
225229
{
226230
material.SetTexture(ShaderPropertyID._SpecTex, specularTexture);
227-
material.SetFloat("_SpecInt", specularIntensity);
228-
material.SetFloat("_Shininess", shininess);
231+
material.SetFloat(_specInt, specularIntensity);
232+
material.SetFloat(_shininess, shininess);
229233
material.EnableKeyword("_ZWRITE_ON");
230234
material.EnableKeyword("MARMO_SPECMAP");
231235
material.SetColor(ShaderPropertyID._SpecColor, new Color(1f, 1f, 1f, 1f));
232-
material.SetFloat("_Fresnel", 0.24f);
233-
material.SetVector("_SpecTex_ST", new Vector4(1.0f, 1.0f, 0.0f, 0.0f));
236+
material.SetFloat(_fresnel, 0.24f);
234237
}
235238

236239
// Apply emission if it was enabled in the standard shader
@@ -245,13 +248,12 @@ public static void ApplyUBERShader(Material material, float shininess, float spe
245248
}
246249

247250
// Apply normal map if it was applied in the standard shader
248-
if (material.GetTexture("_BumpMap"))
251+
if (material.GetTexture(_bumpMap))
249252
{
250253
material.EnableKeyword("MARMO_NORMALMAP");
251254
}
252255

253256
material.enableInstancing = true;
254-
material.globalIlluminationFlags = MaterialGlobalIlluminationFlags.EmissiveIsBlack | MaterialGlobalIlluminationFlags.RealtimeEmissive;
255257

256258
switch (materialType)
257259
{

0 commit comments

Comments
 (0)