iOS 11.3更新是否会破坏面部节点上的ARKit / SceneKit SCNMaterial渲染?

时间:2018-03-30 19:27:43

标签: ios swift xcode scenekit arkit

在iOS 11.2和11.3上运行完全相同的应用程序的新版本,一切都在11.2上工作正常,但在11.3上看起来好像没有任何材料被渲染到ARKit面部节点上,它使用SCNMorpher和混合形状要更新的值。

如果我能找到一个,我会更深入地了解这个并报告修复,但我想我会在这里放一个灯塔,看看是否还有其他人遇到类似的问题,如果有的话,如果他们找到任何解决方案,或者任何人都有任何想法。

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

由于

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

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

iOS 11.2 ARKit

iOS 11.3 ARKit

1 个答案:

答案 0 :(得分:1)

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

只需将材料明确地设置为先前隐含的内容即可解决所有问题。

例如,

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