Nibiru CTO曹峻玮演讲(来源:本站频道)
点击查看开物沙龙VR专场专题
本站讯 3月29日消息,由本站、网易创业Club、VR进化论栏目共同主办的开物沙龙VR专场3月25日在深圳举行,Nibiru CTO 曹峻玮在沙龙现场发表题目为《Nibiru:VR系统让VR开发更简单》的演讲。
曹峻玮表示,Nibiru成立与2013年,专注于给一些硬件厂商提供核心的中间层服务,包括交互SDK,还有上层所演化的给手机厂,或者给一体机厂家做的基于安卓的VR系统。Nibiru的总部是在南京,北京、成都和深圳都有办事处。
曹峻玮表示,从一开始Nibiru对PC领域没有太多的关注,当时觉得移动是VR的方向,Nibiru一直在看移动VR。从2014年上半年开始Nibiru就在规划整套的逻辑,Nibiru关注两个领域,第一个领域是Nibiru现在主推的VR一体机;另一个领域就是手机Launcher,即从手机系统底层与VR做融合的手机+VR眼镜的标配方案,这种标配不是说市场买一个眼睛盒子跟手机就能做的,在里面其实,在安卓系统层面要做非常多的优化,才能把这种延迟降到最低,VR体验获得提升。
曹峻玮还从系统和优化、算法、图形图像等几个方面介绍了Nibiru如何给VR做操作系统。(Eric)
分享到 四环变五环 山东电动汽车店惊现山寨豪车
你了解冥王星吗? 10款智能手机摄像头大比拼
以下是曹峻玮的演讲实录:
主持人:我们进入到下一个演讲嘉宾,他是Nibiru CTO 曹峻玮,有请。
曹峻玮:大家好!我是曹峻玮,我今天的报告可能有点偏向于技术,在这个范畴里面,我会将我们很多商务部分的东西拿掉,把这两年在移动VR系统里面,在我们移动端里面做的一些优化,在这里做一些简单的介绍。
首先我大致介绍一下我们公司,我们成立于2013年,专注于去做给一些硬件厂商提供一些核心的中间层服务,包括我们现在所演化的交互SDK,还有我们的上层所演化的给手机厂,或者给一体机厂家做的基于安卓的VR系统,我们的总部是在南京,北京、成都和深圳都有我们的办事处。
我们从一开始我们对PC领域就没有太多的研究,我们当时觉得移动VR是未来的趋势,所以从2014年上半年开始我们就在规划我们移动VR的整套逻辑,对于Nibiru,主要关注两个领域,第一个领域是我们现在主推的VR一体机,是我们最早希望推进的一块,这里放了两个小图,其实还有好多,没有放进来;另外一个就是我们现在手机+和盒子的标配方案,这种标配不是说市场买一个眼睛盒子跟手机就能做的,为了提升体验,降低延时,其实需要在安卓系统层面要做非常多的优化,才能把这种延迟能降到最低,体验获得尽可能大的提升。
事实上,两者各有好处,手机+盒子的方案显而易见,买一个手机,再买一个盒子,盒子就不贵,几十块就能买到,稍微好一点的可能就一两百块钱就能买到,这样就简单便宜。而VR一体机,就相对昂贵一点。两者来看,我们认为交互的话,基本上VR一体机更复杂,相当于已经没有任何原先的交互体验了,进去就系统级就应该是VR的呈现,包括你的设置,包括你后面的wifi,蓝牙,预言等等设置连接,全要在整体化的一个交互体验中,所以这一块工作量很大,而手机+盒子这一块交互基本上延续了原先的交互逻辑,wifi,蓝牙的系统设置连接都是手机交互可以完成的。而VR在里面就只是体验,所以从VR性能体验角度来讲,两者都做了系统的优化,所以对于应用来讲,两者都差不多。两者都是做了底层的系统优化,所以体验都比较好。但是VR一体机有一个好处,它可以做配重。手机+盒子方案,手机要放在前方,手机是核心重量,所以靠外比较重。而VR一体机可以做配重,可以把整体的逻辑做好配重,它就会更便携,更轻,用户体验上也会更好。
这里讲一下我们认为在移动端的VR技术的关键点,首先是陀螺仪的技术,这个东西是现在大家都在看的随动的准确性,到底陀螺有多准,刷新率有多少,就在这个领域。第二个就是图形图像,就是显示的效率,后面会讲一些我们如何跟一些芯片原厂做底层优化。第三个我们叫交互融合,就是前两个技术到了一定程度的时候,两个东西的融合才是这个VR的根本,现在的整个移动技术领域,大家都觉得延时要到20毫秒,但可能大家都不太清楚这个20毫秒是如何定义的,后面会讲一下。第四个技术点是在移动端里面,我们的功耗性能比是必须要看的,因为既然是移动端,不能说玩了20分钟过热了,玩了20分钟没有电了,这肯定是不行的,我觉得这个四个技术是现在移动VR的指标,当然里面还有音频的部分,音频现在因为从游戏来讲,制作程序音频稍微复杂我就不在这里讲了,这可能在以后会讲。
首先我们讲一下传感器的优化,大家知道三星Gear VR的方案是1K刷新率的陀螺仪,为什么它是1K?原因是因为陀螺仪刷新频率越高,这时候陀螺仪带来的延时越低,1K刷新的陀螺仪延时就是1ms,在移动系统里做到1ms以上意义不是很大。
对于移动VR的陀螺仪现在业界有两种方案,一种方案是比较便宜的,直接用的就是手机里的陀螺仪,这个陀螺仪可能大家都知道使用的是I2C总线,速率不是很快,现在也有些方案想使用SPI总线,它的传输速率会高一些,另外一种就是现在以三星GearVR为主导的,用的是外接MCU陀螺仪模块,通过USB传递数据。对于第一种方案由于I2C的总线来传陀螺仪数据,所以如果你的陀螺仪刷新率过高,这个时候I2C协议带来的系统中断对于CPU的损耗过高,手机CPU会发烫特别严重。USB方案想对来讲会好一些。
另外在陀螺仪技术里面融合算法非常重要。所谓的融合算法就是将陀螺仪,加速度和地磁进行有效的融合矫正,使得用户在调用陀螺仪时候保持数据稳定性和准确性,这个都是我们一直在努力做的。
现在有还有一个比较大的趋势,就是大家把这个融合算法,集成在硬件底层驱动里面。这样可以降低CPU的损耗,也增加陀螺仪的效率。我们现在也是致力于把这个算法集成到底层硬件里面去做,大家可以注意到高通发布了他们的SDK,其实我们认为比较好的就是把陀螺仪融合算法放到硬件DSP里面去做了。
第二个就是图形图像的这个部分,有四块我们认为是现在正在做的,第一个就是Front buffer Rendering,这一块后面会详细讲到,因为这块是跟延迟相关的,为什么Latency会较高,原因是因为Android架构的整个系统本身就是非时事性系统,它为了防止一些撕裂或者这种情况产生,本身做了很多同步验证,导致这个延迟就很高。所以Front buffer Rendering我们认为所有的移动VR优化,是必须要做的。
第二个叫做ATW,这个大家应该也很熟,可能在很多地方见过,TW就是Timewarp,这个为了保证你的刷新率保持在稳定的帧数并降低延时,但是这个比较麻烦的,可能涉及到很多GPU的抢占,有一些技术风险的。
第三个我们叫Multi-View Rendering,原先我们是左右眼的图两次渲染,后面希望实现一次代码调用自动绘制两边,这可以提高GPU的性能。我们看到ARM已经提供这样的扩展了。
第四个Multi-Resolution Rendering,这个也是GPU厂家需要优化的,由于图像本身需要做反畸变,四周边缘就不需要那么多分辨率渲染。因为在反畸变算法运行的时候,你的四边已经被压缩了,这个时候你的四边开始渲染用100%分辨率的时候,其实是浪费资源的。目前,我看到已经有GPU厂家支持这样的扩展了,我们正在测试效果。
讲完前面两个技术,我再来讲一下为什么要交互融合。我这里放了一张图,第一步采集陀螺仪数据,CPU计算逻辑,到GPU计算绘制,到最后送到显示器显示。这里所需要的时间就是我们说的Latency。
这里就会涉及到Android是非实时性系统,它图形绘制完成到送显是有三级buffer缓存的,这里就会带来50ms的延时,我们就需要改成上面说的第一个图形图像优化FBR的模式,让图像绘制之后直接送显。但是FBR模式有其显著的问题,会带来画面的撕裂,这也是为什么Android会采用3级buffer缓存,所以VR SDK和FBR的技术同步就需要第一个解决。
第二个就是屏幕的反应延时,比如TFT屏幕延时大概有20ms,而OLED屏只有5ms,这些延时是不可更改的,除非使用技术上更高的技术,如果有人计算延时没有算屏幕反应延时就是不准确的。所以使用TFT屏是不可能做到20ms以下,这就为什么必须使用OLED,这不仅仅是因为OLED的屏幕刷新率高。目前移动VR基本跑在60Hz已经非常棒了,三星就是跑在这个频率。但为什么三星能做到20毫秒以内,因为就算60帧的GPU绘制速率16毫秒加上5毫秒,就已经超过了,这需要刚才说的第二个技术ATW,简单的说就是中间帧生成技术,中文叫异步时间扭曲。
我们就是通过使用ATW技术使得GPU绘制的图像进行一次变换,从而使得显示的图像是以最新的陀螺仪数据为基础的,这个算法需要3ms左右,加上反畸变和反色散的算法2ms,而陀螺仪刷新延时在1ms,那么从陀螺仪采集到GPU图像绘制送显的延时在6ms左右。
接下来就是显示屏刷新延时,由于是左右camera交替刷新,所以这里一幅图的延时就是8.3ms,8.3ms加上6ms,再加上Oled屏的5ms左右反应延时时间,总共加起来19.3ms,这就是三星的20毫秒以内的由来,目前来看我们的Nibiru VR系统已经基本实现了这个逻辑优化。
这就是我们系统端做的技术努力,刚才我解释说,为什么我们要在跟手机厂合作,或者一体机厂,我们给他们做系统优化,原因是因为这些优化全做完了之后,游戏CP再调用我们的VR SDK的时候才能达到这种低延迟效果。CP其他不也不用管了,最后管的就是使用我们配合引擎的plug-in就行,我们的FBR,ATW都已经在我们的底层技术里做了,在整个的Nibiru的系列方案产品中,在使用Nibiru VR系统及手机Launcher的合作伙伴里面,这些所有的逻辑我们都已经完成。
我刚才讲那么多,是想告诉大家,在底层做了很多的优化之后,开发的就很简单,只要采用我们VR SDK就是可以了。我们同时会跟引擎公司合作,推出相应的plug-in。我们会支持Cocos3x,Unity和Unreal等通用的游戏引擎。
再讲一下我们的交互SDK,我们系统做了很多的优化之后,大家用我们的VR SDK就可以很方便的把陀螺仪跟我们图像之间的关系做一个很容易的开发,交互SDK也是一样,我们会融合不同的交互方式,让CP可以更好的去调用这些交互。现在交互的方式,慢慢往更多自然的去走,包括我们说的Leap Motion手势识别,还有我们的空间定位识别,在这个逻辑里面会越来越自然。
最后再讲一下我们会发布一个支付SDK,在我们Nibiru VR系统里面可以使用的支付系统,这个支付系统完全是VR化的,我们弹出的支付不是说我在你的VR应用里面弹出的对话框,是完全融入到里面的控件,是融合在整个的VR应用的场景里面的,通过头部的控制去选择。我的演讲就到这里,谢谢。
本文由VR进化论(微信公号:VR-JHL)整理并拥有独家版权,转载需在文首注明出处,违者必究。
1.《曹峻玮 Nibiru曹峻玮:VR系统如何简化VR开发?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《曹峻玮 Nibiru曹峻玮:VR系统如何简化VR开发?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/486273.html