Merge pull request #102 from saturday06/limit-gltf-material-emissiveFactor

Round glTF2.0 materials[].emissiveFactor value to its maximum limit
This commit is contained in:
ousttrue
2019-01-09 23:37:34 +09:00
committed by GitHub
2 changed files with 17 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
using NUnit.Framework;
using UnityEngine;
namespace UniGLTF
@@ -176,5 +177,17 @@ namespace UniGLTF
Assert.AreEqual("Standard", material.shader.name);
}
}
[Test]
public void MaterialExportTest()
{
var material = new Material(Shader.Find("Standard"));
material.SetColor("_EmissionColor", new Color(0, 1, 2, 1));
var materialExporter = new MaterialExporter();
var textureExportManager = new TextureExportManager(new Texture[] { });
var gltfMaterial = materialExporter.ExportMaterial(material, textureExportManager);
Assert.AreEqual(gltfMaterial.emissiveFactor, new float[] { 0, 0.5f, 1 });
}
}
}

View File

@@ -135,6 +135,10 @@ namespace UniGLTF
if (m.HasProperty("_EmissionColor"))
{
var color = m.GetColor("_EmissionColor");
if (color.maxColorComponent > 1)
{
color /= color.maxColorComponent;
}
material.emissiveFactor = new float[] { color.r, color.g, color.b };
}