Apple ARKit遮挡问题:粗糙边界的优化方案咨询
ARKit地面虚拟材质替换的网格精度与过渡区域优化问题
我尝试用虚拟材质替换房间地面,初始方案如下:
- 通过
configuration.planeDetection = [.horizontal]检测水平面 - 设置
arView.environment.sceneUnderstanding.options = [],仅识别地面、不替换其他水平面
由于检测到的平面形状不固定,我没有用多边形平面拟合地面,而是采用了比实际地面更大的矩形平面,原因有两点:
- PBR材质纹理分辨率需要适配多变的平面尺寸,且我还没找到将纹理适配到多边形平面的方法
- 多边形平面无法精准贴合地面的可见边界
无遮挡设置下,矩形平面会覆盖家具和墙面;启用场景理解遮挡功能(arView.environment.sceneUnderstanding.options.insert(.occlusion))后,整体遮挡效果尚可,但出现了Andy Jazz在2020年文章中提到的两个问题:
- 家具与地面的过渡区域粗糙,桌腿等细结构直接消失
- 过渡区域存在模糊效果,类似客厅地面的雾效
观察iPhone Pro的三角剖分可见,网格精度过于粗糙。近距离靠近细结构时效果会略有改善,但网格精度仍达不到要求;而且三角剖分会持续更新,一旦远离细结构,局部网格会立即重新变得粗糙。我理解这种边界模糊是为了平滑三角形边缘,但对我的场景来说作用有限。
请问是否有方法调整网格分辨率,并对过渡区域进行局部细化?
内容的提问来源于stack exchange,提问作者Helge
相关产品推荐
相关产品推荐

