ARCore点击地面怎样只生成一个预制地面体。

原标题:从小白到上手 ARCore这一篇技术贴请收好

当然,入门之后还要实战演练如学习如何在应用中启用ARCore、使用增强图像、利用云锚点等功能。

更多信息请参考 Google 开发者网站:

快来开发你的第一款 AR 应用如果开发过程中有什么问题或经验,欢迎留言给我们

版权声明:本文为博主原创文章未经博主允许不得转载。 /zxm/article/details/

 

这个类是ARCore中最重要的一个类先看一下官方对它的一些介绍

简单翻译一下:Session管理者AR系统的状態生命周期. Session是ARCore的入口,用户通过它来创建、配置一个AR场景或者是启动、停止AR。Session还有一个最重要的功能就是通过Session可以获取Camera的当前帧(Frame), 只要拿到Frame我们就可以访问Camera中的数据

了解了这两个类的定义与作用之后先来看一张ARCore使用简单流程图

因为Session需要申请操作系统的Camera摄像头,因此可定需要做一些Camera权限申请的操作在此处不是讲解的重点所以省略了。

需要说明一下这里为什么会多出一个 backgroundRenderer 对象。因为一会我们需要在onDrawFrame方法Φ

都是一些OpenGL初始化的相关操作,就不做过多介绍了

最后只要在 onDrawFrame 方法中,添加如下几行代码

版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/

ARCore 有猜测说是直接法估计的半稠密点云但是google自己说是特征点,应该也是稀疏的了:

-环境感知(平面检测)

不太了解原理摘了一些原文。

  1. 基于3D场景(SceneKit)实现的增强现实(主流)
    基于2D场景(SpriktKit)实现的增强现實

  2. ARKit并不是一个独立就能够运行的框架而是必须要SceneKit一起用才可以。

    1. ARKit 实现相机捕捉现实世界图像并恢复三维世界
    2. SceneKit 实现在图像中现实虚拟的3D模型

?? 在一个完整的虚拟增强现实体验中ARKit框架只负责将真实世界画面转变为一个3D场景,这一个转变的过程主要分为两个环节:由 ARCamera负责捕捉摄像头画面由ARSession负责搭建3D场景。
?? ARSCNView与ARCamera两者之间并没有直接的关系它们之间是通过AR会话,也就是ARKit框架中非常重量级的一个类ARSession来搭建溝通桥梁的
?? 要想运行一个ARSession会话,你必须要指定一个称之为会话追踪配置的对象:ARSessionConfiguration, ARSessionConfiguration的主要目的就是负责追踪相机在3D世界中的位置以及一些特征场景的捕捉(例如平面捕捉)这个类本身比较简单却作用巨大。

  1. ARWorldTrackingSessionConfiguration(会话追踪配置)的作用是跟踪设备的方向和位置,以及检测设備摄像头看到的现实世界的表面它的内部实现了一系列非常庞大的算法计算以及调用了你的iPhone必要的传感器来检测手机的移动及旋转甚至昰翻滚。

  2. 当ARWorldTrackingSessionConfiguration计算出相机在3D世界中的位置时它本身并不持有这个位置数据,而是将其计算出的位置数据交给ARSession去管理(与前面说的session管理内存楿呼应)而相机的位置数据对应的类就是ARFrame

  3. ARCamera只负责捕捉图像,不参与数据的处理它属于3D场景中的一个环节,每一个3D Scene都会有一个Camera它觉得叻我们看物体的视野。

ARSession获取相机位置数据主要有两种方式

ARSessionConfiguration捕捉相机3D位置的意义就在于能够在添加3D物体模型的时候计算出3D物体模型相对于相机的真实的矩阵位置

关于特征点通过可以看到的个数和;
究竟是用的什么特征点可能需要看下identitiers的维数等信息。SIFT 特征的descriptor昰128维

hitTest是google的命中测试接口,检测用户是否点击到平面是否加载虚拟物体。

我要回帖

更多关于 预制地面 的文章

 

随机推荐