iOS 11.3 更新会破坏 ARKit/SceneKit 人脸节点上的 SCNMaterial 渲染吗?

Does iOS 11.3 update break ARKit/SceneKit SCNMaterial rendering on face node?

运行 在 iOS 11.2 和 11.3 上完全相同的应用程序的全新构建,在 11.2 上一切正常,但在 11.3 上似乎 none 的材料是渲染到 ARKit 人脸节点上,使用 SCNMorpher 和 blendshape 值进行更新。

我将深入研究这个问题,如果我能找到一个修复程序,我会报告一个修复程序,但我想我会在这里放一个信标,看看是否有其他人有类似的问题,如果有,如果他们已经找到任何解决方案,或者是否有人有任何一般性的想法。

据我了解,次要版本颠簸应该完全向后兼容。那是对的吗?

谢谢

更新 1:这似乎同时影响 ARKit 和 SceneKit 场景。

更新 2:这似乎与 11.3 中的材质和光照处理方式不同有关。将照明更改为渲染得更远,可以实现与 11.2 类似的效果。就好像距离的基本单位从米变成了英寸之类的东西。令人困惑的是,改变照明距离现在似乎只影响设备 运行 11.3,而不是 11.2。现在的问题是渲染完全无光泽。进一步隔离显示,在 11.2 中镜面反射正常渲染,但在 11.3 中设置镜面反射时,无论是作为 UIImage 还是 UIColor,它根本没有任何效果。我将尝试将镜面反射设置为其他东西,例如 CALayer 和 CGI​​mage,看看它们中的任何一个是否有效,尽管以上所有都声称支持 in the documentation.

iOS 11.3 似乎更改了默认值 lightingModel,这是所有问题的根源。

只需将材料显式设置为以前隐式设置的材料即可解决所有问题。

例如,

baseNode.geometry?.materials[0].lightingModel = .blinn