光场显示内容的实时生成技术研究
【摘要】:光场显示技术具有全彩色、连续视点、结构简单轻薄、无需辅助设备、不会引起视觉疲劳等众多优点,在娱乐、医学、安全、国防和交通运输等方面都有广阔的应用前景。在光场显示技术发展日趋成熟的同时,光场内容的生成技术也在逐步发展。与实景采集相比,通过计算机生成虚拟场景的光场图像效率高且误差小,可以不受外界环境等因素的制约,直接渲染得到虚拟场景的三维(3D)图像。近年来研究者开发出多种计算机光场图像生成技术,可以适配多种数据格式和显示设备,得到高质量的3D图像。然而现有的光场内容生成技术仍存在计算效率低、兼容性差等问题,难以实时渲染带有复杂动画、复杂材质的大尺寸场景,导致可实时交互的3D内容相当匮乏。针对光场内容生成技术计算效率低这一问题,本文对基于计算机的虚拟光场内容生成技术做了深入研究,提出了几种实时光场内容生成技术和方案。论文主要内容和创新点如下:(1)基于多参考视点深度图像的光场内容生成技术传统基于深度图像的渲染由于其缺少多角度的3D信息,生成的虚拟视点图像容易出现空洞,进而严重影响渲染的图像质量。为了在保证图像质量的前提下快速生成光场内容,基于栅格化渲染和视点重映射技术,提出了一种基于多参考视点深度图像的光场内容生成方法(Rendering Method of Depth-image-based Multiple Reference Views,MDIBR)。该方法通过增加参考视点的数量,对虚拟视点重映射过程进行了改进,有效的减少了虚拟视点生成过程中图像空洞的产生,并且利用延迟着色技术对视点插值引起的光照误差进行校正,提高了图像渲染质量。通过多组实验讨论了算法的渲染效率和渲染质量,实验结果表明,该方法可以在具有百万个顶点的大规模3D数据情况下,实时渲染的80×80视点3D光场图像,帧率达到20FPS以上。(2)基于交叉透视的光场内容生成技术在传统光场图像渲染过程中,存在大量的冗余计算,浪费计算资源,严重拖累了光场内容的生成速度。为了减少计算冗余,充分利用有限的资源,提出了一种基于交叉透视的GPU驱动的光场图像生成方法(GPU-Driven Cross Perspective Rendering Pipeline,GDRP),该方法从三个方面对光场渲染过程进行了优化:其一,采用交叉透视投影技术法,将渲染顺序由逐个视点渲染转换为逐个透镜渲染,减少了相机数目;其二,由于采用了几何实例化技术,使得渲染任务只需一个渲染pass就可以完成,减少了 CPU和GPU之间不必要的数据传递;其三,利用CPU和GPU中的实例剔除来减少栅格化阶段的实际渲染的三角形数目,提高栅格化渲染器的使用效率。经过优化后,栅格化阶段处理的三角面数目减少了 95%以上,显著提高了光场图像的渲染速度。在分辨率为3840×2160、顶点数为数百万的条件下,帧率提高到60FPS以上。(3)并行多视点栅格化算法在光场图像生成中,视点数目较多一直是限制光场内容生成效率的主要因素。光场图像中包含大量多视点信息,传统的渲染方法是使用多组相机构建阵列来对虚拟空间中的3D物体进行立体信息采集。现有的计算机生成光场图像的方法,大多是基于传统单视点图形学技术的设计和实现的,不能很好地适应繁重的多视点图像生成任务。为了满足多视点渲染任务的需要,从底层算法层面解决多视点计算中遇到的问题,本文提出了一种高度并行的多视点多边形栅格化算法(Parallel Multi-view Polygon Rasterization,PMR),基于不同视点之间栅格化计算的一致性,推导了基元设置、面方程、屏幕空间重心坐标插值等算法,有效地降低了多视点图像生成过程的时间复杂度。为了验证该算法的可行性,设计并实现了一个基于GPU的分层软渲染管线,利用多组3D物体对该方法的性能进行了验证。经验证,该方法可以实时得到正确的3D光场图像。在7680×4320分辨率、百万个顶点的情况下,帧速率可以达到60FPS以上。