部分网格在某些角度 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 变得不可见的主要内容,如果未能解决你的问题,请参考以下文章