十五、<ARKit> ARFrame 类

作者: Dosun | 来源:发表于2017-07-04 17:16 被阅读142次

    本文译自官方文档 ARFrame
    ,不足之处,请纠正。

    视频图像和位置的追踪是 AR 会话的部分。


    一、简介

    运行 AR 会话从设备相机中持续捕捉视频的帧。每一帧的图片,ARKit 会将硬件设备的动作监听数据和图像一起进行分析,从而计算出设备在真实世界的位置。ARKit 将传递跟踪信息和成像参数的形成 ARFrame 对象。


    二、API

    1. 得到视频帧
    2. 检查场景的参数
    • camera

      相机的做位置、方向和相片的参数去捕捉视频帧。
    • lightEstimate

      灯光自适应
    • - displayTransformWithViewportSize:orientation:

      ?????相机窗口的的坐标变换(可用于相机横竖屏的旋转适配)
      Returns an affine transform for converting between normalized image coordinates and a coordinate space appropriate for rendering the camera image onscreen.
    3. 跟踪和发现对象
    • anchors

      返回当前相机捕捉到的锚点数据(当一个 3D 虚拟模型加入到 ARKit 中时,锚点值得就是这个模型在 AR 中的位置)
    • - hitTest:types:

      根据2D坐标点搜索3D模型,这个方法通常用于,当我们在手机屏幕点击某一个点的时候,可以捕捉到这一个点所在的3D模型的位置,至于为什么是一个数组非常好理解。手机屏幕一个是长方形,这是一个二维空间。而相机捕捉到的是一个由这个二维空间射出去的长方体,我们点击屏幕一个点可以理解为在这个长方体的边缘射出一条线,这一条线上可能会有多个3D物体模型
      point:2D坐标点(手机屏幕某一点)
      ARHitTestResultType:捕捉类型 点还是面
      (NSArray<ARHitTestResult *> *):追踪结果数组
    4. 调试场景侦测
    • rawFeaturePoints

      特征点(应该是捕捉平地或者人脸的,比较苹果有自带的人脸识别功能)
    • ARPointCloud

      ARPointCloud:点状渲染云,主要用于渲染场景
    @interface ARPointCloud : NSObject <NSCopying>
    
    /**
     点的数量
     */
    @property (nonatomic, readonly) NSUInteger count;
    
    /**
    每一个点的位置的集合(结构体带*表示的是结构体数组)
     */
    @property (nonatomic, readonly) const vector_float3 *points;
    
    @end
    

    相关文章

      网友评论

      • DeerRun:hitTest:types: 返回为空,请问是什么情况,还有这个方法的使用情况?求解
        Dosun:@DeerRun 我现在都没有搞那个 AR了,交给 Unity 同事了。如果你想用 iOS 弄 AR ,你要懂 SceneKit,水很深的。
        DeerRun:@Dosun能给你个Unity 搞 的ARKit demo吗?能加你的qq吗?857141032 谢谢哈
        Dosun:好像我这边没有碰到过, NSArray<SCNHitTestResult *> *hitResults = [self.arSCNView hitTest:location options:nil];我们公司现在用 Unity 搞 ARKit了

      本文标题:十五、<ARKit> ARFrame 类

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