ARFoundation入门到精通 - 1.6 ARSession 和 ARSessionOrigin

一、创建ARSession 和 ARSessionOrigin

ARSession 和 ARSessionOrigin 两个对象,是AR功能的基础,缺少了这两个组件AR功能将无法运行。

1.在Hierarchy面板点击右键,再弹出的面板中选择“XR->ARSession 或 ARSessionOrigin”。

二、ARSession 组件

ARSession 主要用来管理AR应用的状态和处理AR应用的生命周期。通过启用或禁用 ARSession 来控制AR体验的生命周期。

当您禁用ARSession时,系统将不再跟踪其环境中的功能,但如果您稍后启用它,系统将尝试恢复和维护以前检测到的功能。

设置功能
Attempt Update勾选 “Attempt Update”选项,设备将尝试安装AR软件(如果可能)。对此功能的支持取决于平台。
Match Frame Rate匹配帧率
Tracking Mode

跟踪模式。有三种选择:

  • DontCare:未指定跟踪模式,将自动选择。
  • PositionAndRotation:6个自由度,包括方向和位置。
  • RotationOnly:仅限定向的3度自由度。

检查设备支持

ARCre 和 ARKit 对硬件设备有要求,并不是所有手机都能够使用AR功能,因此在AR运行前需要先检查设备是否支持AR功能,如果不支持AR时可以提供其他替代体验。

public class MyComponent {

    [SerializeField] ARSession m_Session;

    IEnumerator Start() {

        if ((ARSession.state == ARSessionState.None) ||(ARSession.state == ARSessionState.CheckingAvailability))
        {
            yield return ARSession.CheckAvailability();
        }

        if (ARSession.state == ARSessionState.Unsupported)
        {
            // 当前设备不支持AR功能
        }
        else
        {
            // 当前设备支持AR功能
        }
    }
}

ARSession状态

ARSessionState描述
NoneAR系统尚未初始化,可用性未知。
Unsupported当前设备不支持AR。
CheckingAvailability系统正在检查当前设备上的AR可用性。
NeedsInstall当前设备支持AR,但AR支持需要安装其他软件。
InstallingAR软件正在安装中。
Ready支持AR并准备就绪。
SessionInitializedAR会话正在初始化(即启动)。这通常意味着AR正在工作,但尚未收集到足够的环境信息。
SessionTrackingAR会话正在运行并正在跟踪(即设备能够确定其在世界上的位置和方向)。

AR Input Manager

AR Input Manager组件是启用世界跟踪所必需的组件,不启用此组件,Tracked Pose Driver(跟踪姿态驱动)将无法获取设备的姿态。默认是挂载在 AR Session 对象上。

三、AR Session Origin 组件

ARSessionOrigin 的目的是将可跟踪功能(如平面表面和特征点)转换为Unity场景中的最终位置、方向和比例。由于AR设备在“会话空间”中提供数据,“会话空间相对于AR会话的开始是一个未缩放的空间,因此ARSessionOrigin执行适当的Unity空间转换。

AR Session Origin对象还有一个子对象AR Camera,AR Camera默认挂载Tracked Pose Driver 、AR Camera Manager、AR Camera Background,如下图所示。

Size

设置 ARSessionOrigin 的 Scale 属性,可以缩放来自设备的所有数据,包括AR摄像机的位置和任何检测到的可跟踪对象。 较大的值会使AR内容显得较小。 例如,缩放比例为10会使您的内容显得小10倍,而缩放比例0.1会使您的内容看起来大10倍。

ARPoseDriver

AR Pose Driver根据设备的跟踪信息驱动父GameObject的本地位置和方向。最常见的用例是将ARPoseDriver连接到AR相机上,以驱动相机在AR场景中的位置和方向。

ARCameraManager

AR Camera Manager 管理相机事件,包括管理设备相机纹理和设置光估计模式的属性。

设置功能
Auto Focus勾选后设备会自动对焦
Light Estimation估算环境的照明特性。有五种选择:
  • Ambient Intensity(环境强度):估计总体平均亮度
  • Ambient Color(环境色):估计整体平均颜色
  • Ambient Spherical Harmonics(环境球谐波):估计球谐波描述场景。球谐波用于产生更现实的照明计算。
  • Main Light Direction(主光源方向):估计主光源的方向。方向指向远离光线(因此它与光线的方向相匹配)。
  • Main Light Intensity(主光强度):估计主光源的亮度。

虽然您可以同时请求其中任何一项,但对每种支持在设备之间差异很大。一些平台可能无法同时提供所有选项,也可能取决于其他功能(例如,相机朝向方向)。

Facing Direction

控制相机切换,只在手机和平板电脑等手持移动设备上支持

  • World:指的是后置摄像头
  • User:User指的是前置摄像头(即“自拍”)摄像头

ARCameraBackground

AR Camera Background 将AR Camera纹理渲染到屏幕上(即设备相机的背景纹理必须为每个帧渲染)。

设置功能
Use Custom Material这个默认会由Unity根据平台来进行背景渲染,但如果勾选,我们就要提供背景渲染的材质、Shader。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
AR技术是近年来快速发展的前沿科技之一,而ARFoundation作为Unity推出的AR开发框架,无疑是目前最受欢迎的AR开发工具之一。从入门精通ARFoundation可以说是一条漫长的道路,需要我们逐步掌握基础知识,并不断实践。下面,就让我来介绍一下ARFoundation入门精通系列讲解吧。 首先,ARFoundation入门课程主要围绕框架的基本概念进行讲解,包括如何在Unity中创建AR项目,如何设置AR模式和跟踪信息配置等。学完这些基础内容后,可以进行第一个AR项目的实现,如实现图像识别功能、添加虚拟物体等。 进一步学习,我们需要了解ARFoundation中的核心概念——平面检测、锚点和会话管理。平面检测是AR中非常重要的一个技术,它可以检测到真实世界中表面的位置并创建虚拟平面。锚点则是指虚拟物体在真实环境中的定位点,通过它可以在不同设备上实现多人协同。而会话管理则是指AR应用程序与AR设备之间的通信和交互,通过会话管理可以实现AR会话的创建、销毁、暂停等操作。 接下来,学习者需要了解ARFoundation中的更高级的技术,例如光影和阴影、物理引擎、碰撞检测和真实感渲染等。这些技术都是AR应用程序中非常重要的一部分,可以为用户带来更加真实的AR体验。 最后,ARFoundation入门精通系列讲解还需要注重实战操作和项目实践,通过不断尝试和探索,才能更加深入地理解ARFoundation框架。可以参考公开的AR应用程序,例如ARCore、Vuforia、ARKit等,并且在实现自己的AR应用程序时,要注意实现效率、稳定性和用户友好性等方面。 综上所述,ARFoundation入门精通系列讲解是AR开发者必备的课程之一,通过系统的学习和实践,可以进一步加深对AR技术的理解,实现更加优秀的AR应用程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值