ARKit 面部跟踪 PBR



我正在使用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 上打开它时,我可以调整材质属性,并且可以获得完全金属光泽的面,但是当将相同的参数实时应用于我的网格时,它们不起作用。

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

我也知道面部跟踪配置不允许环境地图(如果错误请纠正我(,因此完全像镜子一样的纹理看起来很不真实,但无论如何,它应该可以工作。

谢谢!

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

sceneView.autoenablesDefaultLighting = true

这在网格反射中增加了似乎是环境光的东西,粗糙度和金属度正在生效。

相关内容

  • 没有找到相关文章

最新更新