ModelTranslator: dedupe sanitized material names, set alphaIsTransparency for alpha-test textures

This commit is contained in:
ud18010
2026-07-15 12:00:50 +08:00
parent 073ae48a61
commit 0b068dbaa0
4 changed files with 29 additions and 10 deletions
+3 -2
View File
@@ -44,15 +44,16 @@ def write_unity_assets(outdir, summary, max_size):
mix_png = os.path.join(outdir, m["mix_png"])
base_guid = ua.guid_for(base_png)
mix_guid = ua.guid_for(mix_png)
alpha_test = m["alpha_mode"] == "transparency"
with open(base_png + ".meta", "w", encoding="utf-8", newline="\n") as f:
f.write(ua.texture_meta(base_guid, srgb=True, max_size=max_size))
f.write(ua.texture_meta(base_guid, srgb=True, max_size=max_size,
alpha_is_transparency=alpha_test))
with open(mix_png + ".meta", "w", encoding="utf-8", newline="\n") as f:
f.write(ua.texture_meta(mix_guid, srgb=False, max_size=max_size))
mat_name = "%s_%s" % (summary["model"], m["safe_name"])
mat_path = os.path.join(outdir, mat_name + ".mat")
mat_guid = ua.guid_for(mat_path)
alpha_test = m["alpha_mode"] == "transparency"
with open(mat_path, "w", encoding="utf-8", newline="\n") as f:
f.write(ua.material_yaml(mat_name, ua.XPBR_SHADER_GUID,
base_guid, mix_guid, alpha_test))