谷歌纸盒---基于智能手机的廉价VR眼镜

    如果用汽车来做类比,Oculus Rift和GearVR就是特斯拉和兰博基尼,它们物美但是价不廉。要是主机性能不好,那么几百美元的Oculus眼镜就是一个鸡肋。GearVR的体验效果非常出色,但是同样价格很贵,只有那些狂热粉和前期开发者才会购买。希望以后这种高端VR设备价格降低,这样才能推向大众市场。

    同时,除了高端设备,还有谷歌的纸盒VR眼镜,它非常简陋、廉价,它能简单的将你的智能手机变成VR设备。2014年谷歌推出了这款纸盒眼镜,可以轻松地将你手机变成VR设备而不需要其他任何硬件。谷歌纸盒仅仅需要一个纸盒和两个凸透镜片,总价也就2美元的样子,里面放上你的手机就可以了。

    谷歌纸盒最早是在2014年五月的I/O大会上面亮相的,下面图2-5是它的照片。
 
图2-5

    要体验谷歌纸盒,只需要下载安装谷歌纸盒支持的应用程序,然后将手机放在纸盒里运行程序就可以了。这时,你可以沉浸式地体验VR场景,你可以通过转动你的头部四周环视,效果不是很好但是还不错,毕竟只花了2个子儿。

    谷歌并没有把这个纸盒作为产品销售,它只是一个规格,你也可以根据这个规格自己DIY一个VR眼镜,下面是谷歌纸盒的规格说明书地址:https://www.google.com/get/cardboard/manufacturers.html。

    如果你没空没闲心自己做一个纸盒,你也可以任何一家厂家购买已经集成好的产品,厂家包括:DODOcase、I Am Cardboard、Knox Labs、Unofficial Cardboard。这些厂家不仅出售纸盒,而且还提供相应的手机APP,你可以在Google Play和iTunes store上面下载它们。

    据谷歌统计,2015第一季度谷歌纸盒使用人数达到了100万,而Oculus Rift和GearVR的销量就显形见拙了许多。谷歌纸盒是一股强大的力量,目前,基于谷歌纸盒的应用达到了几百个,包括:游戏、全景视频、仿真教育等。谷歌纸盒现在如日中天,尽管它的体验效果不如Oculus Rift,但是对于许多人来说,他们第一体验VR都是用的谷歌纸盒。

谷歌纸盒的立体渲染和头动追踪技术

    谷歌纸盒的立体渲染做得比Oculus的简单多了,它支持90度的FOV。它的SDK可以将场景渲染成左右眼两个视口,下面图2-6是Dive制作的城市过山车游戏截图。
 
图2-6
    谷歌纸盒的头动追踪就更简单了,它直接使用的是手机内置的陀螺仪。

谷歌纸盒的输入

    对于输入方式,谷歌纸盒在这方面还有许多要提升的,因为使用时手机被封在盒子里了,不能触摸屏幕实现点击和滑动。为了解决这个问题,谷歌纸盒使用了一个磁铁,这个磁铁用户可以在外面控制它,它会模拟屏幕点击效果,当然,这个功能不是每个手机都支持的。

    有些厂商使用了一种更加通用的方式模拟屏幕点击效果,例如旧金山的DODOcase公司,它主要生产平板电脑和手机,现在研发出用一个木质的杠杆来触动一块橡胶来模拟手指触摸,利用这个机制,开发者可以用标准触摸方式来控制程序。其他一些厂商用蓝牙这类的外设来提供输入。

开发谷歌纸盒应用

    谷歌为其纸盒提供了两套SDK,一套用作原生安卓开发,一套用作Unity3D引擎开发,它们都可以在下面网址下载:https:developers.google.com/cardboard/overview/。

    第六章中我们将详细介绍使用原生SDK开发谷歌纸盒的应用程序。

    另外,不一定非得安卓开发者才可以开发谷歌纸盒应用,因为安卓系统支持WebGL,你可以开发webVR程序,这方面的内容我们将在第五章中介绍。

《VR入门系列教程》之9---谷歌纸盒的更多相关文章

  1. 《VR入门系列教程》之1---预热篇

     序     初识虚拟现实技术,非常倾心,奋力习之,阅<Learning Virtual Reality>一书之后觉得甚好,但不愿独乐乐,于是翻译之,与大家共同学习.本人学艺不精,难免有翻 ...

  2. 《VR入门系列教程》之6---VR硬件介绍及DK1

    第二章 VR硬件介绍     本章主要介绍当前比较流行的消费版VR设备,包括VR头显以及应用运行的PC和手机平台.     即使是在这工业高速发展的时代,一些大厂(比如Facebook的Oculus ...

  3. 《VR入门系列教程》之14---面向大众的Unity3D

    大众化的游戏引擎--Unity3D     并不是所有VR应用都是游戏,然而现在做VR开发的几乎都会用专业游戏引擎来做,因为游戏引擎既满足了一个引擎的要求又可以方便地制作出高品质的VR应用.一个游戏引 ...

  4. 《VR入门系列教程》之3---运动追踪与输入设备

    运动追踪设备    第二种可以使人脑相信它真实处于虚拟世界的关键技术就是运动追踪技术,它可以通过追踪头部的运动状态实时更新渲染的场景.这与我们在真实世界中观看周围非常类似.    高速的惯性测量单元( ...

  5. 《VR入门系列教程》之2---VR头显

    什么是虚拟现实?     虚拟现实的目标:让人们相信真实地处于一个虚拟世界中.要达到这个目标就得让人们的大脑(负责视觉和运动感知部分)欺骗他们.不同技术合在一起才可以创造这种幻觉,包括:     全立 ...

  6. 《VR入门系列教程》之20---使用Oculus移动端SDK

    使用Oculus移动端SDK     在基于安卓系统的GearVR上开发应用需要用到Oculus的移动端SDK,下面的网址可以下载SDK:http://developer.oculus.com     ...

  7. 《VR入门系列教程》之19---GearVR开发初识

    本章我们来介绍一下如何在移动VR设备的佼佼者GearVR上进行开发,之前我们在桌面端的VR开发想法可以直接应用在移动端,但是仍然会有些不一样的技术需要注意.这次,我们仍然采用Unity3D引擎构建示例 ...

  8. 《VR入门系列教程》之18---Oculus代码剖析

    代码剖析 原文作者:Tony Parisi     那么,Unity究竟是如何支持Oculus VR运行的?首先,我们来看看Unity场景是如何构建的.在Unity集成开发包中有一个相机预设体,这个预 ...

  9. 《VR入门系列教程》之17---发布第一个应用

    发布运行     Unity可以支持多种目标平台的发布,包括:桌面端.Web端.移动端.游戏主机端.     发布运行之前的Cubes场景至桌面端,我们先选择File->Build Settin ...

随机推荐

  1. Codility----PassingCars

    Task description A non-empty zero-indexed array A consisting of N integers is given. The consecutive ...

  2. 面试官:你了解过Redis对象底层实现吗

    上一章我们讲了Redis的底层数据结构,不了解的人可能会有疑问:这个和平时用的五大对象有啥关系呢?这一章我们就主要解释他们所建立的联系. 看这个文件之前,如果对ziplist.skiplist.int ...

  3. Spring cloud stream【消息分区】

      在上篇文章中我们给大家介绍了Stream的消息分组,可以实现消息的重复消费的问题,但在某些场景下分组还不能满足我们的需求,比如,同时有多条同一个用户的数据,发送过来,我们需要根据用户统计,但是消息 ...

  4. windows下nginx的安装和使用

    LNMP的安装与配置 windows下的nginx安装和使用 1.1 去官网下载相应的安装包:http://nginx.org/en/download.html 1.2 解压后进入PowerShell ...

  5. Spring Boot2(四):使用Spring Boot多数据源实现读写分离

    前言 实际业务场景中,不可能只有一个库,所以就有了分库分表,多数据源的出现.实现了读写分离,主库负责增改删,从库负责查询.这篇文章将实现Spring Boot如何实现多数据源,动态数据源切换,读写分离 ...

  6. iOS App开发的那些事儿2:如何搭建合适的框架

    <iOS App开发的那些事儿>系列文章从更宏观的角度出发,不仅仅局限于具体某个功能.界面的实现,而是结合网易云信iOS端研发负责人多年的经验,从如何优化现有代码的角度出发,深度分析如何创 ...

  7. tensorflow学习笔记-bili莫烦

    bilibili莫烦tensorflow视频教程学习笔记 1.初次使用Tensorflow实现一元线性回归 # 屏蔽警告 import os os.environ[' import numpy as ...

  8. spring 5.x 系列第9篇 —— 整合mongodb (xml配置方式)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 配置文件位于resources下,项目以单 ...

  9. memcache常见现象(一)雪崩现象

    memcache常见现象(一)雪崩现象 解释:memcached雪崩现象就是因为缓存服务器出现问题导致数据库压力增大,导致数据库不能正常运行. 1.很多大的公司网站可能会有很多台缓存服务器,这样如果其 ...

  10. java常用基础(一)

    Java常用基础(一) 原文写于2017-12-02 输入输出 //输入 Scanner in = new Scanner(new BufferedInputStream(System.in)); i ...