前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小米:VR产业中Android的现状与挑战

小米:VR产业中Android的现状与挑战

作者头像
IT大咖说
发布2018-06-04 15:47:07
5770
发布2018-06-04 15:47:07
举报
文章被收录于专栏:IT大咖说IT大咖说

内容来源:2017年11月16日,小米高级研发经理李政在“droidcon 北京2017安卓技术大会”进行《移动VR的现状和展望》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:2575 | 7分钟阅读

摘要

我们将探讨虚拟现实产业中Android的现状,以及当前VR设备所面临的瓶颈,如何通过技术层去一一解决,未来的发展中又面临着那些挑战。

嘉宾演讲视频及PPT回顾:http://suo.im/2LJpfn

概念区分

为了便于大家区分VR、AR、MR,这里我通过三部电影加以说明。

黑客帝国中的世界就是一个虚拟世界,所有的一切模仿现实模拟出来的,这就是我们说的虚拟现实,也就是VR。

钢铁侠中当主角穿上装备后,透过头盔所显示的不仅仅是所看到的现实场景,还有对所见到的事物的分析,这里的重点就是对真实世界信息的叠加,它就是AR(增强现实)。

而王牌特工中某一个场景——一堆人聚集在一起开会,这里面不仅有真实的人物,还有通过设备投影过来的人物头像,这就是真实与虚拟世界的混合,也就是MR(混合现实)。

虚拟现实现状

这张图是国外的一家公司发布的关于新兴技术成熟度曲线,每年都会更新。

每一项新兴技术在向上发展的过程中都会有一个泡沫期,当泡沫破裂的时候会跌倒谷底,随着是推移又会慢慢发展,最终走向大众的视野为用户所用。

我们可以从图中看到虚拟现实处在一个缓慢的爬坡阶段,标注的浅蓝色表示这项技术在3-5年后才能发展成熟。

上图表格数据是来自RDC,可以看到2016年整个VR的出货量大概是900多万台,而2017年相对来说还有着提升,需要注意的是这里的数据不包含类似CardBoard的简易版的VR。

在所有的VR设备中移动VR占比达到了67%,另外的33%是需要连接到主机和pc端使用的设备。而在移动VR中,由于苹果并没有准备相应的VR环境,所以目前的移动VR大多是安卓设备上的。

这张移动VR趋势图来自unity引擎,VR中大量的应用都是通过该引擎制作的。从图中我们看到VR的发展趋势是一直往上的。

我们来对比下整个智能手机的发展。在2009年到2010年智能手机保有量增长了42%,内存曾了74%,而移动VR设备在2016年到2017年增长了178%,应用增长了184%。

关键指标

VR设备存在一个核心的痛点,就是使用的过程中会使人眩晕。这里牵扯到了一项叫做Motion-To-Photon Latency的技术,当用户通过头部转动调整视野的时候,转动的数据会通过USB传输给游戏引擎,经过渲染后由显示器输出,然后进行像素点切换,最后用户就会看到新的图像。这整个过程存在一个物理像素点的延时问题,一般20毫秒内才不会使人感到眩晕。

优化

我们来详细看下整个过程中的时间耗费,首先头部转动数据传递给系统需要耗费1毫秒,接着游戏引擎通过数据对图像进行重新渲染大概是2-5毫秒,这里要进行优化的话,其实和传统的3D游戏优化方式没什么区别。

上面的过程通过传统的方式就可以进行优化,而显示器的输入部分则需要VR的核心技术来帮助它进行优化。

Triple-Buffering和Single-Buffering

为了更好的了解显示器的输出,这里展开看下Triple-Buffering和Single-Buffering的区别。

安卓的整个渲染系统用的就是Triple-buffering,它是为了解决动画流畅性的问题, 而在处理延迟问题方面明显不足。游戏引擎所渲染的每一帧Triple-buffering都是写到Buffer中的,只有当GPU当中的Buffer被物理显示屏扫描到后才能将后面Buffer换到前面。对于以一个普通的60HZ的手机显示屏来说扫描一帧的时间就是16.67毫秒,而要完全显示新的图像则达到了30多毫秒。

由于Triple-buffering无法满足延时的要求,所以就需要Single-buffering出场了。这是一项比较早期的技术了,之所以被抛弃,是因为Single-buffering存在画面撕裂的问题。

Single-buffering的buffer读写是同步进行的,当一部分数据还没有读取完的时候,新的数据就写了进行,下次读取到的就是新的数据了,这也就是画面撕裂的原因。

为了应对这一问题,安卓系统采用了一种严格对实的策略。普通的手机屏幕是从上到下从左到右的点亮过程,所以左下角的点是最先被扫描到的,当扫描到8.34毫秒的时候,左半屏的图像已经被扫描完,并且这部分的buffer可以不用去读取了,这个时候就要去写GPU内左半屏的buffer。到16.67毫秒的时候,右半屏执行同样的过程。这样交替扫描就解决了撕裂的问题。

Asynchronous Timewarp

还有一个问题,就是如何做到每一帧延迟都小于20毫秒,拿游戏中的现象来说,就掉帧问题。由此引出了VR里面的一个核心技术Asynchronous Timewarp,其原理就在于使用上一帧的图像来替换当前帧,当然上一帧的图像需要通过相机的相应的偏移来抽出,当然在3D的情况可能会出现一些透视问题,不过由于这一技术只是在预算时间不够的情况下才使用,造成的影响不会太大。

现在来看下像素点切换,OLED的屏幕进行像素点切换的时间是0.1毫秒,而LCD需要20毫秒,所以现在比较好的VR设备都会选择OLED的屏幕。

未来的展望

硬件的改进

一块屏幕有362pi就被定义为视网膜屏,但是如果想要在VR中获得视网膜屏的现实效果,那么屏幕就需要达到2292ppi左右。不光是屏幕的需要提升,为了匹配这块屏幕其它的GPU、CUP等硬件同样需要提升。

输入输出创新

常见的VR设备会提供手柄类的外设进行输出,通过视觉和听觉上的反馈进行输出,目前还有些厂商制造出了能够提供力反馈的手套,这样进一步发展的话用户就能获得更优的体验。

内容的丰富

目前来说VR应用的绝对值还不是很多,这方面就只能依靠众多的开发者打造更优质的内容。

今天的分享就到这里,喜欢本次分享请给我点赞~谢谢大家!有什么问题可以在评论区讨论。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档