尝试使用 SceneKit 烘焙光照贴图时出错

Posted

技术标签:

【中文标题】尝试使用 SceneKit 烘焙光照贴图时出错【英文标题】:Error when trying to bake light map using SceneKit 【发布时间】:2019-04-04 10:32:18 【问题描述】:

我有一个.dae 模型,转换为.scn 场景。我添加了一个静态光源。但是当我尝试将光照贴图烘焙到纹理时,我收到错误消息:

烘焙光照贴图时出错。无法为网格烘焙光照贴图 […]

任何想法可能导致这种情况?顶点数会不会太高?

【问题讨论】:

安装Xcode 10.1,Xcode10.0可能有bug @ARGeo 是的,我之前安装了它。不幸的是,它没有解决这个问题。 那么,你的密码是什么? @ARGeo 尚未使用任何代码。这是通过 SceneKit 编辑器 gui 实现的。我所做的只是导入 .dae 文件,添加漫反射和粗糙度纹理,添加静态光源,然后按“烘焙”按钮将光照贴图烘焙到纹理。然后出现错误。 【参考方案1】:

我在 Xcode 10 中尝试过多次烘焙,我可以说如果你的几何图形很好,它就可以正常工作。我成功地为具有 300K 多边形的模型烘焙了 2Kx2K 纹理。

当您的 .dae 几何存在以下问题之一时,可能会发生错误:

非平面

四边以上的面

椎板面

非流形几何

长度为零的边

几何面积为零的面

地图区域为零的面孔

凹面

带孔的面

解决方案:在将模型导出到 .dae 之前,在 3D 创作应用程序中清理模型。

例如,在Autodesk Maya 中,此选项可通过主菜单Mesh > Cleanup 访问。

希望这会有所帮助。

【讨论】:

谢谢!就是这样。问题是网格没有三角化。现在可以了!奇怪的是 Xcode 在导入时没有这样做,或者有更好的错误消息。 很高兴能帮上忙。

以上是关于尝试使用 SceneKit 烘焙光照贴图时出错的主要内容,如果未能解决你的问题,请参考以下文章

2. 光照烘焙

Unity基础(四)渲染烘焙Lightmap光照贴图(未完)

光照贴图烘焙

Unity5中的软阴影烘焙

Unity高级开发-光照系统(三)-使用Unity的Progressive工具去正确的烘焙光照

max的贴图烘焙技术简易流程