我可以阻止 Unity 记住已从 PNG 中删除的数据吗?

问题描述 投票:0回答:1

我一直在使用 Blender 和 Krita 为要放入 VRChat 中的头像制作纹理。在 Blender 中纹理看起来完全正常,但当我将 PNG 导入到 Unity 时,就会出现问题。主体纹理在头像上显示得很好,但我用于发射导入的 PNG 带有原始 PNG 上没有的点和斑点。 dwdUnity 似乎正在记住某种不再存在于 PNG 中的数据。

Blender 中显示的应该是什么样子

导出的 PNG 没有显示多余的斑点/斑点

我从Krita文件中重新导出PNG几次,但无济于事。我确保该文件已从 Unity 以及我保存该文件的文件夹中完全删除。我什至重新启动了计算机,看看是否可以解决问题,但没有。为了测试我的 Unity 记忆数据理论,我在纹理中添加了一个蓝点,并将其导出为 PNG。然后我删除了 Krita 中的蓝点并将其重新导出为第二个 PNG。我将第二个 PNG 导出到 Unity 中。检查器中的纹理预览显示了我添加的蓝色斑点,并且不久前被删除的斑点和斑点仍然存在。

PNG 与 Unity 中导入版本的比较

Unity 1 中的头像是什么样子

Unity 2 中的头像是什么样子

unity-game-engine png blender
1个回答
0
投票

这通常不是 Unity 中的问题,而是用于编辑 png 文件的程序的问题。根据“擦除”的含义,大多数编辑程序只是将 Alpha 通道设置为 0,但保持颜色通道不变。不同的程序表现不同,并且有不同的工具来处理这个问题。

我们不知道如何在 Unity 中应用这些纹理。如果它是某种贴花、乘法或加法着色器,它可能会忽略 Alpha 通道。仅凭图像很难判断。

在 Unity 内部,纹理预览的顶部有这些按钮:

enter image description here

使用这些通道,您可以查看各个通道,以便了解实际颜色通道(R、G、B)包含的内容。您的图像编辑软件可能有一个选项,可以用某种颜色填充 alpha 值为 0 的像素(您可能需要黑色)。

清除 alpha==0 区域通常是一个很好的想法,因为保留这些区域会使图像比需要的更大。

© www.soinside.com 2019 - 2024. All rights reserved.