美文网首页
03_ARKit 基础知识 ARSession

03_ARKit 基础知识 ARSession

作者: Zhen斌iOS | 来源:发表于2022-09-22 09:11 被阅读0次

    用于控制增强现实体验的主要对象。

    @interface ARSession : NSObject
    

    ARSession 对象协调 ARKit 代表您执行的主要流程,以创建增强现实体验。 这些过程包括从设备的运动感应硬件读取数据、控制设备的内置摄像头以及对捕获的摄像头图像执行图像分析。 该会话综合所有这些结果,以在设备所在的真实世界空间和您对 AR 内容建模的虚拟空间之间建立对应关系。

    创建会话

    每个 AR 体验都需要一个 ARSession。如果您实现自定义渲染器,则您自己实例化会话。

    let session = ARSession()
    session.delegate = self
    

    如果您使用标准渲染器之一(如 ARView、ARSCNView 或 ARSKView),则渲染器会为您创建一个会话对象。当您想与应用程序的会话进行交互时,您可以在应用程序的渲染器上访问它。

    let session = myView.session
    
    运行会话

    运行会话需要配置。 ARConfiguration 的子类决定了 ARKit 如何跟踪设备相对于现实世界的位置和运动,从而决定了您创建的 AR 体验的种类。例如,ARWorldTrackingConfiguration 使您能够通过设备的后置摄像头增强用户对周围世界的看法。

    配置和运行会话
    - runWithConfiguration:options:
    使用指定的配置和选项为会话启动 AR 处理。
    
    - runWithConfiguration:
    为具有指定配置的会话启动 AR 处理。
    
    identifier
    正在运行的会话的唯一标识符。
    
    ARSessionRunOptions
    更改 AR 会话配置时转换其当前状态的选项。
    
    configuration
    为会话定义运动和场景跟踪行为的对象。
    
    - pause
    暂停会话中的处理。
    
    响应事件
    delegate
    您提供的对象,用于接收捕获的视频图像和跟踪信息,或响应会话状态的变化。
    
    delegateQueue
    会话调用委托方法的调度队列。
    
    ARSessionDelegate
    您可以实施的方法从 AR 会话接收捕获的视频帧图像和跟踪状态。
    
    ARSessionObserver
    您可以实施的方法来响应 AR 会话状态的变化。
    
    管理锚点
    - addAnchor:
    添加要由会话跟踪的指定锚点。
    
    - removeAnchor:
    从会话跟踪中删除指定的锚点。
    
    保存或共享状态
    - getCurrentWorldMapWithCompletionHandler:
    返回一个对象,该对象封装了世界跟踪会话的空间映射状态和一组锚点。
    

    记录和回放 AR 会话数据:
    在 Reality Composer 中录制 AR 会话并在您的 ARKit 应用程序中重播。

    扫描 3D 对象
    - createReferenceObjectWithTransform:center:extent:completionHandler:
    从会话世界空间的指定区域创建参考对象(用于 3D 对象检测)。
    
    更新世界原点
    - setWorldOrigin:
    使用指定的变换更改 AR 世界坐标空间的基础。
    
    寻找真实世界的表面

    从屏幕上的某个点投射光线以查找与真实世界表面的交点。

    - raycast:
    检查一次光线和真实世界表面之间的交叉点。
    
    - trackedRaycast:updateHandler:
    随着时间的推移重复光线投射查询,以通知您物理环境中更新的表面。
    
    将本地坐标转换为地理坐标
    - getGeoLocationForPoint:completionHandler:
    将框架本地坐标系中的位置转换为纬度、经度和高度。
    
    访问相机框架
    currentFrame
    活动摄像机源捕获的最新静止帧,包括 ARKit 对其的解释。
    
    ARFrame
    作为具有位置跟踪信息的会话的一部分捕获的视频图像。
    
    - captureHighResolutionFrameWithCompletion:
    请求包含高分辨率捕获图像的正常频率之外的帧。
    
    管理协作
    - updateWithCollaborationData:
    使用其他用户收集的有关物理环境的信息更新您的会话。
    
    ARCollaborationData
    保存用户收集的有关物理环境的信息的对象。
    
    提供会话
    ARSessionProviding
    提供会话的对象。
    

    相关文章

      网友评论

          本文标题:03_ARKit 基础知识 ARSession

          本文链接:https://www.haomeiwen.com/subject/zdtiortx.html