Valve今天在SteamVR中引入了Motion Smoothing的测试版。类似于Oculus的异步空间扭曲(ASW)功能,该功能利用先前的帧来实时合成新的帧,使VR应用在丢帧的情况下仍能平稳舒适地运行。
PC VR头戴设备需要相对强大的游戏硬件支持,因为游戏需要以非常高的分辨率、3D模式和高帧率渲染。即使是对于强大的游戏电脑来说,要以极低的延迟和高度一致性完成这些操作,仍然是一个挑战,有时候可能无法在头戴设备需要的时间内渲染下一帧,导致丢失帧。如果没有任何处理,丢失的帧将导致头戴设备重新显示上一帧,这意味着头戴设备中的景象看起来就像世界暂时附着在用户的头部上。这在VR中可能会非常令人不适,尤其是如果连续丢失了几帧。
解决这个问题的一种方法是使用重投影(Oculus称之为时间扭曲),即在丢帧的情况下显示上一帧,但根据用户最新的头部旋转进行重新定位。这意味着尽管游戏世界中的任何运动都将静止不动,但至少世界似乎仍然对玩家的头部运动有所响应,从而避免不适感。
与ASW类似,Valve正在为容易丢帧的应用程序实施一种额外的性能保护层,该层还可以考虑应用程序内的移动物体和角色。
由Valve的Alex Vlachos在测试版中介绍的Motion Smoothing在SteamVR中合成全新的帧以替代丢帧。它通过查看最近的两个帧,估计下一帧应该是什么样子,然后将合成的帧发送到显示器,而不是完全新的帧。目前,Motion Smoothing仅支持NVIDIA GPU和运行Windows 10的系统,但Valve表示正在开发AMD的支持。Motion Smoothing仅适用于Vive、Vive Pro和其他原生OpenVR头戴设备,而其他头戴设备(如Rift和Windows VR)则采用了自己的方法来处理丢帧问题。
当SteamVR检测到应用程序丢帧时,Motion Smoothing会自动启动。与ASW类似,它将应用程序的通常90FPS帧率降低到45FPS,并在每隔一帧生成一个合成帧。这意味着用户在头戴设备中看到平滑的90FPS动画,但应用程序将有两倍的时间来传递新帧。Valve表示,如果需要,Motion Smoothing可以更积极地使用,每传递一个实际帧,合成两个甚至三个帧。您也可以选择禁用该功能。
减少或消除VR应用程序交付一致的90FPS的要求,将使低端硬件能够运行VR应用程序而不会出现严重的性能问题,并使高端硬件能够以更高的分辨率或更大的图形效果运行而不会出现严重的性能问题。结合SteamVR的自动分辨率功能(可自动优化应用程序的渲染分辨率以匹配系统的GPU性能),Motion Smoothing可以扩大可以接受VR体验的硬件范围。
Valve的Alex Vlachos告诉Road to VR,Motion Smoothing类似于Oculus的ASW,但并不完全相同。
“我们将应用程序的最后两个帧输入到GPU的视频编码芯片中生成动态量(非常粗糙),然后[Valve和Oculus各自有]方法来过滤这些向量场并将其应用于最新的应用程序帧。”“产生一个新的画面,”他说。“所以ASW、SteamVR动态平滑和WMR动态重投影实际上只是同一个高层级技术的不同实现。”
Oculus最近推出了ASW 2.0,旨在利用深度信息提高合成画面的准确性。至于Valve,该公司可能在某个时候利用深度信息,但主要寻求的是通用的解决方案。
“我们有不同的方法来减少重复图案的伪影,并且我们内部还有一些其他的方法可能会很快发布,”Vlachos说。“我们目前的重点是解决[合成画面伪影]问题,适用于所有应用程序,因为随着更高分辨率的头戴式显示器问世,我们的目标是确保顾客在广泛的GPU范围内能够尽可能接近原生分辨率。”
另外,Vlachos指出,虽然刚刚推出了动态平滑的测试版,但将根据用户反馈进行很多调整,尤其是在接下来的几天里,不过他预计该功能将在几周内保持测试版状态。
0