ARKit人脸追踪PBR

问题描述 投票:0回答:1

我使用ARKit人脸跟踪配置并实时显示人脸网格,我可以向其中成功添加漫反射和法线贴图,并且它们可以正确显示,但是没有任何粗糙度或金属感的运气,粗糙度没有影响,并且金属感正在渲染所有黑色和暗淡/不透明的,我尝试过的东西:

  • self.contentNode?.geometry?.firstMaterial?.roughness.contents = UIColor.black //UIColor.white
  • self.contentNode?.geometry?.firstMaterial?.metalness.contents = UIColor.black //UIColor.white
  • self.contentNode?.geometry?.firstMaterial?.roughness.contents = myMetallnessTextureImage
  • self.contentNode?.geometry?.firstMaterial?.metalness.contents = myRoughnessTextureImage

[值得注意的是,大多数光管理是由会话完成的,这就是为什么网格在使用时会响应环境光和直接光,并且当只有环境光时,网格看起来是介电的/粗糙的,当有强烈的定向光时,它看起来像是金属的/光滑的,是会话控制了这些参数吗?

如果我将人脸网格物体导出为.obj,则在Xcode上打开它时,我可以调整材质属性,并且可以获得全金属光泽的脸,但是当实时将相同的参数应用于我的网格时,它们不会工作。

最后,我想要的是能够通过使用灰度图使脸部的某些部分具有金属感。

而且我也知道人脸跟踪配置不允许环境贴图(如果有错,请纠正我),因此像纹理这样的完全镜像的外观看起来非常不现实,但是无论如何,它应该可以工作。

谢谢!

cocoa-touch scenekit arkit metal pbr
1个回答
0
投票

已解决,我在设置方法中缺少此参数:

sceneView.autoenablesDefaultLighting = true

[这似乎在网格反射中添加了环境光,并且粗糙度和金属性正在起作用。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.