TextureTests.cs
4.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using NUnit.Framework;
using UnityEngine;
namespace UniGLTF
{
public class TextureTests
{
[Test]
public void TextureExportTest()
{
// Dummy texture
var tex0 = new Texture2D(128, 128)
{
wrapMode = TextureWrapMode.Clamp,
filterMode = FilterMode.Trilinear,
};
var textureManager = new TextureExportManager(new Texture[] {tex0});
var material = new Material(Shader.Find("Standard"));
material.mainTexture = tex0;
var materialExporter = new MaterialExporter();
materialExporter.ExportMaterial(material, textureManager);
var convTex0 = textureManager.GetExportTexture(0);
var sampler = TextureSamplerUtil.Export(convTex0);
Assert.AreEqual(glWrap.CLAMP_TO_EDGE, sampler.wrapS);
Assert.AreEqual(glWrap.CLAMP_TO_EDGE, sampler.wrapT);
Assert.AreEqual(glFilter.LINEAR_MIPMAP_LINEAR, sampler.minFilter);
Assert.AreEqual(glFilter.LINEAR_MIPMAP_LINEAR, sampler.magFilter);
}
}
public class MetallicRoughnessConverterTests
{
[Test]
public void ExportingColorTest()
{
{
var smoothness = 1.0f;
var conv = new MetallicRoughnessConverter(smoothness);
Assert.That(
conv.Export(new Color32(255, 255, 255, 255)),
// r <- 0 : (Unused)
// g <- 0 : ((1 - src.a(as float) * smoothness) ^ 2)(as uint8)
// b <- 255 : Same metallic (src.r)
// a <- 255 : (Unused)
Is.EqualTo(new Color32(0, 0, 255, 255)));
}
{
var smoothness = 0.5f;
var conv = new MetallicRoughnessConverter(smoothness);
Assert.That(
conv.Export(new Color32(255, 255, 255, 255)),
// r <- 0 : (Unused)
// g <- 63 : ((1 - src.a(as float) * smoothness) ^ 2)(as uint8)
// b <- 255 : Same metallic (src.r)
// a <- 255 : (Unused)
Is.EqualTo(new Color32(0, 63, 255, 255)));
}
{
var smoothness = 0.0f;
var conv = new MetallicRoughnessConverter(smoothness);
Assert.That(
conv.Export(new Color32(255, 255, 255, 255)),
// r <- 0 : (Unused)
// g <- 255 : ((1 - src.a(as float) * smoothness) ^ 2)(as uint8)
// b <- 255 : Same metallic (src.r)
// a <- 255 : (Unused)
Is.EqualTo(new Color32(0, 255, 255, 255)));
}
}
[Test]
public void ImportingColorTest()
{
{
var roughnessFactor = 1.0f;
var conv = new MetallicRoughnessConverter(roughnessFactor);
Assert.That(
conv.Import(new Color32(255, 255, 255, 255)),
// r <- 255 : Same metallic (src.r)
// g <- 0 : (Unused)
// b <- 0 : (Unused)
// a <- 0 : ((1 - sqrt(src.g(as float) * roughnessFactor)))(as uint8)
Is.EqualTo(new Color32(255, 0, 0, 0)));
}
{
var roughnessFactor = 1.0f;
var conv = new MetallicRoughnessConverter(roughnessFactor);
Assert.That(
conv.Import(new Color32(255, 63, 255, 255)),
// r <- 255 : Same metallic (src.r)
// g <- 0 : (Unused)
// b <- 0 : (Unused)
// a <- 128 : ((1 - sqrt(src.g(as float) * roughnessFactor)))(as uint8)
Is.EqualTo(new Color32(255, 0, 0, 128))); // smoothness 0.5 * src.a 1.0
}
{
var roughnessFactor = 0.5f;
var conv = new MetallicRoughnessConverter(roughnessFactor);
Assert.That(
conv.Import(new Color32(255, 255, 255, 255)),
// r <- 255 : Same metallic (src.r)
// g <- 0 : (Unused)
// b <- 0 : (Unused)
// a <- 74 : ((1 - sqrt(src.g(as float) * roughnessFactor)))(as uint8)
Is.EqualTo(new Color32(255, 0, 0, 74)));
}
{
var roughnessFactor = 0.0f;
var conv = new MetallicRoughnessConverter(roughnessFactor);
Assert.That(
conv.Import(new Color32(255, 255, 255, 255)),
// r <- 255 : Same metallic (src.r)
// g <- 0 : (Unused)
// b <- 0 : (Unused)
// a <- 255 : ((1 - sqrt(src.g(as float) * roughnessFactor)))(as uint8)
Is.EqualTo(new Color32(255, 0, 0, 255)));
}
}
}
}