Unity / Blender / FBX / 半透明

3
我在将.FBX导入Unity时遇到了奇怪的问题。看起来这不是法线的问题。我注意到在Unity中,材质被归类为“透明”,将其更改为“不透明”可以解决问题,但我想找出这里发生了什么。
Unity版本:2018.3.3f1
Blender版本:2.80.0

Blender Unity Blender normals

3个回答

4
我刚遇到了类似的问题。我还没有弄清楚为什么会发生这种情况,但好像有一个错误报告。如果我找出原因,我会更新的。
2020-02-13更新:
正如Cristopher Kawell所提到的,这似乎已经在最新版本的Blender(2.81之后?)中修复了 - 感谢Chris指出这一点!
2019-02-13更新:
我还没有找到确切的根本原因,但我有几分钟时间测试了一些东西。似乎blender将基色的R通道同时用作红色和反Alpha通道值,如果R值不是1.0或0,则完全忽略Alpha通道,并保持G和B通道的值。
一些例子:
以下所有内容都假定一个基本模型(例如一个立方体),并且除应用于该模型的单个材质的基色属性外,没有对任何其他内容进行修改。
  • 在Blender中,RGBA(1,1,1,1)表示不透明,而在Unity中也是不透明的。
  • 在Blender中,RGBA(1,1,1,0)表示透明,但在Unity中是不透明的。
  • 在Blender中,RGBA(0.9,1,1,1)表示半透明,而在Unity中则为RGBA(0.9,1,1,0.1)
  • 在Blender中,RGBA(0.1,1,1,1)表示半透明,而在Unity中则为RGBA(0.1,1,1,0.9)
  • 在Blender中,RGBA(0.1,0,0.1,1)表示半透明,而在Unity中则为RGBA(0.1,0,0.1,0.9)
  • 在Blender中,RGBA(0,1,1,1)表示不透明,而在Unity中也是不透明的。

因此,总结一下:

  • 更改 Alpha 对导入模型的透明度没有影响。
  • 0 或 1 的 R 值相当于 Alpha 值为 1
  • 0 到 1 的 R 值相当于 Alpha 值为 1 - R
  • B 和 G 值不影响透明度

希望这有所帮助!


这是非常有帮助的帖子。谢谢。 - Peter I

1

0

当您将纹理应用于模型时,请确保将基础颜色设置为白色(r- 1.0,g- 1.0,b- 1.0,A- 1.0),由于某种原因,当您将纹理应用于模型时,它在Blender中看起来很好,但Unity会采用模型的基本颜色并在其上应用纹理。

我使用2.8文件扩展名进行了测试[将blender安装文件夹替换为2.8 beta文件],并且通过将.blend文件保存到我的unity项目中,在单击模型查看器以更新材质后,它们最终显示正确。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接