● 摘要
作为现实世界中的重要组成部分,阴影在虚拟场景中同样起着重要的作用。首先,实时逼真的阴影效果能够增强虚拟环境的真实感;其次,阴影投射有助于人们对三维世界的感知,可以为人们提供在三维空间中遮光物体的几何形状、大小和位置信息及其被投影物体的位置和几何形状信息。因此,实时阴影绘制一直是图形学领域中的热点研究方向。由于计算机硬件以及三维扫描等数据获取技术和CAD建模技术的迅速发展,在各种虚拟现实应用中所处理的场景的规模越来越大。如何实时的为场景规模大、深度范围广的动态虚拟环境生成逼真的阴影是一个重要且具有实际意义的研究问题。本文以国家十一五863课题“支持移动终端的多人协同虚拟环境及开发工具研究”以及总参某部“大气海洋环境虚拟现实软件”课题为背景,针对大规模复杂场景的特点,就基于阴影图(shadow map)的实时阴影算法进行了深入的研究。大规模复杂场景深度范围广,需要高分辨率的shadow map来保证阴影质量,然而纹理分辨率上限受硬件的限制不能够随着场景无限制的扩大。平行分割阴影图算法是解决大规模复杂场景实时阴影绘制的常用方法,按照深度范围将相机视锥体划分为若干层,对各分层独立应用阴影图算法。本文针对平行分割阴影图算法当光线方向与视线方向不垂直时,场景中对象被冗余渲染到多层阴影图中的问题,提出一种基于GPU的光源空间平行分割阴影图算法。在光源空间中,利用光源视锥体将场景划分为不相交的多层区域,利用GPU为各层生成阴影图,确保场景采样点不在多层阴影图中重复出现;同时给出了一种快速综合场景阴影效果的绘制方法,通过避免判断像素层次的操作,提高了GPU利用率。实验结果表明,文中算法解决了平行分割阴影图算法的冗余渲染问题,提高了渲染效率和场景阴影质量。进一步本文对光源空间平行分割阴影图算法产生的阴影质量进行了优化。首先,为了消除阴影图更新时因子像素误差造成的阴影边界抖动问题,本文利用相机视锥体的包围球代替相机视锥体本身进行光源子视锥体划分。其次,通过与软阴影算法相结合产生软阴影效果,包括靠近百分比软阴影算法和方差阴影图算法。实验结果表明与方差阴影图算法结合使用即能够保证算法实时性,又能够产生较好的软阴影效果。最后,将本文研究方法集成到实验室自主研发的虚拟环境绘制引擎(Distributed Virtual Environment Scene Graph, DVESG)中,取得了良好的效果。
相关内容
相关标签