Low Poly物体着色整合 (Low-Poly Objects Colorization & Batching)

功能

美术可以直接在Unity中修改物体颜色(开镜头特效等情况下),修改完毕满意后,输出一张贴图,各物体分别输出FBX

使用色板(Palette)着色的方式被美术认为不方便后改为直接在物体上着色。但实际上色板模式可能有改进空间。

生成贴图 (Generate Texture)

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
public static int[] _acceptableTexSize = new int[7] { 32, 64, 128, 256, 512, 1024, 2048 };

public static int CalcTexSize(int pixelCount) {
for (int i = 0; i < _acceptableTexSize.Length; i++) {
if (Mathf.Pow(_acceptableTexSize[i], 2) > pixelCount) {
return _acceptableTexSize[i];
}
}

return -1;
}

public static Texture2D GenerateTexture(Color[] colors) {
int texSize = CalcTexSize(colors.Length);
if (texSize < 0) {
Debug.LogError("颜色(" + colors.Length + "个)太多一张贴图Hold不住了");
return new Texture2D(1, 1);
}
if( texSize == 0) {
Debug.LogError("木有颜色可以输出(" + colors.Length + "个)");
return new Texture2D(1, 1);
}

Texture2D tex = new Texture2D(texSize, texSize);

for (int i = 0; i < colors.Length; i++) {
tex.SetPixel(i % texSize, i / texSize, colors[i]);
}

tex.Apply();

return tex;
}

生成模型 (Generate FBXs)

UnityFBXExporter

分享