谷歌ARCore技术特性简介
谷歌美国时间2017.8.29号刚发布了ARCore预览版,这是一个类似于苹果ARKit的增强现实SDK,在此之前,谷歌虽然已投资AR平台Tango,但由于需要特定的硬件和传感器,因此并未广泛普及。这次不同的是,ARCore将支持更多的现有Android设备以及将来的新设备。可以说ARCore是谷歌从高冷探戈向广场舞的一个延伸尝试。
比苹果更进一步的是,谷歌深切明白现有数千万网站的重要性,因此还计划发布一个实验版本的Chrome浏览器原型,这样将在Web端也能支持AR,这对于想在网页上添加AR体验的开发者而言是非常令人兴奋的事情。
ARCore支持Java/OpenGL, Unity和Unreal,支持6DOF,主要提供如下3个方面的功能:
运动跟踪(Motion tracking): 当手机移动时,ARCore使用手机的摄像头观察房间特征点和IMU传感器数据来确定位置和方向(姿势),这样确保虚拟物体被精确放置。
环境理解(Environment Understanding):AR物体通常被放置在桌面或地面上,ARCore使用和运动跟踪相同的技术来检测水平面。
光线估计(Light estimation):Arcore观察环境光,使得开发者可以给虚拟物体添加光照效果来匹配其环境,使其看起来更加真实。
而ARCore对网页的支持,谷歌计划针对ARCore发布实验版本Chrome浏览器原型,另外显然网站需要支持https,这样网页可以使用用户摄像头(Camera),然后通过摄像头来拍摄用户周边环境并利用ARCore提供的上述功能来像机器人一样“理解”环境,并把3D场景添加到真实环境的合适位置,比如把一个虚拟棋盘放到桌面上,把一个3D熊猫放到竹林中。
谷歌同时提供一些方便的工具来帮助用户来制作AR内容,如 Blocks 和 Tilt Brush。
ARCore是开源项目,其代码库位于:http://github.com/google-ar
有一些基础的演示实例:http://experiments.withgoogle.com/ar
在Web上支持ARCore的项目位于:WebAROnARCore(使用Chromium "WebView Flavor" 的一个Fork版本)
另外一个有价值的资源是基于Three.js的AR扩展:https://github.com/google-ar/three.ar.js
最新评论
- 相关文章
常见面试题JavaScript闭包(ES5语法)
JavaScript闭包(Closure)是常见的JS面试题,是否理解闭包是一个简单的区分JS初级和高级程序员的判例。几乎每个JS程序员都在使用闭包,有意或无意间。比如编写一个jQuery鼠标点击处理函数:$(function()
使用CSS3 box-decoration-break特性实现多行文本样式
当文章中的长文本被自动断行为多行文本时,其样式可能会出乎我们的设计。本文介绍如何使用CSS3中的box-decoration-break特性来处理多行元素样式。
按照规范...Web界面编程状态变化和JS开发框架(React/Angular/Ember)
UI编程中的一个关键课题就是界面组件化(可复用)以及组件状态管理。稍早一些的windows程序员可能接触过MFC,其界面编程中有一个DDX(DoDataExchange)的机制,...
深入理解JS和CSS3动画性能问题和技术选择
本文对比了JS及其框架和CSS3的动画性能,并深入剖析了其内在原因。技术结论大致如下:1. jQuery出于设计原因,在动画性能上表现最差2. CSS3由于把动画逻辑推给了...
HTML5动画背后的数学 - 粒子群仿生算法简介
本站收录了多个算法可视化动画,如模拟鸟群运动:http://wow.techbrood.com/fiddle/30529等等。这里面除...
使用SVG和CSS3创建圆形进度条动画
圆形进度条是一个经典的控制面板元素,常用于显示任务进度,比如用户档案的完整程度,或者升级状态。有很多方法来实现圆形进度条,比如用JS, CSS3, Canvas, SVG...
WebGL 纹理映射模式以及WRAP_S | WRAP_T参数详解
我们在纹理滤镜一文中已经说明了2个重要的纹理参数,用来定义对象缩放时纹理的处理方式:GL_TEXTURE_MIN_FILTERGL_TEXTURE_MAG_FILTER本文讲解其余几个纹理参数...
WebVR简介和常用资源链接
什么是WebVR这是一个实验性的JavaScript API,提供了在用户网页浏览器中访问虚拟现实设备的统一接口。当前主流VR设备如Oculus Rift DK2、谷歌的CardBoard、三星...
WebGL入门教程2 - GPU基本概念和工作流水线(渲染管道)
如何基于Canvas来模拟真实雨景Part2:重力掉落和雨滴融合
jQuery Ribbles - 基于WebGL的水面涟漪动效插件
使用jQuery
如何使用CSS3实现一个平滑的3D文本标题
要实现3D文本,基本上有3种方法:1. 使用CSS3的投影滤镜(filter: drop-shadow)2. 使用3d建模和CSS3 3d变换来实现(最真实)3. 使用CSS3 text-shadow属性来实现...
div 、section 、article的区别和使用场景
div 、section 、article的区别和使用场景
主要区别,以及适用场合如下:
1、div在html早期版本就支持了,section和article是html5提出的两个雨衣话标... 更多...