29 December 2015

最近趁着写项目申请书的机会调研了虚拟现实这个领域。本文从学术研究的角度概括一些相关知识。

虚拟现实主要包括以下几块:建模,即对真实世界的模拟;渲染,即对虚拟世界的展现;交互,即人与虚拟现实系统的互动。

虚拟现实系统中的数据可分为平台数据、模型数据、感知数据和控制数据。平台数据是系统固有的,模型数据就是建模得到的,感知数据是由渲染算法实时生成的,控制数据是由交互设备实时获取的。这里面需要存储和传输的主要是模型数据。

模型数据的产生方式有以下几种:实际测量,即用相机等设备采集得到;数学生成,即根据公理和算法得出;人工构造,即由人绘画和创作出来,如3D建模、动漫和影视制作等。

建模需要考虑虚拟世界中的景物外观、物理属性、智能行为等,以及虚实融合的问题,即真实世界与虚拟物体的共存。

物理属性和智能行为涉及的模型数据大都是数学生成或人工构造的,是一些数值或矢量数据。景物外观涉及的数据就包含很多实际测量得到的图像、视频、深度信息等。这些数据量大且冗余多,适合做压缩。

模型数据经过渲染得到感知数据。感知数据是那些作用于输出设备让人产生感知的最终阶段数据,例如交给显示器显示的二维图像。这里需要指出,人的感知除了视觉还有听觉、触觉等,但本文只关注视觉方面,其他类推即可。

渲染(Render)是个复杂的过程。计算机图形学里,顶点和纹理经过GPU流水线得到像素缓冲区里的图像就是渲染。这种以顶点和纹理作为模型的渲染已经大量用在3D游戏和设计中。但由于模型毕竟不是实际测量的,因此很难得到逼真的图像。

逼真的3D场景可以由基于图像的渲染(Image-based rendering, IBR)得到。IBR简单来说是利用已有的多个不同视角的场景图像生成新视角下的场景图像。IBR所用的模型数据可以是实际拍摄的真实图像或视频,因此它产生的感知数据更接近真实世界。IBR涉及很多问题,也吸引了很多研究者。

交互是最容易理解的部分。交互需要解决的是虚拟现实系统如何把感知数据传递给用户,又如何从用户那里接收信息。交互的方式与设备直接影响用户体验。如果说上面所有内容是由学术界负责的话,那交互这块儿就要看工业界和产品设计人员的贡献了。

虚拟现实的学术研究似乎已经比较成熟,它的应用倒是方兴未艾,目前正掀起一股热潮。