陈怀歆,袁琳
(1.四川大学计算机学院,成都610065;2.中国人民解放军61287部队,成都610061)
虚拟现实[1-2](Virtual Reality,VR),简称虚拟技术,也称虚拟环境,是利用计算机技术模拟一个三维空间的虚拟世界,为用户提供视觉、听觉和触觉等感官上的模拟,使用户仿佛身历其境。目前,虚拟现实主要视觉显示设备是头戴式显示器(Head Mounted Display,HMD),简称头显[3-4]。基于头戴式显示器的虚拟现实技术不仅广泛应用与游戏、影视、医疗和教育等方面,而且在军事领域也有着重要的应用如图1。
图1 虚拟现实技术应用于军事领域
可以说最早的虚拟现实就是单纯的军事科技,军事科技的先行,而后运用到民用领域。1968年,计算机图形之父Ivan Sutherland和他的学生共同制造了世界上第一个头戴式显示器“达摩克里斯之剑”如图2。
而后,各国军队都投入大量的人力物力财力,将VR技术应用到各种军事训练中。军事训练所需的VR场景主要是由虚拟地形所组成。现行最主要的地形建模分为人工建模和倾斜摄影地形建模。人工地形建模速度慢、周期长、真实性欠缺;倾斜摄影地形建模速度快、周期短、精度高,能较为真实地反映某地区的地形情况,使军事训练更贴近实战。但通过头戴式显示器在基于倾斜摄影建模的三位空间中观察,存在渲染低效率和观察高要求两方面的矛盾:一方面,倾斜摄影建模数据贴图分辨率较高、建模顶点和面片数量多,数据量巨大,在目前的软硬件环境中渲染效率和速度较低;另一方面,由于在人眼的全动态视野(水平200度和垂直150度)中,视网膜分辨率的质量需要32K×24K=768M,才能达到较为真实的效果[5]。除了需要渲染高分辨的图像,在头戴式显示器中刷新率和帧数需达到90以上甚至更高才能勉强消除眩晕症。这远远高出现行和可近期可预见的软硬件对倾斜摄影建模数据提供解决方案所产生的分辨率、刷新率和帧数。基于上述矛盾,提高倾斜摄影建模数据渲染效率和速度成为HMDs合成算法的主要挑战之一。
图2 世界上第一台头戴式显示器“达摩克里斯之剑”
注视点渲染(Foveated Rendering)技术就是为解决在渲染过程中低效率和高要求的矛盾所提出的一种解决方案。注视点渲染技术根据人眼视觉结构模拟人眼观察,将所需渲染的裁剪窗口分为中央主要部分和外围次要部分。中央主要部分为全采样高分辨率部分,外围次要部分为欠采样低分辨率部分。从而在不降低人眼观察效果的同时,减少所需渲染的数据量,加快了渲染速度。
本文提出一种改进的注视点渲染的方法,相较于全分辨率渲染,在倾斜摄影地形建模数据在头戴式显示器中进行LOD(Levels Of Detail:分层次)渲染,提高了渲染的效率和速度。相较于以往的注视点渲染,消除了系统延迟,在层间过度平滑,消除了锯齿效应,使得用户观察更加真实。
从人眼的结构上看,视网膜中央有个很小的区域叫黄斑,黄斑中央有个更小的区域叫中央凹,负责人眼的高清成像。由于人眼的这种特殊的结构,导致人眼的视域是有限的。我们将人眼视域拆分成横向和纵向两方面来考虑。
如图3人的双眼横向视域最大接近190度。
图3 人的视界
但空间感知、颜色识别最好的区域只有50-60度。纵向来看,人眼最大视域接近120度,颜色识别界限在55度左右。所以人眼观察存在5度左右的视锥,在此范围内,人眼感知分辨率最高。在此视锥以外分辨率向外逐步减小。
一般的地形建模大都依据航空航天影像和DEM数据,通过构建三角形网格进行建模,以此方法进行的地形建模算法复杂,得到的纹理较差,而且模型数据精度相对较低,处理过程人工干预多。
倾斜摄影建模是通过倾斜摄影技术借助无人机等飞行器快速采集影像数据,实现自动化三维建模。倾斜摄影测量是通过在同一飞行平台挂载多个传感器,同时从垂直、倾斜五个不同角度采集数据,同时记录飞行器高度、速度、航向、旁向重叠和坐标等参数,而后对影像进行分析整理。
注视点渲染,是跟踪用户的注视点,由内而外随着视角不断的增大,采样率越来越低而实现的。传统的注视点渲染[6]是将图像分为三层分别进行渲染如图4。
图4 注视点渲染分层
最底层的采样率最低,中间层采样率为50%,最上面一层采样率最高,为100%。通过三个管道分别对上中下三层进行渲染合成最终的图像。最终的实验结果表明通过注视点渲染能提高2到3倍的渲染效率。
通过倾斜摄影建模生成的三维场景,建模和纹理贴图速度快,但模型复杂,纹理分辨率较高的情况下,如果用全分辨率进行渲染,帧率较低。利用注视点渲染技术,再不影响观察的情况下,提高显示帧率,使通过倾斜摄影建模生成的三维场景更为实用。
传统的注视点渲染技术[6-7],通过光线追踪技术进行实时渲染,将需要采样的三维场景进行多管道渲染,在中间层和最上层管道进行复合采样切割,与最底层的低渲染通道进行合成。虽然提高了渲染效率,增加了显示帧率,但是各层边缘敏锐度的迅速下降,造成层间过度的锯齿效应。而且在各层间管道相互融合的过程中容易造成系统延迟,出现闪烁的现象。为了解决上述问题,英伟达公司提出了MRS(Multi-Res Shadings)技术(多重分辨率着色技术)。
2016年,英伟达公司在Maxwell架构上引入了MRS(Multi-Res Shadings)技术。MRS技术是将图像拆分成多个视口,如图5所示。
图5 MRS技术图像分割
将图像拆分成3×3的网格。不同视口都是通过单一管道进行渲染,解决了各渲染层间系统延迟问题。如图5,中间部分采用全分辨率显示,红色部分采用1/2分辨率,蓝色部分采用1/4的分辨率。我们保持中心视口的大小不变,但缩小所有边缘的视口。这更好地近似于我们最终想要生成的扭曲图像,而没有那么多浪费的像素。并且因为阴影更少的像素,我们可以更快地渲染。根据内容和移动的性质,可以决定在哪里分割图像,以及分辨率差异应该有多大。
英伟达的MRS技术解决了各渲染层间系统延迟的问题。各渲染层间分割的区域为3×3的网格,虽然可以根据不同需要调整网格之间的大小以适应不同的人眼和场景的需要,但是这样分割的模型与人眼的视觉结构不相符。人眼观察为圆形视口,而MRS技术视口为矩形视口。而且,在层间过度也是不连续的,也会产生锯齿效应,是的层间过度较为突兀。
为了解决MRS技术分割模型与人眼结构不相符以及层间过度不连续的问题。本文提出一种改进的注视点渲染方法。
在所有虚拟显示的管线渲染过程中,其中一个步骤是镜头扭曲。它会根据HMD镜头的轮廓对渲染后的图像进行扭曲,这样在通过镜头观看扭曲过的图像时,矫正了扭曲。透镜畸变会显著的挤压图像的边缘,同时放大图像的中心,使得边缘的阴影率比原始图像高,中心的阴影率比原始图像低。透镜畸变后的遮光率分布并不理想,因为每个最终样本的边缘比中心区域接收到更多的遮光率。此外,用户往往会把注意力集中在屏幕的中央,这就会让这些过度采样的区域影响到他们较弱的周边视觉。
解决这一问题的理想方法之一是使用光线跟踪直接生成镜头扭曲的图像,这样我们就可以完美地匹配镜头样本分布。然而,在光栅化的世界里,我们必须使用近似的样本分布,因为透镜的扭曲会以非线性的方式扭曲图像,而光栅化只对线性数据有效。本文的方法就是为了解决这个问题而设计的。为了更接近给定透镜轮廓的遮阳率分布,它在透视分割之前,修改剪切空间中每个齐次顶点的w分量,如下式所示:
在上面的w方程中,x和y都是剪切空间齐次坐标,A是控制w'在x和y方向上的变化率的系数。自从裁切空间原点位于中心的形象,顶点的边缘图像将有更大的w。这种修改w的影响,经过透视分割使用w的,周边地区“拉”向中心,遮阳率减少,类似于上述透镜畸变过程。透镜畸变的不同之处在于中心的着色率几乎没有变化,因为x和y在中心附近都接近于零。为了避免在中心区域采样不足,我们只需要提高图像的分辨率即可。
综上所述,改进的注视点渲染方法放大图像渲染目标的大小,以增加中心的着色率,并且利用裁切空间w的修改,减少了周边区域的阴影率。使得各层间较为平滑过度,消除锯齿效应。
实验比较了本文方法与MRS和全分辨率渲染在倾斜摄影建模场景的渲染效率。如图6所示。
图6 三种方法的渲染帧率比较
改进的注视点渲染方法、MRS方法和全分辨率渲染的帧率比较。在相同场景下,全分辨率渲染帧率只有10Hz左右,改进的注视点渲染方法和MRS方法都在30Hz以上,说明通过注视点渲染技术,提高了渲染效率。
MRS将视口分为9个子视口,均匀降低了所有角和边视口的遮阳率。与MRS相比,本文的方法更加贴合人眼视觉着色效果。
本文的方法更接近理想的着色率,如图7所示。
图7 各种方法着色率的比较
本文的方法使用的阴影样本比MRS少得多,在图像上有一个平滑的着色率过渡。
倾斜摄影建模技术,其建模速度快,场景生成周期短,精度较高。但是复杂的模型和高质量的纹理贴图在全分辨率渲染下,帧率较低,影响使用和观察。本文利用改进的注视点渲染的方法,一定程度上提高了渲染效率,相较以往的注视点渲染技术,更加贴近人眼视觉结构,使得用户在虚拟现实中有着更加真实的感受。但在实验过程中发现,如果遇到极为复杂的建模场景,显示帧率提高不多,依旧未达到60Hz以上,在部分场景下,依然存在卡顿的现象。