开发环境
Unity:2021.1.14flc1
导入Package:
AR Foundation:4.1.7
ARCore XR Plugin:4.1.7
AROcclusionManager
用于管理遮挡系统
是AR Camera的组件
currentEnvironmentDepthMode
public EnvironmentDepthMode currentEnvironmentDepthMode { get; }
用于获取当前环境深度测试的模式
对应的取值有
翻译下来就是从Disabled -> Fastest -> Medium -> Best依次为
不开启 -> 低分辨率-> 中等分辨率 -> 高分辨率 的环境深度测试设置
currentOcclusionPreferenceMode
获取系统正在使用的当前遮挡首选项模式
public OcclusionPreferenceMode currentOcclusionPreferenceMode { get; }
其取值为:
PreferEnvironmentOcclusion :首选使用环境深度进行遮挡。
PreferHumanOcclusion:首选使用人体分割模板和深度进行遮挡。
步骤
在AR Camera中加入 AR Occlusion Manager的组件
并将Environment Depth Mode开启(选择Fastest、Medium或Best)
即可以启动最基本的遮挡效果
这里我创建了一个球体,在系统初始位置也就是Position(0,0,0)的位置观察遮挡效果
测试结果
这里可以看到遮挡的边缘还是需要进一步优化得到更好的效果
一些说明
对ARFoundation的使用学习可以参考unity官网的文档:http://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.1/manual/index.html。也可以到ARCore的官网:https://developers.google.cn/ar对这部分SDK的功能和环境配置有个更好的了解。
(两个网站的中文翻译我觉得都挺令人头疼的,看不懂的部分地方建议可以用英文文档理解一下。)