九又VR技术负责人官山山:九又VR平台架构设计的深层思考
2016年04月22日,由51CTO传媒主办的《中国首届VR/AR技术大会》在北京骏马国际酒店召开。我们邀请了业界知名的技术精英来分享VR/AR热度下最前沿的探索,交流观点并进行实践分享,志在打造一届真正有干货有内容产出的技术盛会。除了技术交流分享外,我们还设置了现场体验专区,提供最新的最流行的VR设备供您体验VR游戏、电影场景等。
下面是来自九又VR技术负责人官山山先生给大家带来的是主题为《九又VR平台架构设计的深层思考》的精彩演讲实录。
官山山,哈尔滨工业大学硕士,研究方向为人工智能、机器学习、系统架构。曾任百度高级研发工程师,移动搜索短视频、作业帮等项目早期创始人。现负责研发九又系统平台,包括9U ROM、9U UI,九又SDK等。
【以下为现场演讲实录】
我是来自九又VR的工程师官山山,我先解释一下“九又”,我们取这个名字是带你进入魔法世界的意思,有人问我们九又四分之三是不是用数字提示你们,不断地向十全十美这个目标迈进,我们确实没有想到这一点,但是我们确实是这样做的。
接下来我们讲一点我们自己在这两年实践中的思考,跟大家一起讨论一下。从以下几个方面开始,先介绍一下九又。我先介绍一下VR的发展史,VR是一门综合技术,它是一个拥有较高技术门槛的一项技术。很多人说VR没有技术门槛,但是我认为把一个普通的应用,把一个普通的游戏直接摁成左右,我觉得这不能算是一个VR应用,它只能算是在VR上可以使用的应用。
在我们开发应用的时候,我们把一个应用左右分屏,这肯定是一种不太好的体验,VR并不是一门新的技术,在1989年的时候,VR概念首次提出来,但是在60年代,计算机创始人首先进行了初步的尝试,但是确实也没有成功,因为技术受限。到了1980年,硬件设备进行了一次大的更新升级,人们又进行尝试,但是这次尝试再次受挫,受挫主要体现在并没有民用化,但是在一些商用化得到了极大的发展,在航空领域,在部队领域,都得到了较大的应用。VR再次引领热潮,是得益于智能手机的发展。
九又从2013年底开始立项,也是看到了智能化设备的发展,从一开始我们做一个VR娱乐设备,2013年底立项。2014年10月推出了第一代工程机,我们不光有图显设备,还有输入指环,这一代没有推向市场,我们衍生目标做一个民用化的产品,我们想着尽可能把它优化,优化以后再推向市场,我们进行了第二步的迭代,在2015年12月的时候,登陆了京东众筹,在2月份的时候,给第一批用户发货,通过市场上的反馈,我们进行了一些思考。
在现阶段VR产品发展的时候,第一个问题,没有内容。为什么没有内容?虚拟现实跟互联网还有一点区别,互联网发展大约有十几年以后,我们才开始提跨界,提互联网+。但是我认为虚拟现实天生就是与传统行业相结合,什么现实?拥有各种行业才是一种现实。而互联网上可能就没有这种本质,所以说它要跨界,但是VR肯定就是跨界的技术产品。我们现在说没有内容,我们去其他行业寻找,有很多这样的情况,我们举一个实际合作的例子。
有专家装修设计公司,有很多装修方案,传统的做法可能就是电脑、大屏幕给客户看一下方案,但是我们看一个屋子,通过图片来展示效果肯定不好,客户看了一遍又一遍,最后看了实际效果不一样。VR的兴起,让他们看到了希望,通过VR的形式更好的展现我们的室内设计。但是他们是室内设计的公司,他们并不懂VR,他们想用这项技术,他们怎么解决呢?他们有他们的困惑,我们把所有的问题归纳总结了以下,有以下几点。
第一点,人机交互没有通用的方案。传统操作电脑、手机都是二维,我们进入三维的世界,对用户来说是陌生的,而且一个应用是这样,另外一个应用还不一样,他学会这个应用再进入另外一个应用他要重新学习,这是用户的困惑。对于开发者,所有的东西不一样了,要重新开发,我添加一个按钮怎么添加,跟手机和电脑上又是不一样的,我开发的这个会不会获得用户的认可,让用户喜欢,我的这种模式用户是不一定认可的。提到人机交互,我想说一点,现在很多的应用开发者,他在开发的时候,在手机上开发,基本上所有的应用打开应用以后,点一下开始,然后才进入一个VR模式,这样子的应用,就遇到很大的问题,一体机没法说拿出来点一下,或者单屏幕操作,用户也吐槽,这不是设备的问题,这个应用就差一步,只要点击开始以后,进去以后就可以操作,但是就差这一步,这也是我们的交互没有通用的方案导致的。
第二点,在研发上没有通用的方案,现在各种各样的平台都有,基于一体机设备的,在不同的设备上面,还有不同的引擎、不同的开发平台。这对用户来说,又有一个困扰,我要体验所有的东西,我要把所有的平台都买了,我要买一个一体机。刚才我说了内容少,还有那么多平台,给用户造成困扰显显而易见。现在我不能做到开发应用照顾到所有的平台,针对每一个平台开发的成本是非常高的。
第三点,外设的管理没有通用方案,在电脑上有键盘、鼠标,但是VR的输入设备是什么?现在没有标准,有手势识别、我们做的是指环,这所有都是不统一的,这对用户来说,我选择你的平台,我只能接入你的外设,想体验其他的外设不支持,用户一下子很难体会到更多的东西。对于开发者来说更痛苦了,可能一个平台上就有多个外设,我要针对不同的外设,都要进行定制开发,开发的成本又大大的加大。
基于以上三点,在开发内容的时候,形成不了闭环,没有特别深入的内容,用户难以找到更多有价值的内容和应用,而研发团队一个应用没法做到足够的应用。这是我们总结的几个问题,现在VR产品发展现在遇到一个问题。
针对这些问题,我们提出了自己小的思考,首先我们选择了一个比较广泛的移动开发平台—安卓,在安卓基础之上可以支持Cardboard、支持Unity定制化开发。谷歌只是给我们提供了一个大约的框架,并没有在VR上提供版本系统,他提供了一个基础的功能,但是并没有告诉我们,你在这上面应该怎么做,谷歌只能说是这个行业的引导者,不是竞争者,我们可以跟着谷歌一起做。
九又VR整体框架
上图是九又的整体框架,我们把这些位置进行了抽象图分析,三个部分,一个是视觉处理;一个是场景容器;一个是外设适配,视觉处理是最重要的,VR是一个输出设备,在这上面要做反畸变、ATW、光场成像。人在看真实世界的,发出的光是无数点发出来的,我们看一个屏幕的时候,只是在一个屏幕上发出来的,本身是欺骗你的眼睛的,这跟真实世界完全不一样,就算把延迟降到10毫秒,还是存在一定程度上的延迟,光上,在视觉处理上非常重要的一点。
场景容器,可以支持多场景的融合,我们把所有的外设进行统一,输出成语义事件,什么是语义事件?比如说最简单的点击,不同的地方点击的定义不一样,一个手势识别可能是一个动作,而一个手表有一个按键,或者一个指环有一个按键,这些东西定义不一样,我们在SDK里面把所有的都分装,把所有的外设进行抽象,所有的都映射到这个事件中。指环是怎么样挥拳动作,我们可以把所有的动作,不一样在上层统一一个接口,这是我们想到的语义事件解析。在语义事件上,不光有外设的,还有其他的,比如说一个系统事件,比如说页面上提示,或者说关机,有一些系统事件,我们也把这些事件进行统一,视为所有的设备。应用事件,可能也需要我们统一成一个标准事件,比如说瞄准,我们把瞄准都统一下来。
九又VR整体方案
上图,上面一层,是SDK内部做的一个事情,我们内部做这些事情暴露出来的接口,上面第二层,提供给开发者的SDK,我们通过下面这层实现,提供给开发者基本的交互组件,包括各种各样的,一个按钮,我们要在空间中显示一个名字,显示一张图片,包括一段视频,或者说一个提示框,我们把这个变成标准的组件,我们可以定义它的位置、颜色、大小,用户就像在传统设备上开发应用一样简单容易。在组件上还有正常的系统运行时的组件,比如说要选择、瞄准,包括外设事件。在这之上,暴露给用户就是最上层的这些。
全局菜单,我们在使用很多设备的时候,我们发现有一些基本的交互是依赖于设备的,比如说我要返回,一些东西要操作要依赖于设备,这样肯定不好,对用户和开发者不好,我们在想交互组件的时候,我们就要把这些全局组件剥离出来,是针对整个平台使用的。我们对全局组件用户可以进行个性化的定制,比如说我有一个全局返回按钮,在每一个开发者内部都根据自己的系统,重新设计全局按钮,我怎么返回,怎么进行操作,这是一点。还有VR输入法,也是我们自己已经做了的,现在把它进行开元,当然现在做的比较简单。还有用户账户、支付系统等等,基本的东西可以构成内容闭环的。本地文件服务不是文件管理,APP Store是云端的应用,本地文件服务就是本地资源的管理,开发者可以有各种各样的形式,让用户进行应用管理,不限于传统的,我摆一个圈,这个地方可以更多更好玩的定制。
用户习惯采集,我们提到了外设,外设都不那么精准,至少我们在这个地方,如果把一些用户的一些常用操作采集起来,这将是一个非常非常有价值的数据。我们也查大数据应用,现在还是仅限于一些网页上比较多,但是未来更大的数据是基于传感器的,人所做的各种各样的操作,如果说我们能把这样的操作收集起来,这样的数据将会是非常非常有价值的。所以说针对用户的操作习惯采集,我们把这些数据收集起来,进行大数据的学习,再反馈到外设,从而不断地提高外设的精度和可用性。