如何在 SceneKit 中正确点亮自定义网格而不显示网格的不规则性?
Posted
技术标签:
【中文标题】如何在 SceneKit 中正确点亮自定义网格而不显示网格的不规则性?【英文标题】:How do I properly light a custom mesh in SceneKit without showing off the irregularities of the mesh? 【发布时间】:2018-06-14 13:03:00 【问题描述】:所以我在下面创建了这个网格。它最初是一个 .obj,但我将其转换为 .scn。这是在 SceneKit 编辑器中查看时网格在默认环境光照下的外观。
我的问题是,当我在场景中添加灯光时,它会非常糟糕地展示网格的几何形状。例如,在下面的网格中,我在网格周围添加了 4 个泛光灯。
如您所知,Apple 的顶部显示了构成网格的各个多边形。我的主要问题是:我能做些什么来减少这种情况吗?必须有一些设置,我可以羽化灯光与网格的交互方式。我试图关闭阴影,但没有任何效果。
添加更多的灯也不能解决问题。走近了,你仍然可以看到那些突出的小多边形。
这是另一个示例,我添加了一个聚光灯直接向下看网格。这里存在多边形问题,但整个苹果也变得非常黑。有什么办法可以点亮苹果,这样它就不会在不添加更多灯光的情况下这么快就完全变暗?
【问题讨论】:
【参考方案1】:您的网格很可能只有位置。您还需要逐顶点法线来获得平滑的阴影。 Blender 几乎可以肯定有一个生成缺失法线的工具。
苹果的下半部分是黑暗的,因为它没有任何光线。您可以在场景中添加.ambient
灯光,以便每个对象至少获得最少量的灯光。
【讨论】:
【参考方案2】:尝试以下方法:
myNode.geometry.subdivisionLevel = 1
(其中 myNode 是 SCNNode,它保存 SCN 文件中的 Apple 几何图形)
这至少应该使表面光滑。
【讨论】:
以上是关于如何在 SceneKit 中正确点亮自定义网格而不显示网格的不规则性?的主要内容,如果未能解决你的问题,请参考以下文章