部分网格在某些角度 Unity3D 变得不可见

Posted

技术标签:

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

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

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

有什么想法吗?

【问题讨论】:

你自己做的吗?你确定法线指向正确的方向吗? 【参考方案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

【讨论】:

以上是关于部分网格在某些角度 Unity3D 变得不可见的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 three.js 中隐藏网格的面吗?

unity3d网格不显示

选择内部 flex 元素时,文本选择背景在 Safari 中变得不可见

un-物理-暗物质:百科

更改 QCalendarWidget 网格可见性/厚度

如何在android中使位图不可见? [关闭]