2025-04-25 21:14:54 +09:00

69 lines
2.7 KiB
C#

using NUnit.Framework;
using UniGLTF;
using UnityEngine;
using VRMShaders;
namespace VRM.Samples
{
public class VRMMaterialTests
{
static UniGLTF.glTFMaterial ExportLoaded(string resourceName)
{
var material = Resources.Load<Material>(resourceName);
var exporter = new BuiltInVrmMaterialExporter();
var textureExporter = new TextureExporter(new EditorTextureSerializer());
var exported = exporter.ExportMaterial(material, textureExporter, new GltfExportSettings());
// parse glTFExtensionExport to glTFExtensionImport
exported.extensions = exported.extensions.Deserialize();
return exported;
}
[Test]
public void ExportTest()
{
{
var exported = ExportLoaded("Materials/vrm_unlit_texture");
Assert.True(UniGLTF.glTF_KHR_materials_unlit.IsEnable(exported));
Assert.AreEqual("OPAQUE", exported.alphaMode);
}
{
var exported = ExportLoaded("Materials/vrm_unlit_transparent");
Assert.True(UniGLTF.glTF_KHR_materials_unlit.IsEnable(exported));
Assert.AreEqual("BLEND", exported.alphaMode);
}
{
var exported = ExportLoaded("Materials/vrm_unlit_cutout");
Assert.True(UniGLTF.glTF_KHR_materials_unlit.IsEnable(exported));
Assert.AreEqual("MASK", exported.alphaMode);
}
{
var exported = ExportLoaded("Materials/vrm_unlit_transparent_zwrite");
Assert.True(UniGLTF.glTF_KHR_materials_unlit.IsEnable(exported));
Assert.AreEqual("BLEND", exported.alphaMode);
}
{
var exported = ExportLoaded("Materials/mtoon_opaque");
Assert.True(UniGLTF.glTF_KHR_materials_unlit.IsEnable(exported));
Assert.AreEqual("OPAQUE", exported.alphaMode);
}
{
var exported = ExportLoaded("Materials/mtoon_transparent");
Assert.True(UniGLTF.glTF_KHR_materials_unlit.IsEnable(exported));
Assert.AreEqual("BLEND", exported.alphaMode);
}
{
var exported = ExportLoaded("Materials/mtoon_cutout");
Assert.True(UniGLTF.glTF_KHR_materials_unlit.IsEnable(exported));
Assert.AreEqual("MASK", exported.alphaMode);
}
{
var exported = ExportLoaded("Materials/mtoon_culloff");
Assert.True(UniGLTF.glTF_KHR_materials_unlit.IsEnable(exported));
Assert.True(exported.doubleSided);
}
}
}
}