我正在使用 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 上打开它时,我可以调整材质属性,并且可以获得完全金属光泽的面,但是当实时将相同的参数应用于我的网格时,它们不起作用。
最后,我想要的是能够通过使用灰度图使脸部的某些部分变成金属色。
另外我知道面部跟踪配置不允许环境贴图(如果错误,请纠正我),因此完全镜像的纹理看起来非常不现实,但无论如何,它应该可以工作。
谢谢!