【问题标题】:Parts of mesh become invisible at certian angles Unity3D部分网格在某些角度 Unity3D 变得不可见
【发布时间】:2018-03-25 12:48:39
【问题描述】:

我正在导入一个 fbx 模型,但它的某些部分在场景和游戏中的某些角度是不可见的。

附加图像 SS-1 = 完整模型 - 您可以看到网格的某些部分是不可见的 附加图像 SS-2 = 已选择不可见网格的特写
附加图像 SS-3 = 主相机设置
附图 SS-4 = 模型导入设置

有什么想法吗?

【问题讨论】:

  • 你自己做的吗?你确定法线指向正确的方向吗?

标签: unity3d shader mesh fbx 3d-model


【解决方案1】:

网格的法线设置不正确,因此剔除算法将其视为不应渲染的背面。

如果您可以编辑模型以便可以反转可行的法线。大多数建模工具都有方便的工具或“翻转法线”的直接例程。但是,如果这不可能,一个技巧是 change the culling settings from your material:当剔除模式设置为 Cull Back(这是默认设置)时,不渲染不面向相机的多边形。然后,对于不可见的网格,您可以将剔除属性从 Cull Back 更改为 Cull Front。这样它将是可见的。

需要注意的是,大多数时候材质属性可能会被忽略,因为 Cull Front 和 No Cull 设置不像 Cull Back 那样常见。此外,在性能方面,由于该网格,您将运行不同的着色器。

【讨论】:

  • 尝试了法线,但它使某些部分可见而其他部分不可见。剔除设置有效,但剔除着色器性能不佳,对吧?那么还有其他建议吗?
  • 如果您反转整个网格的法线,这是预期的行为。您应该选择法线错误的三角形并仅反转它们。剔除着色器可能会或可能不会对性能有害,它还取决于许多其他因素:您可以尝试GPU Profiler 来评估对性能的影响。
【解决方案2】:

按照here的建议尝试双面着色器

【讨论】:

    【解决方案3】:

    我为这个问题找到的最简单的解决方案是:

    1.选择在某些角度上不可见的对象。

    2.导航到 Mesh Renderer > Render Face > Both

    问题现在应该解决了 我的 Unity 版本是 2019.3

    【讨论】:

      猜你喜欢
      • 2016-08-26
      • 2021-04-17
      • 2021-12-05
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      相关资源
      最近更新 更多