设定分辨率
UV 窗口右上角显示的分辨率。

约 1161 字大约 4 分钟
2026-01-04
Blockbench 的 UV 处理在某些场景下比较反直觉,且难以在游戏渲染中稳定、准确地复现。 自 YSM 2.2.2 以来,该问题在多个版本中以不同形式出现。
YSM 2.6.0 再次对 UV 处理进行了修复与调整,并发布本规范,用于约束建模过程中容易导致渲染异常的操作。
受影响的 UV
本规范仅适用于 YSM 2.6.0 及以上版本。
本次改动仅影响:
其他版本的加密模型仍保持旧的处理方式。
若模型严格遵守本规范,但游戏内渲染仍与 Blockbench 显示不一致,则该情况统一视为模组 BUG。
请直接在 GitHub 问题反馈处 提交反馈。
若模型明确违反本规范,但游戏内渲染“恰好正确”(无论符合你的预期还是符合 Blockbench 的预期),仍建议修正违规部分。
因为后续版本不会特意兼容这种“侥幸正确”的行为;模型可能在未来版本出现渲染问题,且此类问题不属于 YSM 的修复范围。
设定分辨率
UV 窗口右上角显示的分辨率。

实际分辨率
纹理窗口中该纹理实际显示的分辨率。

UV 单位
UV 单位 = 设定分辨率 / 实际分辨率。
例如:设定分辨率为 128、实际分辨率为 256,则 UV 单位 = 128 / 256 = 0.5。
对于面积不为 0 的面:其 UV 的坐标与尺寸必须是 UV 单位的整数倍。
例如:当 UV 单位为 1 时,下图这种情况是错误的:

当 UV 单位为 0.5 时,上述情况则是正确的。
注意
对于面积不为 0 的面:其 UV 尺寸的绝对值不得小于 1 个 UV 单位,也不得为 0。
该规则分为箱型 UV与逐面 UV两种情况。
箱型 UV 的尺寸无法手动指定,而是由块(Cube)的尺寸计算。 在少数情况下,计算结果可能为 0,从而导致渲染异常。
注意
对于使用箱型 UV 的块:
注意:
为了规避其他因素导致的渲染异常,将尺寸设为 0.0001 这类“接近 0 的正数”在技术上可以通过校验,但不推荐。 因为面积趋近于 0 的面仍会参与渲染,产生不必要的性能开销。 更推荐改用逐面 UV,并手动移除不需要渲染的面。

如果需要小于 1 的块(包括负尺寸)来实现效果,可以使用尺寸大于 1 的块 + 负膨胀值的方式实现; 或改用逐面 UV,手动设置满足规范的 UV 尺寸,此时块尺寸不再受上述限制。
对于使用逐面 UV 的块,只需确保每个面都满足本节中的最小尺寸要求即可。
另外:若将“尺寸小于 1 的箱型 UV 块”转换为逐面 UV,Blockbench 可能会把部分面的 UV 尺寸自动设置为 0。 这属于违规情况,需要手动修正。
如果你的模型中已经存在大量UV 尺寸为 0 的面或不满足要求的箱型 UV 块,手动修正可能较繁琐。
你可以下载并使用下方工具 UV0Fixer 自动修复。
使用前请仔细阅读压缩包内的说明文档。