fix MaterialTests

This commit is contained in:
ousttrue 2020-11-24 15:32:50 +09:00
parent 4ceafe62a4
commit 405253e6f7
3 changed files with 61 additions and 17 deletions

View File

@ -1,7 +1,8 @@
using System.Collections.Generic;
using NUnit.Framework;
using UnityEngine;
using UniJSON;
using System.Linq;
namespace UniGLTF
{
@ -29,7 +30,7 @@ namespace UniGLTF
var materialExporter = new MaterialExporter();
var gltfMaterial = materialExporter.ExportMaterial(srcMaterial, textureManager);
gltfMaterial.pbrMetallicRoughness.baseColorTexture.extensions.Parse();
gltfMaterial.pbrMetallicRoughness.baseColorTexture.extensions = gltfMaterial.pbrMetallicRoughness.baseColorTexture.extensions.Parse();
var shaderStore = new ShaderStore(null);
var materialImporter = new MaterialImporter(shaderStore, (int index) => { return null; });
@ -41,6 +42,52 @@ namespace UniGLTF
Assert.AreEqual(dstMaterial.mainTextureScale.y, scale.y, 0.001f);
}
[Test]
public void glTF_KHR_materials_unlit_Test()
{
{
var value = "{}".ParseAsJson();
Assert.AreEqual(value.Value.ValueType, ValueNodeType.Object);
Assert.AreEqual(0, value.GetObjectCount());
var list = value.ObjectItems().ToArray();
Assert.AreEqual(0, list.Length);
}
{
var value = "{\"unlit\":{}}".ParseAsJson();
Assert.AreEqual(value.Value.ValueType, ValueNodeType.Object);
Assert.AreEqual(1, value.GetObjectCount());
var list = value.ObjectItems().ToArray();
Assert.AreEqual(1, list.Length);
Assert.AreEqual("unlit", list[0].Key.GetString());
Assert.AreEqual(0, list[0].Value.GetObjectCount());
}
{
var extension = glTF_KHR_materials_unlit.Serialize().Parse();
var list = extension.ObjectItems().ToArray();
Assert.AreEqual(1, list.Length);
Assert.AreEqual(glTF_KHR_materials_unlit.ExtensionNameUtf8, list[0].Key.GetUtf8String());
Assert.AreEqual(0, list[0].Value.GetObjectCount());
var material = new glTFMaterial
{
alphaMode = "OPAQUE",
pbrMetallicRoughness = new glTFPbrMetallicRoughness
{
baseColorFactor = new float[] { 1, 0, 0, 1 },
},
extensions = extension,
};
Assert.IsTrue(glTF_KHR_materials_unlit.IsEnable(material));
var shaderStore = new ShaderStore(null);
var shader = shaderStore.GetShader(material);
Assert.AreEqual("UniGLTF/UniUnlit", shader.name);
}
}
[Test]
public void UnlitShaderImportTest()
{
@ -55,7 +102,7 @@ namespace UniGLTF
{
baseColorFactor = new float[] { 1, 0, 0, 1 },
},
extensions = glTF_KHR_materials_unlit.Serialize(),
extensions = glTF_KHR_materials_unlit.Serialize().Parse(),
});
Assert.AreEqual("UniGLTF/UniUnlit", shader.name);
}
@ -69,7 +116,7 @@ namespace UniGLTF
{
baseColorTexture = new glTFMaterialBaseColorTextureInfo(),
},
extensions = glTF_KHR_materials_unlit.Serialize(),
extensions = glTF_KHR_materials_unlit.Serialize().Parse(),
});
Assert.AreEqual("UniGLTF/UniUnlit", shader.name);
}
@ -84,7 +131,7 @@ namespace UniGLTF
baseColorFactor = new float[] { 1, 0, 0, 1 },
baseColorTexture = new glTFMaterialBaseColorTextureInfo(),
},
extensions = glTF_KHR_materials_unlit.Serialize(),
extensions = glTF_KHR_materials_unlit.Serialize().Parse(),
});
Assert.AreEqual("UniGLTF/UniUnlit", shader.name);
}
@ -98,7 +145,7 @@ namespace UniGLTF
{
baseColorFactor = new float[] { 1, 0, 0, 1 },
},
extensions = glTF_KHR_materials_unlit.Serialize(),
extensions = glTF_KHR_materials_unlit.Serialize().Parse(),
});
Assert.AreEqual("UniGLTF/UniUnlit", shader.name);
}
@ -112,7 +159,7 @@ namespace UniGLTF
{
baseColorTexture = new glTFMaterialBaseColorTextureInfo(),
},
extensions = glTF_KHR_materials_unlit.Serialize(),
extensions = glTF_KHR_materials_unlit.Serialize().Parse(),
});
Assert.AreEqual("UniGLTF/UniUnlit", shader.name);
}
@ -127,7 +174,7 @@ namespace UniGLTF
baseColorFactor = new float[] { 1, 0, 0, 1 },
baseColorTexture = new glTFMaterialBaseColorTextureInfo(),
},
extensions = glTF_KHR_materials_unlit.Serialize(),
extensions = glTF_KHR_materials_unlit.Serialize().Parse(),
});
Assert.AreEqual("UniGLTF/UniUnlit", shader.name);
}
@ -141,7 +188,7 @@ namespace UniGLTF
{
baseColorTexture = new glTFMaterialBaseColorTextureInfo(),
},
extensions = glTF_KHR_materials_unlit.Serialize(),
extensions = glTF_KHR_materials_unlit.Serialize().Parse(),
});
Assert.AreEqual("UniGLTF/UniUnlit", shader.name);
}
@ -156,7 +203,7 @@ namespace UniGLTF
baseColorFactor = new float[] { 1, 0, 0, 1 },
baseColorTexture = new glTFMaterialBaseColorTextureInfo(),
},
extensions = glTF_KHR_materials_unlit.Serialize(),
extensions = glTF_KHR_materials_unlit.Serialize().Parse(),
});
Assert.AreEqual("UniGLTF/UniUnlit", shader.name);
}
@ -165,7 +212,7 @@ namespace UniGLTF
// default
var shader = shaderStore.GetShader(new glTFMaterial
{
extensions = glTF_KHR_materials_unlit.Serialize(),
extensions = glTF_KHR_materials_unlit.Serialize().Parse(),
});
Assert.AreEqual("UniGLTF/UniUnlit", shader.name);
}

View File

@ -28,7 +28,7 @@ namespace UniGLTF
#endregion
#region for Import
ListTreeNode<JsonValue> m_json;
readonly ListTreeNode<JsonValue> m_json;
public glTFExtension(ListTreeNode<JsonValue> json)
{
m_json = json;
@ -51,7 +51,7 @@ namespace UniGLTF
///
/// parse exported value
/// </summary>
public void Parse()
public glTFExtension Parse()
{
var f = new JsonFormatter();
f.BeginMap();
@ -64,7 +64,7 @@ namespace UniGLTF
var b = f.GetStoreBytes();
var json = Encoding.UTF8.GetString(b.Array, b.Offset, b.Count);
m_json = json.ParseAsJson();
return new glTFExtension(json.ParseAsJson());
}
}

View File

@ -11,9 +11,6 @@ namespace VRM
{
public class VRMImporterContext : ImporterContext
{
const string HUMANOID_KEY = "humanoid";
const string MATERIAL_KEY = "materialProperties";
public VRM.glTF_VRM_extensions VRM { get; private set; }
public VRMImporterContext()