博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ARCore学习之旅:基础概念
阅读量:5832 次
发布时间:2019-06-18

本文共 1256 字,大约阅读时间需要 4 分钟。

以下内容译自官方文档,仅供个人学习、记录、参考使用,如有纰漏,还请留言指正。

原文地址:

开始ARCore的旅程前,理解一些基础概念将有助于接下来的深入学习。这些概念一起阐述了ARCore是如何使得虚拟物体能够展示在现实世界的表面上,或者说如何添加到现实世界中的位置上。

运动跟踪

当你的手机在现实世界中移动,ARCore通过一个称为并行测量映射(concurrent odometry and mapping, COM)的处理过程,来理解手机相对于现实世界的位置。ARCore通过检测摄像头捕获的图像数据的视觉差异点(即特征点),使用这些点来计算位置上的改变。这些视觉信息和设备上的IMU的惯性测量值一起,用于计算摄像头随着时间推移而变动的姿势(包括位置和姿势)。

通过把用于渲染的3D物体的虚拟世界的摄像机姿态对齐ARCore提供的设备上的摄像头的姿态,开发者能够从正确的透视角度来渲染虚拟物体。渲染出来的虚拟物体的图像可以覆盖在摄像头捕获的图像的上面,使得虚拟物体就像现实世界的一部分一样,呈现在屏幕上。

运动跟踪:弧线为设备运动轨迹,椅子上的点为ARCore测量的特征点

环境理解

ARCore通过持续的检测特征点和平面,提升它对现实世界的理解。

ARCore查找那些看起来像是在同一个水平表面上的特征点,像桌子上的特征点们,然后把识别出来的这些表面作为平面(Plane)提供给你的应用使用。ARCore还能检测每一个平面的边界,并把这些信息提供给你的应用。你可以使用这些信息来防止虚拟物体到这些平面上来。

由于ARCore使用特征点来识别平面,因此可能无法很好地识别那些表面没有纹理的平面,如纯白色的书桌。

环境理解:ARCore能识别出图中的桌面、椅面、地面,开发者可以在平面上放置虚拟物体

光线估计

ARCore能够检测环境的光线,并提供当前图像的平均强度信息。这使得你能够用和环境同样的光照来照亮你的虚拟物体,提升AR内容的真实感。

光线估计:图中两个虚拟物体应用了各自对应的光照估计信息,更像真实的存在于现实世界的物体

人机交互

ARCore使用命中测试(Hit testing),接受一个相对于手机屏幕的(x, y)坐标(通过诸如点击或者其他你的应用支持的交互),投影一道光线到摄像机的世界视口,返回这道光线贯穿的任意平面和特征点,同时提供它们在世界里的姿态信息。这使得用户可以选择物体,或和环境中的物体交互。

锚定对象

随着ARCore对自身位置和周边环境的理解的提升,对应的姿态信息也会随之改变。当你想要放置一个虚拟物体时,你需要定义一个锚定(Anchor)点,让ARCore持续的追踪这个物体的位置。通常你需要基于命中测试返回的姿态信息创建一个锚定点,如上小节所述。这使得你的虚拟内容能够在设备移动的时候,依旧能相对于现实世界保持稳定。

深入学习

理解了上述的基础概念,接下来你可以把这些概念运用到构建AR应用的实战中去了。依照你的选择的开发平台,可以选择下面对应的资料进行进一步学习:

转载地址:http://edrdx.baihongyu.com/

你可能感兴趣的文章
webbench 装配指南
查看>>
视频管理软件技术分析报告(四)--基于SOA的VMS软件架构设计
查看>>
Spring:四种配置bean的方式以及父bean和子bean
查看>>
安全管理类软件技术发展趋势
查看>>
linux 学习的第二篇记录
查看>>
UITableViewCellEditStyle多功能的实现
查看>>
c语言:输出一个静态局部变量只在函数内部有效的例子
查看>>
c语言:模拟三次密码输入。
查看>>
C语言内存这个话题
查看>>
一键关闭iptables与selinux
查看>>
【Qt学习笔记】2.窗体Widget && 屏幕坐标 && 布局
查看>>
Lua 的表、元表及实现的面向对象模型 (施工中 )
查看>>
使用Zabbix监控RabbitMQ消息队列
查看>>
为什么物理机安装 centos 时只有「文字安装」界面?
查看>>
关于序列化
查看>>
3.5、Bootstrap V4自学之路------内容---图文框
查看>>
TAT
查看>>
解决rpm不能使用问题
查看>>
GoogleBuffer 在WNIDOWS下的编译安装教程
查看>>
我的友情链接
查看>>