Blender 导出的 FBX 模型导入 Unity 后看起来不平滑的原因及解决办法

写在前面

系统版本:Windows 10 专业版 20H2
Blender 版本:2.91.0
Unity 版本:2019.4.2.f1 Personal
注:现已确认不是系统或 Blender 或 Unity 的问题。在三者之前的版本中,该问题仍存在。

Blender 导出的 FBX 模型导入 Unity 后的样貌

如下图。

左侧是 Unity 内置的圆柱体,下称“Unity built-in Cylinder”,是在 Unity 场景中添加的,其表面非常平滑。查看其 MeshFilter.mesh,发现其有 88 个顶点(除去 Unity 生成的重复顶点,实际共 42 个顶点),80 个三角形。

作为对比,右侧是在 Blender 中制作的圆柱体,下称“Blender Cylinder”,制作时与 Unity built-in Cylinder 的规格和几何特征尽量保持一致。该模型设置好“坐标变换”(详见我的上一篇文章)直接导出,导入 Unity 后未做任何材质或 Shader 的修改,均保持默认状态。

显然,Blender Cylinder 除平面外,几乎每个面片看起来都是“独立”而非“连续”的。即使两个角度相差很小的面,依然能够清晰地看出二者之间的棱,而非形成一个光滑的曲面。

在这里插入图片描述

解决办法

先说结论。是 Blender 导出的 FBX 文件的法线有问题,应该是 Blender 自带的 FBX 导出插件的 Bug。

Unity 的 FBXImporter - Model - Geometry 中,将 Normals 设为 Calculate,Apply,让 Unity 重计算模型的法线,模型及其在Project 等窗口的缩略图即显示为平滑。

在这里插入图片描述
在这里插入图片描述

辟谣

网上对此问题一般有下列回答:

  1. 未在 Unity 中重新指定材质并设置法线贴图;
  2. 未使用表面平滑或类似修改器,或在导出 FBX 时未应用相应的修改器。

经测试,上述方法均无效,即使这样做也不能平滑渲染。但显然,Unity 是支持平滑渲染的,因为其内置的含有曲面的模型(圆柱体、胶囊、球体等),仅由数十到数百个三角面构成。而且,使用表面平滑修改器,会轻易增加数百万计的三角面,极大增加渲染压力,但问题并未得到明显解决。

参考资料

http://answers.unity.com/answers/47015/view.html

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值