利用顶点位移进行VR畸变校正

本文探讨了在VR开发中利用顶点位移进行镜头畸变校正,以解决高帧率与高分辨率需求带来的性能挑战。通过在顶点着色前进行渲染,该技术在移动设备上提高了性能,减少了散热问题,同时允许在全分辨率下使用MSAA。文章详细解释了VR渲染中的镜头畸变、帧率、散热等因素,以及如何实施顶点位移技术,适用于包括Cardboard Design Lab在内的多种VR系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用顶点位移进行VR畸变校正

    VR开发的最大挑战之一是对高帧率与高分辨率结合的要求。我们通过把顶点转化为“镜头空间”,删除了需要全屏渲染的纹理,这样就可以大规模提高手机性能。

下面的技术使用谷歌的Cardboard Unity SDK进行开发,应用于Cardboard Design Lab(CDL),然而,利用透镜畸变效果,给与适当的失真系数去构成顶点着色器,并且SDK允许禁止渲染纹理,这样同样的方法可以适用于任何VR系统。

Google公司的Cardboard Design Lab,在Google Play这个场景中可能使用了唯美的处理,但实际上是非常细化。

一些背景


在审查这个技术之前,重要的是要了解大多数的VR渲染是如何处理的。对于为什么我们需要镜头畸变,以及典型实施的来历,可以查看Oculus rift documentation这一部分。

镜头畸变

VR应用的镜头畸变阻碍了头戴式显示器(HMDs)的玻璃透镜的物理畸变,从而得到一个无明显失真图像的宽视野。

在大多数VR软件中,反畸变是通过将每个照相机渲染成一个单独的渲染目标来执行,然后将后处理效果的图像进行扭曲。无论是在一个像素着色器,或者通过将渲染目标投影到一个扭曲的网格上,都将最终输出渲染到屏幕上。

本文演示了一种技术,在场景中的每个对象都在顶点着色之前执行渲染,从而消除对单独渲染目标的需求。渲染目标的消除同时几乎消除掉移动设备上的热问题,并允许在全分辨率上MSAA增加2至4倍也不会对散热或目标帧率有显着影响。

值得注意的是,我不是第一个想到这一点的人,但据我所知,Cardboard Design Lab是第一个使用这种技术开发VR应用的。此外在项目开始的时候,谷歌的团队已经做了顶点变形版本的雏形,最终成为代码是包含在今天的SDK。

所以充分证明,我会因为坚持顶点变形为基础的镜头校正能够在生产应用中工作而受到大家的好评,它对于在谷歌已经写CGine文件的一些性能算法工程师是一种喜讯。我写这篇文件是因为(A)它确实能使用,(B)希望更多的开发者使用它使VR应用变得更好;(C)引擎开发者实现正向渲染仍然很棒,MSAA仍然很可怕,依靠全屏后处理对核心功能有不良影响。

问题

在开发一个移动VR应用中,有3个主要的考虑因素影响工程成果,这些因素或多或少约束着什么是可能的。

  1. 帧率
  2. 可视化分辨率
  3. 散热

帧率

帧率是我们比较熟悉的。在整场游戏中30-60帧是普遍可以接受的。在VR中,60帧是一个最低限度,而且大家有共识是一个好的VR体验帧率要在90-120帧之间。

当然,在移动设备上,我们可以做得最好。许多设备设置最大帧率是60帧,所以我使用60作为本文的其余部分的参照。

当一个VR体验低于60帧,效果是立竿见影的。头部跟踪不出现'保持'的显示时,用户会迷失方向,并且体验更可能出现模拟器问题。瞬

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值