低端手机也能流畅运行虚拟现实的逆天技术来了
我们终于可以亲身接触到虚拟现实科技了, 而且市场上的虚拟现实产品和虚拟现实平台也多了起来, 爱好者们可以自由地选择自己喜欢的品牌和服务。 当然, 现在并不是人人都会选择虚拟现实, 毕竟现在虚拟现实的产品价格并不是太过亲民。 更加廉价的产品属于移动虚拟现实, 像GearVR和Cardbord。
目前移动虚拟现实需要一台功能强大的智能手机才能顺利运行, 这对很多人来说也并不是一个可以接受的选择,比如GearVR需要依赖三星的旗舰性智能手机来运行。 但是, 《Arctic Journey》的开发者克莱恩克赫尔(Brian Kehrer)最近研发的图形渲染技术可以让低端手机都可以运行虚拟现实内容, 例如三星的Galaxy S3。
首先, 我们需要知道对开发者来说, 虚拟现实存在着怎样的挑战, 我们还明白知道虚拟现实的基本要求是什么。 想要流畅稳定地运行虚拟现实内容, 最低标准是60fps。 任何低于这个标准的设备都会让用户感觉到明显的时延, 甚至会引起晕动症的出现。 但是60fps对大多数的智能手机来说都是一个很大的挑战, 尤其是老旧手机。 在某种程度上讲, 虚拟现实跟3D一样。 虚拟现实设备需要为两只眼睛分别渲染两个不同的场景。 另外, 更重要的是, 所有的虚拟现实透镜都不可避免地令图像出现失真、 扭曲和变形, 一条直线看上去就好像是弯的一样。 为了解决这个问题, 高端的头显设备会通过双重扭曲来校准图像。 简单来说, 透镜会产生图像扭曲, 然后通过再扭曲把图像修复过来。 但是这需要强大的功能配置, 并不适合智能手机, 至少是目前的智能手机。
而开发者克莱恩克赫尔和他的团队则想出了一个极具创意的解决办法, 让Galaxy S3都可以达到稳定的60fps。 最初的实验证明, 这些旧手机是完全没办法达到稳定的60fps。 所以他们想到了一个方法: 与其先渲染游戏世界再进行扭曲, 不如直接把整个世界提前扭曲。 这就是所谓的“顶点位移”(Vertex Displacement)。
顶点位移是指: 先把画面先扭曲成桶形畸变, 而头显会产生枕形畸变, 这样子系统就无需再进行桶形畸变。如果你还记得所有的计算机图形都是由光子组成的, 那么你就明白这个原理了。顶点位移是不会扭曲线条的。 两个顶点之间都是保持直线距离的。 然而, 如果交换这些顶点的位置, 你可以得到大概的透镜校准, 并且可以一次过渲染图像。但是, 这也存在一个挑战。 低多边形物体(例如正方形)是不会受顶点位移影响的。 如果需要进行透镜校准, 正方形需要微微的拱起来。 正如克赫尔所说的一样, 通过弯曲的镜头看弯曲的线条, 才会得到直线。 但是因为顶点位移是不会扭曲线条的, 所以它并不能校准一些简单的物体, 如正方形。 为此, 他们使用了曲面细分技术。在顶点位移中, 你可以把一些简单的多边形, 例如正方形, 细分为无数个更小的正方形, 每一个正方形都由两个三角形构成。 而渲染这些顶点并不会消耗太多的CPU。
通过顶点位移和细分图像技术, 用户在Cardborad上观看《Arctic Journey》也能获得极大的沉浸感。 但是这项技术并不会大量的普及, 因为谷歌新的虚拟现实平台Daydream并不支持这个技术, 而Oculus和Vive更倾向于通过异步时间扭曲技术来解决相关问题, 也就是使用高配置的处理器来渲染图像。 虽然我们不知道为什么这些公司不愿意使用这项技术, 但是无论原因是什么, 或许我们可以看到会有开发者会制作适合低端手机的虚拟现实内容, 让我们也能一睹虚拟现实的风采。