zoukankan      html  css  js  c++  java
  • Cardboard虚拟现实开发初步(一)

    Google Cardboard 虚拟现实眼镜开发初步(一)

    虚拟现实技术简单介绍

    不得不说这几年虚拟现实技术逐渐火热,伴随着虚拟现实设备的价格迅速平民化,越来越多的虚拟现实设备来到了我们眼前,也因此虚拟现实方面的开发离我们也越来越近。

    这几年迅速崛起的Oculus,其成功就在于拉近了虚拟现实与群众的距离。把原本价格高不可攀的虚拟现实设备放到了我们能够触手可及的位置。Oculus的技术开辟了全新的体验和可能性。不仅仅在游戏领域,还在生活、教育、医疗等诸多领域拥有广阔的想象空间,Facebook在2014年7月宣布以20亿美元的价格收购Oculus。

    据说Oculus的逼真程度是非常之高的,和国内眼下比較easy接触到的魔镜一类效果差距是非常大的,Oculus 官方宣称他具有110 度的视角,而且带有头部姿态传感器,Oculus通过不断地优化大大减少了头痛、恶心感,而且利用全位置跟踪功能和高分辨率的显示屏,提供了更加逼真的感受。

    Oculus Rift一些早期版本号导致使用者出现恶心或神志不清的状况,但最新的“Crescent Bay”推出之后,这样的情况非常少出现了。

    造成头痛、恶心感的主要原因是延迟

    Oculus团队内部有一个词叫Motion-to-photons latency。意思是指从玩家运动头部到在屏幕上看到新图像为止的一个周期里所产生的延迟时长总和,Oculus的任务就是尽可能地削减整个流程产生的延迟时长,来消除恶心感。

    近期PewDiePie首次将Oculus Rift头戴式显示器和能够在3D空间内感知手势动作的Leap Motion体感控制器组合在一起,实现了当用户移动头部并全然沉浸在3D虚拟环境中时能够看见自己的双手。

    这里写图片描写叙述

    这里写图片描写叙述

    所以不得不说Oculus是一款非常酷的产品。

    除了Oculus外。其它非常多虚拟现实设备也在发展其中,如:

    • HTC的Vive VR

    • 三星的Gear VR。Gear VR的硬件制造者是三星,但其虚拟技术的提供者是Oculus。
      Gear VR能够提供全然虚拟现实的体验。

      但它使用三星智能手机取代计算机来驱动显示器。

    还有增强现实领域的微软的HoloLens,总体表现令人惊艳。

    这里写图片描写叙述

    最后介绍Google Cardboard,我们的虚拟现实眼镜开发新手教程便是基于Cardboard SDK for Unity

    于北京时间2015年5月29日凌晨0:30在美国旧金山举办的2015谷歌I/O开发人员大会上。素来以大方著称的谷歌并没有像以往那样大派礼物。除了三星或者LG智能手表的二选一外,开发人员还能够领到一个小小的黄色纸板盒Cardboard。

    只是,这个看起来非常寒碜的再生纸板盒却是I/O大会上最令人惊喜的产品,这就是谷歌推出的便宜3D眼镜。

    这里写图片描写叙述

    这里写图片描写叙述

    Cardboard简单介绍

    Cardboard最初是谷歌法国巴黎部门的两位project师大卫·科兹(David Coz)和达米安·亨利(Damien Henry)的创意。他们利用谷歌“20%时间”规定,花了6个月的时间。打造出来这个实验项目,意在将智能手机变成一个虚拟现实的原型设备。

    Cardboard纸盒内包含了纸板、双凸透镜、磁石、魔力贴、橡皮筋以及NFC贴等部件。依照纸盒上面的说明,几分钟内就组装出一个看起来非常简陋的玩具眼镜。凸透镜的前部留了一个放手机的空间,而半圆形的凹槽正好能够把脸和鼻子埋进去。

    Cardboard仅仅是一副简单的3D眼镜。但这个眼镜加上智能手机就能够组成一个虚拟现实(VR)设备。

    要使用Cardboard,用户还须要在Google Play官网上搜索Cardboard应用。它能够将手机里的内容进行分屏显示。两仅仅眼睛看到的内容有视差。从而产生立体效果。通过使用手机摄像头和内置的螺旋仪。在移动头部时能让眼前显示的内容也会产生对应变化。

    应用程序能够让用户在虚拟现实的情景下观看YouTube、谷歌街景或谷歌地球。

    Cardboard原理

    CardBoard的虚拟现实效果是由一款CardBoard与一部安卓手机结合而成。眼镜镜体通过透镜加屏幕的原理,将虚像呈如今人的明视距离处实现了沉浸式的虚拟现实感,眼下国内虚拟现实眼镜(如暴风魔镜等)大都是这个原理,仅仅只是做了仔细的包装,使得佩戴更加舒适,以下为其原理图:

    这里写图片描写叙述

    而屏幕即为一部安卓系统的手机,手机的分辨率与像素密度越大显示效果越好,因为採用了透镜放大与分屏显示的原理,假设分辨率较低,颗粒感会比較严重。

    手机屏幕上须要分屏显示虚拟环境,开发人员还须要调用手机内部陀螺仪等传感器进行视角转变。这一部分的开发无疑有非常多选择,使用纯Android的SurfaceView与openGL ES 开发可扩展性非常强。可是对应的复杂度比較高。导入3D模型等都须要手写代码。亦或者使用3D引擎如Unity3D等进行开发,适合开发游戏。复杂性较低,模拟左右双眼仅仅须要两个摄像机就能够搞定,可是开发复杂应用又会力不从心。总之在开发前要依据项目进行选择开发的方式。

    因为Unity引擎功能强大。基本上能适应大部分需求,而且开发便利。资料非常全,最关键的是Google提供了一个Cardboard SDK for Unity,能够非常方便的进入虚拟现实的世界,所以我们毫无疑问要站在巨人的肩膀上開始旅行了。

    本篇作为系列的开篇,主要是讲了一些虚拟现实的技术和原理,下一篇就会带领大家去看一看谷歌的Cardboard SDK for Unity,之后还会教大家非常easy的做出自己的第一个CardBoard应用,大家从淘宝上花不到10块钱买一个Cardboard或者买个暴风魔镜就能够測试自己的虚拟现实应用了,敬请期待~

  • 相关阅读:
    MongoDB(01):Windows 平台安装 MongoDB
    MongoDB(99):NoSQL Manager for MongoDB 教程(进阶篇)
    MongoDB(99):NoSQL Manager for MongoDB 教程(基础篇)
    echarts(10):旭日图
    echarts(09):ECharts 事件处理
    echarts(08):数据的视觉映射
    echarts(07):响应式
    echarts(06):数据集(dataset)
    echarts(05):数据集(dataset)
    echarts(04):异步加载数据
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7239086.html
Copyright © 2011-2022 走看看