VR公司常说的“异步时间扭曲”技术是个什么鬼?

如果你经常听国内一些技术流的VR创业公司的演讲,那么你对“异步时间扭曲”(ATW)这个词肯定不会陌生。例如自称国内第一家掌握ATW技术的焰火工坊,在他们的第一次发布会上CTO王明杨就提到了这项技术。当时他尝试了进行解释,但后来放弃了,只说“你们知道这很牛逼就行了”。此后CEO娄池也在各种场合提起ATW,包括微信朋友圈。另外一家公司乐相也是。

VR公司常说的“异步时间扭曲”技术是个什么鬼?

焰火工坊CEO娄池和乐相CEO陈朝阳的朋友圈

“异步时间扭曲”这个名称听起来很牛逼,但了解它实际含义的人可能不多。

一种生成中间帧的技术

异步时间扭曲英文是Asynchronous Timewarp,简称ATW。简单来说,这是一种生成中间帧的技术。当游戏画面无法保持足够的帧率时,它能产生中间帧进行弥补,从而维持较高的画面刷新率。这项技术的提出者John Carmack目前是Oculus的CTO。

我们采访了王明杨来解释ATW,他是这样说的:

正常情况下,我们的手机大部分是60hz刷新,也就是说,在理想情况下我们的手机大概要处理有60帧/秒。那么,从数据到渲染就有 1000 /60 ~= 16.6666ms的时延。

那么,如何抵消这个时延呢?卡马克(John Carmack)提出一种方法,通过大量采集陀螺仪数据,在样本足够多的情况下,就可以预测出16.66ms后你头部应有的旋转和位置,按照这个预测的数据来渲染,他管这个技术叫Timewarp。

然而问题又来了,一般VR场景很复杂,我们很难保证每次都在16.66ms内完成一次渲染,也就是我们很难保证每个应用都是60fps。那么卡神又提出一个ATW,就是异步的Timewarp。

他把VR应用的渲染管线设计成两个线程,渲染线程(生产者)和Timewarp线程(消费者),两者异步工作,生产者生产足够多的Framebuffer,消费者把生产者生产的东西做Timewarp之后贴在屏幕上。也就是说,无论你当前游戏的fps是多少,Timewarp始终被设计成保持在60fps(视刷新率而定)。

这就是ATW的核心细节,把Timewarp和产生Framebuffer分离,用高刷新率的Timewarp来换取低时延。

ATW技术在VR中应用的先驱是Oculus,一年多以前他们就在Gear VR上应用了这项技术,3月25日宣布在PC端的SDK上加入ATW的支持。

具体怎么做?

VR公司常说的“异步时间扭曲”技术是个什么鬼?

图片来源:Oculus博客(下同)

Oculus在博客里对ATW做了详细的解释。如上图所示,GPU给左右眼的画面分别进行渲染,然后在画面显示出来之前插入一个ATW的处理过程。在左边这帧的处理中,画面渲染及时完成,此时直接显示就行了;中间的第二帧渲染未能及时完成,此时如果什么都不做就会出现画面抖动,而有了ATW的话,它会将前面一帧调用出来重新显示,同时加上头盔运动变化,从而保持帧率。

这技术很难吗?

据王明杨表示,ATW技术很简单,核心代码仅5行。但如果要达到最好的效果,还需要以下几点:

1. GPU必须支持抢占式上下文(GPU Context Priority)。这个还好,大部分Mobile GPU都支持,但是桌面GPU大部分还不支持;

2. 系统最好支持主表面写入(Front buffer Rendering),这个跟GPU有一定关系,但是跟操作系统关系比较大;

3. GPU必须有较高的性能,这个很好理解,Timewarp线程实际上加重了渲染负担。

Oculus先在Gear VR上实现ATW,原因就是上面的第1点。他们将ATW带到PC平台上,是在微软、英伟达和AMD支持的情况下实现的。英伟达开发了VRWorks,AMD则有Liquid VR。

国内厂商中,乐相陈朝阳表示ARM对大朋VR提供了Front Buffer和Context Priority的支持,用以在移动VR上实现ATW。

没有定制硬件的焰火工坊则在Oculus的基础上修改了一部分Timewarp的实现。“我们在渲染线程那里会监控Timewarp线程的工作情况,动态的平衡GPU附载,保证Timewarp线程工作在比较高的帧率下。”王明杨说。

有什么难点和局限?

听起来ATW是项很棒的技术,但它也不是完美的。根据去年的一篇Oculus博文,ATW的一个难点是位置抖动(Positional Judder)。

位置抖动是基于方向的Timewarp带来明显瑕疵之一。在使用VR设备时,当头部移动了, 如果在ATW产生图像帧时只考虑了旋转,而平移却被忽略了。这意味着当你的头从一边移动到另一边时,你看见的离你很近的物体会有多个图像的抖动,这种效果在临近场空间中是非常明显的,比如下面的这个潜艇截图。

VR公司常说的“异步时间扭曲”技术是个什么鬼?

Gear VR比较容易用上ATW,是因为它不支持位置追踪,而PC平台的Oculus Rift支持。Oculus最近宣布Rift支持ATW,应该是解决了位置抖动的问题。

另外一点是运动的物体和动画。使用ATW时,动画或者移动的物体会引起另外一个瑕疵, 因为它产生的新图像只是根据前一帧图像生成的,缺少了物体的运动信息,所有的中间帧都好像是被冻结了一样,因而对于运动的物体容易产生抖动,见下图。

VR公司常说的“异步时间扭曲”技术是个什么鬼?

不过王明杨倒是认为虽然近处物体是个局限,但影响并没想像的那么大。

总结

总体来说ATW确实是一项很棒的技术,如果没有它的话,开发者在游戏开发中为了保持画面帧率只能非常保守地使用CPU和GPU性能,而ATW可以游戏更容易保持帧率稳定,从而让开发者在画面设计上更加大胆。

实际运行中Oculus发现,没有使用ATW的app在运行中丢失了约5%的帧。ATW可以将大部分丢失的帧补上,从而大幅减少画面抖动。而这一切对app来说不需要消耗更多性能或更改代码就能实现。Oculus还表示这一切只是开始,他们正与合作伙伴尝试提高ATW的运行效率。


分享:
Add Comment
1 Answer(s)

与其期待腾讯的VR头盔,不如先看看这家公司的产品

<!–

–> <!–

–>

本文作者:刘芳平 2015-12-22 22:24 –> <!– 19条评论
导语:继昨天Tencent VR在北京举行开发者沙龙,今天VR创业公司焰火工坊也举行了一场发布会。两场相邻的发布会,不仅时间相近,做的东西也很类似,然而风格却非常不同。
与其期待腾讯的VR头盔,不如先看看这家公司的产品

(焰火工坊发布会,图为CEO娄池)

继昨天Tencent VR在北京举行开发者沙龙,今天VR创业公司焰火工坊也举行了一场发布会。两场相邻的发布会,不仅时间相近,做的东西也很类似,然而风格却非常不同。

腾讯:布局大,但没有技术细节

简单回顾昨天的发布会,腾讯发布了VR SDK 1.0,主要由图像渲染组件、输入组件、音视频组件、账号组件和支付交易组件5大功能组件部分组成。还宣布将在三个产品形态(PC主机、游戏主机和移动VR)同时进行布局,推出硬件。此外,还有一些内容合作和开发者支持计划。腾讯的策略是做生态,而并不想做自有品牌的硬件。

腾讯的布局非常大,面面俱道,媒体称它“野心堪比微信”。然而问题是,这么一份蓝图却没聚焦,也看不到多少技术细节,它承认VR当前遇到的问题,却没有提出具体的解决方法。有记者现场问“腾讯相比三星等国际大厂有什么技术优势?”结果得到的回答是,“我们作为国内厂商更懂中国市场,有更多的国内资源”。话是没错,却没有回答问题。

其实雷锋网今年四月就报道过,腾讯做VR只是某个部门的占坑策略,就投入来看只能算是试水,很难对行业产生大的影响。虽然产品出来前不能断定Tencent VR的技术水平,不过早些时候记者见过一位深圳VR创业公司的CTO,他不无自豪地说腾讯的VR是他们帮忙在做,而记者体验过他们的产品后,觉得和一般国产头盔并没两样,并无惊艳之处。

焰火工坊:解决问题

接着来看焰火工坊今天的发布会,他们发布的产品包括:

1、针对开发者的焰火工坊“黎明”开发者工具包(FiresVR Dawn SDK V0.9);

2、内置九轴陀螺仪及交互按键,售价199无的VR眼镜“极幕-1”(JiDome -1),而且开放硬件研发标准;

3、推出VR操作系统极幕OS和应用市场;

4、为产业链伙伴示范的焰火影院和VR原生游戏《最后的荣耀》。

焰火接下来也会开发一体式VR头盔。焰火也是一家重软件而不是硬件的公司,CEO娄池多次强调“做硬件是被逼的,因为国内没有好的硬件”。焰火的目标是做生态,开放硬件研发标准也是为了拉拢更多硬件厂商。这和Tencent VR的策略很像,不同的是,焰火明确聚焦移动VR,已经推出了产品,而且针对国内移动VR存在的问题提供了相应的解决方法。

与其期待腾讯的VR头盔,不如先看看这家公司的产品

(极幕 V-1的渲染图)

如果你体验过任何一款国内的手机VR头盔,很容易发现它们的各种问题,包括眩晕、延迟、画面漂移、沙网效应(不清晰)、手机适配、手机过热、镜片起雾,等等。而焰火工坊针对这些问题的解决方法是:

1、延迟问题:基于对异步时间扭曲(ATW)、色彩纠正与反畸变、Unity Hack和Android优化、姿态传感器数据的融合与预测的研究,将VR视觉延迟降低到20毫秒以内。焰火CTO王明杨在现场进行了更详细的技术解说。

2、陀螺仪导致的画面漂移及交互问题:极幕 V-1加入了外置九轴陀螺仪,而不用依赖参差不齐的手机陀螺仪。

3、沙网效应:将FOV控制在90度,王明杨表示不会扩大FOV,因为更大会很容易产生沙网效应。

4、手机过热:在头盔内加入风扇,但还需要平衡噪声和散热效果。

5、手机屏幕适配:适配5-5.7英寸手机,不同的大小会适配不同版本的头盔。

6、性能:要求手机硬件支持OpenGL es 3.0 API,GPU性能在Adreno 310以上,并提供VR性能检测工具。

其中延迟是焰火解决的一个VR核心问题。除此之外,焰火的SDK在视频播放API等方面也有一些优化。

与其期待腾讯的VR头盔,不如先看看这家公司的产品

(极幕 V-1的手板)

说了这么多,实际体验到底如何呢?雷锋网(公众号:雷锋网)编辑在现场短暂体验了产品粗糙的手板,发现上述这些优化基本做到了。

虽然如此,焰火仍然认为相比VR手机盒子的标杆——三星Gear VR,他们仍然只及得上80%,剩下的20%做不到是因为缺少手机厂商的支持。

极幕 V-1将于2016年2月上市,售价199元。

所以,一家创业公司能做好VR生态吗?

与其期待腾讯的VR头盔,不如先看看这家公司的产品

焰火工坊自称“异类”,展现给外界的是一种“傲娇”姿态。从发布会开始前,他们就表示要“得罪一下VR业内的同行”;发布会上特地在座位上准备了爆米花,似乎要表演一场撕逼大戏;娄池还说,“看着我们的竞争对手做的东西都是错的,确实给了我很大的鼓励”;早前离开暴风创业的王明杨多次揶揄暴风魔镜“一年迭代了四次,还是个盒子”。

不过焰火在业内名声还不错,TVR的方相原说他们只是“淘气”。

与其期待腾讯的VR头盔,不如先看看这家公司的产品

(在Tencent VR和焰火工坊活动上的TVR创始人方相原,TVR在Gear VR上推出了一款VR游戏,两家都希望争夺这类优质开发者的支持)

关于做VR生态,焰火的观点是,因为VR还处于早期阶段,更重要的是解决技术难题,提高硬件体验,还没有到依靠运营的阶段。譬如关于开发者变现问题,腾讯已经有付费机制和开发者分成,而娄池认为现在考虑这个还太早,更重要的是积累用户。

这并没错,所谓硬件搭台,软件唱戏,要有生态首先得有一款不错的国产VR头盔,才能吸引用户和开发者。

不过记者也担心,虽然焰火技术牛逼为业内所认可,但在品牌、运营、吸引开发者,乃至硬件设计制造方面,看起来都没有多少经验,也缺乏切实的计划,而这些对于生态的建设同样很重要。

不管怎样,这么一家深耕技术的VR创业公司,或许真的可以改善国内VR产品的体验。

PS. 据王明杨透露,原来做VR一体机比做手机VR盒子更容易,因为前者对硬件有更多控制。


分享:
changchun Answered on 2017年8月15日.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.