我使用的是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上打开它时,我可以调整材质属性,并且可以得到全金属光泽的脸,但是当实时对我的网格应用相同的参数时他们不起作用。
最后,我想要的是能够通过使用灰度图使面部的某些部分具有金属感。
我也知道人脸跟踪配置不允许环境贴图(如果有错,请纠正我),因此像纹理这样的完全镜像的外观看起来非常不现实,但是无论如何,它应该可以工作。
谢谢!
答案 0 :(得分:1)
解决了,我在设置方法中缺少此参数:
sceneView.autoenablesDefaultLighting = true
这会在网格反射中添加似乎是环境光的功能,并且粗糙度和金属性正在起作用。