Camera

通常以下三种类型的相机是可以被识别使用的:

  1. XROrigin下的相机

../_images/image_as1_1.png
  1. 没有XROrigin时通过高级选项配置在FrameSource上的相机

../_images/image_as1_2.png
  1. 没有XROrigin时的主相机

../_images/image_as1_3.png

相机配置

../_images/image_as1_4.png ../_images/image_as1_5.png
  • Clear Flags: 需要设置为 Solid Color 以确保Camera图像可以正常渲染。如果设成 Skybox ,Camera图像将无法显示。使用XR头显或眼镜时建议保留设备SDK默认配置。

  • Background: 这个非必需配置,考虑到使用体验,建议将背景颜色设为黑色以便在Camera设备打开前和切换时以黑色显示。使用XR头显或眼镜时建议保留设备SDK默认配置。

  • Clipping Planes: 除通常渲染及性能需求之外,需要综合考虑识别及交互的物体或现实场景的物理大小和距离。比如设置Near为0.1(米)以避免相机离物体较近时无法显示,设置Far为1000(米)以避免远处物体无法显示。

备注

如果你在使用 Unity AR Foundation 或其他XROrigin下的Camera,Unity通常会预设其剪裁平面为 (0.1, 20) ,这可能会导致离 Camera (真实世界中的设备)超过20米的物体会无法显示出来。请在使用前根据具体需求来修改。

URP

使用URP时,相机图像是通过 EasyARCameraImageRendererFeature 进行渲染的,你需要参照 Universal Render Pipeline (URP) 配置 添加 EasyARCameraImageRendererFeature

如未正确添加,你会在启动时或运行过程中看到UI错误或错误日志,

../_images/image_as1_6.png ../_images/image_as1_7.png

使用 AR Foundation 时,AR Foundation提供了类似的 RendererFeature ,你需要参考 AR Foundation 介绍 中的 Project Setup > Universal Render Pipeline 来添加 ARBackgroundRendererFeature ,这里不详细描述。

注意

由于Unity没有提供操作这些功能的公有程序接口,所以你只能在编辑器中手动添加,否则运行时会报错或不显示相机画面。