Google的虚拟现实



由发明家,智能家居技术传播者,嵌入式专家DataArt的Nikolai Khabarov发布。

本文简要介绍了使用虚拟现实和增强现实的基础知识。 我的任务并不是完全揭示Google VR SDK的所有功能,而是计划为那些对这些技术感兴趣并希望开始使用它们的人提供一个最低限度的基础。

从3D的历史


要查看三维图像,我们需要做的第一件事是为左眼和右眼安排两个不同图像的传输。 显然,当我们在日常生活中观察任何物体时,我们的眼睛会以不同的角度看到它,因为它们彼此之间有一定距离。 实际上,由于这个原因,我们可以感知到周围的三维空间。

3D图像的想法非常古老,有许多技术可以使您再现三维图像。 例如,每个人都在电影院中看到带有不同颜色镜片的立体浮雕眼镜。 图像从两个角度显示在屏幕上,并且色谱分为两部分。 在这种情况下,每个角度都将通过一个过滤器,因此会出现体积错觉。 该方法的主要缺点是显着的色彩还原损失。

在技​​术发展的下一阶段,出现了所谓的快门眼镜,也称为光阀眼镜-它们也用于电影院。 这种眼镜的装置不同:每个镜头都有一个分辨率为一个像素的小屏幕,它可以完全关闭图像或完全跳过图像。 眼镜在屏幕之间交替切换,使我们可以用一只眼睛或另一只眼睛看到图像。 同时,为了观看三维图像,我们需要将眼镜的切换与电视或电影屏幕同步。 这可以通过无线电信道完成,或者通常在屏幕附近的红外接收器和安装在眼镜上的发射器的帮助下完成。 这种方法的另一个缺点是亮度损失-在一半时间内,我们一只眼睛看不到任何东西。 另外,回放设备需要高帧速率。

这个想法的一个有趣的发展是极化技术-在滤波器的帮助下,我们只能截断在不同方向极化的波的必要部分。 当然,每个人都熟悉可以消除眩光的相机偏振滤镜。 对于3D图像,将以特殊方式准备屏幕,其中一些线开始发出垂直偏振光,而另一些线​​-水平偏振光。 在电影院中,当光线向右或向左扭曲时,也会使用圆偏振。

简单是成功的关键


Google Cardboard的发明者使一切变得简单而巧妙,决定使用普通的智能手机来传输三维图像。 在此之前,配备各种屏幕的眼镜有很多选择,但此类屏幕矩阵的分辨率非常低。 而且,这种眼镜非常昂贵。 拟议的Google Cardboard是一块带有两个透镜的普通纸板,可以放在手机中。 这足以用您自己的眼睛看到三维图像。


Cardboard的进一步发展是 白日梦 -该设备在工作原理上与以前的设备没有区别,但是与之相比具有明显的优势。 特别是Daydream本身的制造材料不再只是硬纸板,而是更高的质量。 另一个无可争议的优点是Daydream本身的软件支持。

任何手机的屏幕都有一系列功能,例如纸板镜片。 传统的Cardboard以QR码的形式标记,在将手机放入其中之前,必须先阅读此代码才能将镜头参数输入手机。 通过组合参数,设备可以计算如何显示图像,从而以最小的失真到达您的手中。

使用Daydream时,仅需放置设备就足以使用NFC读取眼镜本身的参数。 标签本身隐藏在封底中。

纸板还具有一个小的控制面板; 许多制造商已经发布了Cardboard及其遥控器的类似产品,种类最丰富:惯性,重力和操纵杆。 Daydream有两个按钮和一个小的触摸板,可让您在空间中移动对象或通过移动手指来移动自己。 在眼镜本身的情况下,硬纸板只有一个按钮,可以简单地记录下印刷的过程并将该信息传输到手机屏幕上。

硬纸板可以与任何物理上适合盒子本身并且非常便宜的电话一起使用。 要在撰写本文时与Daydream一起使用,仅通过了三款手机的认证:ZTE Axon 7,Google Pixel和Motorola Moto Z,他们计划向其中添加新模型,但是要使用Daydream,至少需要Android 7.0操作系统。

与虚拟现实的互动


最有趣的部分开始于我们不只是看三维图像(也可以在电视上看到3D图像),而是开始转头。

任何现代电话都配备有微机电传感器。 这些是显微镜设备,其中电子设备和小型移动机械零件被收集在晶体上,从而可以跟踪各种外部因素。 也许每个人都知道陀螺仪是什么-可以通过它找到旋转角度的设备。 对于MEMS传感器,陀螺仪本身不会给出旋转角度,而会给出角速度。 它的内部有一个小元素在科里奥利力的作用下移动(我希望您从物理学的过程中记住它是什么)。 这样您就可以知道角速度,并且已经对其进行积分,我们可以确定旋转角度。 的确,这种方法的缺点在于,将手机转向不同的方向,我们很可能将无法返回到原来的位置。

第二个有趣的传感器是加速度计。 它确定作用在电话上的力,特别是重力加速度。 在平静状态下,它将显示出我们星球上惯常的重力加速度,相当于大约9.8 m /s²。 但是,如果我们开始移动或旋转手机,则会使其加速。 结果,在这些时刻,传感器将无法提供必要的读数。 只有当我们停止移动时,系统才会平静下来,我们才能识别出指向地球的力。 如您所见,为了简单地确定手机在太空中的位置,我们提到的两个传感器都不适合。

但是,鉴于陀螺仪会随着时间而“逃逸”,而加速度计仅在旋转时会“逃逸”,因此可以使用各种数学方法(例如卡尔曼滤波器)来计算设备的位置。 如果您是为Android编程的,您可能会注意到,在Android SDK本身的传感器列表中,不仅有加速度计和陀螺仪,而且还有所谓的TYPE_ORIENTATION。 这只是使用两个传感器的信息来计算手机位置的数学方法之一。 通常它们本身被组装在一个微电路上,通常在其上放置一个磁场传感器,即一个指南针。

那些对直升机感兴趣的人,可能会注意到在新型号上出现了“晴雨表”字样。 显然,该设备不适用于天气分析。 这种传感器用于测量大气压力以确定高度。 它也可以在手机中使用,我们可以计算出它沿垂直轴移动到最接近的厘米的距离。 自然,需要使用滤波器对读数进行平滑处理。


练习


谷歌已经为其Cardboard和Daydream设备发布了Google VR SDK。 后者是一组组件,可帮助我们开发专门用于显示3D现实的应用程序,它在iOS和Android上均可用。 该SDK可以轻松为虚拟现实和增强现实构建应用程序。

Google VR SDK可以处理传感器的所有工作,因此,我们无需计算四元数就可以了解在转动头部时如何在OpenGL中旋转场景。 只需将View放在活动上,SDK将自己完成所有操作。

让我们快速看一下如何快速入门Google VR SDK,以及如何创建简单的Android应用。 首先,您将需要预装Android Studio。
从官方git仓库下载SDK。 SDK文档可在此处获得

现在,只需使用Android Studio打开存储库的根目录。 在这里,您可以找到可以从源代码编译并在Android设备上运行的示例。 该项目立即具有用于运行示例的配置。



Daydream还具有自己的小型控制器,SDK也支持该小型控制器。 它具有一组回调函数,您可以在设计中安全地使用此控制器。 SDK的“ sdk-controllerclient”中有一个特殊的示例。

对于最真实的感知,我想感受声音,以便清楚地知道声音来自何处,指向何处以及在什么环境中分布。 为此,库中有一个GvrAudioEngine,它类似于简化的Open Audio库或Direct3D声音。 在空间中传达声源的坐标就足够了,库本身会根据需要混合声音。 您可以指定环境的各种材料,例如,您可以构建一个场景,在该场景中,左右栏会播放不同的音乐,还可以指定更多的声源。

示例“ sdk-treasurehunt”是在纯OpenGL上实现的相当简单的游戏。 它还使用GvrAudioEngine赋予游戏环绕声效果。

有一个Google VR SDK和一个精美的视图集,您可以将它们嵌入应用程序中。 特别是,VrPanoramaView是用于以360度显示全景照片和立体显示的组件。 您只需将照片放入应用程序的资源中,然后在一行中调用VrPanoramaView.loadImageFromBitmap()即可拍摄并显示特定图像。 结果,您将获得一个现成的组件,用户可以在其应用程序中看到它-这是一个普通视图,与Android中的其他每个视图相同。

您可以在一个屏幕上一次显示多个这样的组件,您可以全屏显示一个组件,同时,要在眼镜和简单显示之间切换,只需单击库将绘制的按钮。 也可以使用VrVideoView组件添加视频。 而且,如果您厌倦了观看视频,可以倒带视频。

SDK的“ sdk-simplepanowidget”和“ sdk-simplevideowidget”中的两个示例显示了使用此类内置对象创建应用程序非常简单。

问题出现了,在哪里可以得到这样的视频和图片? 但是一些公司已经开始生产小饰品形式的相机,小饰品的两侧都有镜头。 在他们的帮助下,您可以360度拍摄全景照片-他们甚至可以自己独立连接它们-但视频无法正常工作。 为此,您将需要一个相当昂贵的设计和特殊的软件,该软件可以粘合生成的图像并将其转换为适合在虚拟现实中显示的内容。



奥德赛解决方案包括16个同步摄像机。


申请书


所描述的技术可以在哪里应用? 第一个选择显然是游戏。 通常,OpenGL是需要深度感的射击游戏和其他游戏。 Netflix最近启动了一项用于显示3D内容的服务,该库还可以帮助您编写某种自定义电影显示解决方案。

您可以使商店中的客户使用电话在价格标签旁边看到他们的其他描述。

您可以将它们应用于房地产销售。 与买卖双方见面通常很不方便。 借助此类视频,买家可以更轻松地提前评估他是否应该去观看该物品。

博物馆是应用技术的另一个理想场所。 在现代博物馆的大厅内,经常有计算机,您可以通过这些计算机访问其他信息,听一些东西。 但是这些计算机经常很忙,每个人都可以随时使用手机,并且他能够在展览中添加增强现实元素。 该图书馆几乎可以使用任何设备型号,如果需要,我们可以向博物馆参观者传达更多信息。


这是一则简短的Google广告,展示了虚拟现实眼镜中的Google Earth外观。 您可以在常规显示器上观看此类视频,但眼镜上的相同图片看起来非常庞大。 使用Daydream遥控器可以在太空中移动,对于某些手机,也可以使用气压计并只需转动头部即可移动。

使用此类技术的另一个非常有趣的想法是3D打印。

一家初创公司建议用户使用增强现实技术与其他任何建模工具一起构建模型。 使用常规控制器,您将无法获得高精度模型-误差将非常大。 但是,我们可以在此类控制器的帮助下创建小型纪念品,并直接从应用程序订购该纪念品以在3D打印机上进行打印。 这个想法很好,很快就会获利,特别是因为此类产品的打印机价格越来越便宜。

Source: https://habr.com/ru/post/zh-CN401809/


All Articles