KINDNICK_URP/Assets/External/VRM/Tests/VRMTextureEnumerateTests.cs
2025-04-25 21:14:54 +09:00

153 lines
5.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
using UniGLTF;
namespace VRM
{
public class VRMTextureEnumerateTests
{
/// <summary>
/// Test uniqueness
/// </summary>
[Test]
public void TextureEnumerationTest()
{
using (
var data = GltfData.CreateFromGltfDataForTest(
new glTF
{
images = new List<glTFImage>
{
new glTFImage
{
mimeType = "image/png",
}
},
textures = new List<glTFTexture>
{
new glTFTexture
{
name = "texture0",
source = 0,
}
},
materials = new List<glTFMaterial>
{
new glTFMaterial
{
pbrMetallicRoughness = new glTFPbrMetallicRoughness
{
baseColorTexture = new glTFMaterialBaseColorTextureInfo
{
index = 0,
}
}
},
new glTFMaterial
{
pbrMetallicRoughness = new glTFPbrMetallicRoughness
{
baseColorTexture = new glTFMaterialBaseColorTextureInfo
{
index = 0,
}
}
},
}
},
new ArraySegment<byte>(Array.Empty<byte>())
))
{
var vrm = new glTF_VRM_extensions
{
materialProperties = new List<glTF_VRM_Material>
{
new glTF_VRM_Material
{
textureProperties = new Dictionary<string, int>
{
{"_MainTex", 0},
}
},
new glTF_VRM_Material
{
textureProperties = new Dictionary<string, int>
{
{"_MainTex", 0},
}
},
}
};
var items = new VrmTextureDescriptorGenerator(data, vrm).Get().GetEnumerable().ToArray();
Assert.AreEqual(1, items.Length);
}
}
[Test]
public void TextureEnumerationInUnknownShader()
{
using (var data = GltfData.CreateFromGltfDataForTest(
new glTF
{
images = new List<glTFImage>
{
new glTFImage
{
mimeType = "image/png",
}
},
textures = new List<glTFTexture>
{
new glTFTexture
{
name = "texture0",
source = 0,
}
},
materials = new List<glTFMaterial>
{
new glTFMaterial
{
pbrMetallicRoughness = new glTFPbrMetallicRoughness
{
baseColorTexture = new glTFMaterialBaseColorTextureInfo
{
index = 0,
}
}
},
}
},
new ArraySegment<byte>(Array.Empty<byte>())
))
{
var vrm = new glTF_VRM_extensions
{
materialProperties = new List<glTF_VRM_Material>
{
new glTF_VRM_Material
{
shader = "UnknownShader",
textureProperties = new Dictionary<string, int>
{
{"_MainTex", 0},
}
},
}
};
// 2系統ある
Assert.IsTrue(BuiltInVrmMToonMaterialImporter.TryCreateParam(data, vrm, 0, out VRMShaders.MaterialDescriptor matDesc));
Assert.AreEqual(1, matDesc.TextureSlots.Count);
var items = new VrmTextureDescriptorGenerator(data, vrm).Get().GetEnumerable().ToArray();
Assert.AreEqual(1, items.Length);
}
}
}
}