ARCore之路-Unity AR开发从入门到实战
ARCore 是一个用来在 Android 上搭建增强现实(Augmented Reality, AR)应用的平台。本专栏从各个维度对ARCore进行技术全剖析,利用三项关键技术来整合虚拟内容和现实世界。
_DavidWang_
计算机硕士,全国信标委虚拟现实与增强现实标准工作组成员(CNITSC)、中国增强现实核心技术产业联盟成员(CARA)、华为HDE(Huawei Developer Experts)、Unity UVP(Unity Valuable Professional)、CSDN博客专家,主编国家级团体标准1项,参与国家级标准编写1项,授权和在审发明专利十余项,软件著作权若干。专注图形学/XR开发,著有《基于Unity的ARCore开发实战详细讲解》、《AR开发权威指南-AR Foundation》、《ARKit原生开发入门精粹》、《HoloLens2开发入门精要-基于Unity和MRTTK》等书籍6本。
展开
-
ARCore之路-环境理解之点云
AR是对现实环境的增强,运动跟踪解决了用户在现实环境中自己在哪里的问题(这个在哪里是以初始成功后的位置为基准的),但运动跟踪本身并不能解决用户周边环境是什么的问题,运动跟踪不能识别出平面,也不能识别出物体,但AR应用必须要能理解其本身所处的环境,这样才能为用户带来沉浸感和真实感,这就是ARCore环境理解功能该做的事,ARCore环境理解通过VIO (visual-inertial odome...原创 2018-09-16 17:52:44 · 4224 阅读 · 4 评论 -
ARCore之路-运动跟踪之3D声场(四)
上节我们已经利用共振音频(Resonance Audio)SDK实现了3D音效,这只是使用了共振音频(Resonance Audio)最简单的特性,共振音频(Resonance Audio)提供了远比示例中高级的功能技术特性,特别是模拟房间的参数,可以模拟很多生活中的真实环境特性,本节主要对Room参数、API进行更详细的了解。一、Room effects 如上图所示,Room属...原创 2018-09-15 20:30:54 · 972 阅读 · 0 评论 -
ARCore之路-运动跟踪之3D声场(三)
共振音频(Resonance Audio)技术其实是一整套关于AR/VR 中3D声源定位、混音、处理、多音轨合成的高性能音频处理技术,其更详细的技术细节超出了本章的范围,不再详述。前面我们说unity2018版集成了共振音频(Resonance Audio)技术,实际是集成了共振音频(Resonance Audio)音频引擎但并没有提供相应组件。所以我们要使用它,还得下载共振音频(Resona...原创 2018-09-11 22:30:51 · 1382 阅读 · 0 评论 -
ARCore之路-运动跟踪之3D声场(二)
在上章中我们对3D声场进行了简单介绍,本节将对3D声场概念及共振音频(Resonance Audio)的技术实现进行更深入的学习以便更好的利用之。为何我们能够根据听到的声音就能确定声源的位置呢?上节我们对这个问题进行了简单阐述,根据听到的声音信号,我们可以将声音归成两类: 1、直接信号 2、间接信号 在耳朵接收到这两类信号后,大脑会进行处理并根据以往经验来对声源和环境进行确定...原创 2018-09-09 22:46:13 · 1303 阅读 · 0 评论 -
ARCore之路-运动跟踪之3D声场(一)
在前文中,我们学习了如何定位用户(实际是定位用户的手机设备)的位置与方向,然后通过摄像机的投影矩阵将虚拟物体投影到用户手机设备屏幕,如果用户运动了,我们可以通过VIO更新用户的位置与方向信息,更新投影矩阵,这样就可以把虚拟物体固定在空间中的某点上(这个点就是锚点),从而达到以假乱真的视觉体验。 定位不仅仅包括虚拟物体的位置定位,应该还包括声音的3D定位,这样达到好的听觉体验,以使人在AR...原创 2018-09-08 21:42:22 · 2059 阅读 · 0 评论 -
ARCore之路-运动跟踪之深入理解
在前面的章节中,我们已经可以让我们的虚拟物体放置在合适的位置了,代码也可以很好的工作,并且也对部分ARCore技术进行了比较深入的探讨,实事上到此我们反倒更愿意再深入一步,了解ARCore实现的技术细节以便我们更好的利用它来为我们服务。前面我们也讲过,ARCore最主要的三大功能:运动跟踪、 环境理解、光估计。那我们就从运动跟踪开始来深入的探究一下ARCore的技术细节。在本章中,我们将深入了...原创 2018-09-08 16:27:07 · 4315 阅读 · 0 评论 -
ARCore之路-三角化可视平面
前面章节中,我们已经将虚拟物体放置到ARCore检测到的平面上了,一切显得都是那么的神奇和谐,但ARCore之路可能比看起来要更加复杂一些。 在前面的章节中,我们制作的VisualDetectedPlane时,这个Prefab是有Mesh Collider的,理论上,这个平面是可以与其他碰撞体发生碰撞的。下面我们将Fox这个Prefab下挂载一个Rigidbody和Mesh Collid...原创 2018-09-04 23:25:16 · 2590 阅读 · 47 评论 -
ARCore之路-ARCore Device & Environmental Light
在我们之前的工程里,我们首先是把ARCore的两个Prefabs:ARCore Device 和 Environmental Light 拖到了我们的 Hierarchy窗口中,那么这两个ARCore的Prefabs都是做什么的呢?下面我们来详细了解一下这两个ARCore的Prefabs的作用。 一、ARCore Device 大致的来说,ARCore Device就是用来处理与设...原创 2018-08-29 22:33:11 · 2102 阅读 · 0 评论 -
ARCore之路-放置物体
一、可视化平面的另一种方式 在上一节中, 我们已经实现了可视化检测到的平面,运行后效果良好,通过代码,我们更清楚的了解到了ARCore是如何让检测到的平面可视化的,这对于我们理解ARCore的工作方式会有很大的帮助。其实,ARCore已经简化了这个过程,我们下面来看看可视化平面的另一种实现方式。首先将上节中添加的代码从AppController中删除。然后在Hierarchy窗口右键,选择”...原创 2018-08-26 22:54:56 · 5536 阅读 · 12 评论 -
ARCore之路-平面检测
在前一节中,我们创建了一个App Controller,构建了我们的AR应用框架来做应用程序的整体流程处理,但是,如果运行我们前面的框架,什么也不会看到,本节中,我们将使用摄像机生成的点云数据来检测和创建平面,同时我们还要可视化检测出来的平面,帮助用户指出一个可用的平面在哪里。一、新建一个平面 前面我们介绍过Prefabs,当检测到真实世界中的平面时,我们需要一种在虚拟空间中表示这一...原创 2018-08-24 22:44:17 · 9053 阅读 · 43 评论 -
ARCore之路-APP Controller
现在,我们已经创建了场景并添加了必要的支持组件,但现在场景中什么也没有,本节中,我们将要编写我们的控制器,利用ARCore提供给我们的功能来检测平面,当然,这是一个循序渐进的过程,我们首先要确保设备支持ARCore,并进行一些必要的检查以便我们后续的工作的开展。本节中,我们的目标是创建一个简单的AppController,主要是进行各种错误处理。当然主要的工作还是由ARCore来提供,我们场景...原创 2018-08-21 21:28:12 · 3080 阅读 · 3 评论 -
ARCore之路-搭建场景
在前面,我们已经运行了ARCore提供的示例,虽然示例演示成功了,但我们其实对ARCore一无所知,不知其然也不知其所以然,所以,从本节开始,是时候为Android设备构建增强现实应用程序的框架了,我们将一步一步的建立我们自己的AR应用,正式开始探索ARCore带来的神奇世界。学习如何开发AR应用的旅程可能是一条漫长而艰难的道路,特别是AR应用涉及到太多的3D数学、渲染管线、计算机视觉、图形处...原创 2018-08-20 21:48:51 · 3417 阅读 · 4 评论 -
ARCore之路-连接设备调试应用
上篇文章中,我们将发布后的apk拷贝到手机上运行,这样非常不方便,本文将设置手机的开发者模式,使用USB或者WIFI来调试,同时本文还将介绍电脑调试手机运行的AR应用,这也是查找、排除问题的有效手段。一、打开手机USB调试 为了方便的将我们发布的android包文件(或apk文件)发布到手机中并测试它,我们需要启用手机的“Developer Option”,即开发者选项。什么是开发者...原创 2018-08-15 22:34:12 · 4600 阅读 · 10 评论 -
ARCore之路-环境配置
在前一章中,我们已经安装了所需要的软件件,但在发布一个项目之前,我们还需要再设置一些参数以确保我们的AR应用能在Android手机上正确的运行。一、设置开发环境 现在我们将创建一个新的项目,并设置我们需要的Arcore开发参数来启动和运行我们的项目。在开始菜单或者桌面的Unity图标启动Unity,点击New新建一个项目,我们命名为Fox,然后单击“创建项目”按钮。 待Un...原创 2018-08-13 22:14:48 · 4864 阅读 · 3 评论 -
ARCore之路-环境准备
介绍前面的背景知识之后,从今天开始,我们将正式开始从无到有开发我们的AR应用,但是在开始我们的创作之前,我们需要把开发环境搭建好,之是基础中的基础。我们将采用Unity平台、利用ARCore SDK来开发我们的AR应用。一、设备要求 由于Android系统的碎片化和之前我们讨论过的要对设备的视频模块与IMU进行校准的缘故,ARCore并不是支持所有型号的手机,手机产商需要对手...原创 2018-08-12 22:38:14 · 5919 阅读 · 0 评论 -
ARCore之路-技术原理(二)
前文说过,ARCore 使用三个主要功能将虚拟内容与通过手机摄像头看到的现实世界整合:运动跟踪、 环境理解、光估计。那么我们就来详细说一下这三个方面的原理,然后一并学习一下ARCore带来的新概念。一、运动跟踪 在2D和3D空间中跟踪用户的运动并最终定位它们的位置是任何AR应用程序的基础,当我们的移动设备在现实世界中移动时,ARCore 会通过一个名为并行测距与映射(Concu...原创 2018-08-09 22:20:11 · 9706 阅读 · 0 评论 -
ARCore之路-技术原理(一)
一、位置追踪 谈到位置追踪,不得不说SLAM(simultaneous localization and mapping)即时定位与地图映射, SLAM最早由科学家Smith、Self、Cheeseman于1988年提出,SLAM 问题可以描述为:将一个机器人放入未知环境中的未知位置,是否有办法让机器人逐步描绘出此环境完全的地图,所谓完全的地图(a consistent map)是指不受...原创 2018-08-08 22:43:47 · 14968 阅读 · 8 评论 -
ARCore之路-前言
一、AR(一)、什么是AR 增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。 早在1901年,作家L. Frank Baum第一个提出将电子数据叠加在实现之上产生虚拟与实现混合的思想,当时他把这种技术称之为“字符标识”,这是有...原创 2018-08-07 21:36:25 · 3770 阅读 · 0 评论