谷歌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
最新评论
- 相关文章
HTML5 And Canvas 2D Specs Are Now Feature Complete, First HTML 5.1 Working Draft Published
We’ve been writing about HTML5 for quite a while, but, until today, the actual HTML5 specs and standards were still moving targets. Now, however, the...
WebGL、Asm.js和WebAssembly概念简介
随着HTML技术的发展,网页要解决的问题已经远不止是简单的文本信息,而包括了更多的高性能图像处理和3D渲染方面。这正是要引入WebGL、Asm.js和WebAssembly这些技...
WebGL Roadmap
Unity 5.0 shipped with a working preview of our WebGL technology in March this year. Since then, Google has disabled (by default) NPAPI support in the...
Web界面编程状态变化和JS开发框架(React/Angular/Ember)
UI编程中的一个关键课题就是界面组件化(可复用)以及组件状态管理。稍早一些的windows程序员可能接触过MFC,其界面编程中有一个DDX(DoDataExchange)的机制,...
使用HTML5 Canvas实现的界面元素截屏功能
三维向量的简单运算和实用意义
在WebGL的实际应用中我们广泛使用向量的几何运算来计算角度、距离,判断点线、点面之间的关系,比如物体之间的碰撞检测。本文简要介绍三维计算机图形学中常用的...
如何实现SVG clipPath自适应被裁剪对象
CSS3中引入的clip-path(裁剪路径)属性是一个很强大的特性。
clip-path的含义如下图所示,好比剪纸一样,你用剪刀沿着某条路径把目标对象(图像或元素)裁...WebGL入门教程4 - 使用纹理贴图(Texture Map)
3D建模和纹理贴图的关系就好比人体和皮肤(或着装)的关系,3D建模用来处理空间属性,而贴图适合用来处理细腻的表面属性。如果不使用贴图,而想在表面达到足够的...
如何使用WebGL创建一个逼真的下雨动画
之前写过文章来分别讲解如何使用CSS3和Canvas2D实现过雨滴和下雨动画。通过背景处理看起来也有视觉上的3D效果,但并非真正的3D场景,如果要加入用户交互,进行36...
IE各版本CSS Hack(兼容性处理)语法速查表
为了兼容IE各个版本,需要在CSS中添加额外的代码,比如以前常用的_width。之所以工作,是因为浏览器会忽略不能解析的样式规则,因此举个例子来说,把_width写在w...
浏览器控制台报JS脚本执行错误:Module is not defined
现在JS分成了两个分支,一部分在服务器端发展如NodeJS,一部分是传统的浏览器运行环境。
有些插件在编写JS代码时,是针对Node编写的,所以直接在浏览器中使...WebGL入门教程3 - Canvas、Context、API和绘制一个矩形
如何基于Canvas来模拟真实雨景Part2:重力掉落和雨滴融合
jQuery Ribbles - 基于WebGL的水面涟漪动效插件
使用jQuery
如何使用纯CSS3实现一个3D泡沫
要实现一个逼真的泡沫,涉及到比较复杂的光学/物理学知识。我们这里先简化下问题,实现一个相对简单而足够实用的泡沫元素。我们可以把基础的泡沫元素应用在很多场景中,比如水景、泡咖啡、啤酒甚至火焰特效中。泡沫首先是一个圆形元素.bubble
更多...