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

2024-03-12 02:08

本文主要是介绍Google Cardboard 虚拟现实眼镜开发初步(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

虚拟现实技术简介


转自:http://www.bkjia.com/Androidjc/1041792.html 

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

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

据说Oculus的逼真程度是非常之高的,和国内目前比较容易接触到的魔镜一类效果差距是很大的,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最初是谷歌法国巴黎部门的两位工程师大卫·科兹(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,之后还会教大家非常简单的做出自己的第一个CardBoard应用,大家从淘宝上花不到10块钱买一个Cardboard或者买个暴风魔镜就可以测试自己的虚拟现实应用了,敬请期待


这篇关于Google Cardboard 虚拟现实眼镜开发初步(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/799815

相关文章

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示