摘要:
1.本文的创新点
本文提出了一种基于光源空间的级联阴影图实时渲染算法。在对大规模动态场景进行渲染时,常规级联阴影图渲染算法具有比较严重的冗余渲染问题,致使渲染效率低下,而本文的算法可以从根本上解决该问题。除此之外,针对单个像素点可能存在多个阴影图的情况,本文给出了一种简单且效果显著的阴影图选择方法;针对阴影抖动问题,本文在SCSMs中最小外接圆方法基础上做出改进,提出了基于最小包围圆的阴影抖动避免方案。实验结果表明,本文的算法相对于传统的级联阴影图渲染算法而言,大大提高了渲染效率和阴影的渲染质量,实时性比较高。
2.实现方法
基于光源空间的级联阴影图实时渲染算法的具体步骤如下。
Step1:首先将视景体用若干平行于近平面和远平面的平面进行切分,切分的个数需要事先指定,这一步与传统的级联阴影图渲染算法一致;
Step2:按照传统的级联阴影图渲染算法,将光锥体剖分为与子视景体个数相一致的子光锥体,相邻子光锥体可能有重叠的区域;
Step3:对子光锥体进行处理,使生成相同个数的互不相交的子光锥体;
Step4:为由第三步得到的每一个子光锥体生成对应的阴影图;
Step5:进行场景渲染。
此外,在处理阴影抖动的问题上,本文用最小包围圆代替SCSM方法的最小外接圆,从而使得阴影图相互之间的交叠区域大大减小,使得冗余渲染问题得到改善。
3.结论及未来待解决的问题
本文的基于光源空间的级联阴影图渲染算法很好的解决了传统CSMs方法出现的冗余渲染问题。首先,该算法在光源空间将场景分为互不相交的层,并通过不规则视景体切割和场景组织为每个层生成一个阴影贴图;在渲染场景的时候,本文提出了一个简单的阴影决策方法来选择最优的阴影贴图;最后,将LiSCSMs与最小包围圆相结合来解决阴影抖动问题。实验表明,LiSCSMs可以大大提高CSMs的效率,并且可以很容易的与其它方法结合来在大规模动态场景中实时地生成高质量的阴影。未来的工作我们主要从以下几点考虑:首先,本文将LiSCSMs与其他的参数化方法诸如PSM或者LogPSM相结合,相邻层之间产生的阴影会出现不连续性,如何消除这种不连续性是未来的研究方向之一;本文算法将场景组织成场景图,如果可以利用空间剖分技术,比如用Octree等数据结构进行组织,将会在一定程度上提高渲染性能;对于本文提出的阴影决策方案,阴影边界可能存在走样问题,如何消除这些缺陷将是我们面临的又一个挑战。
4.实用价值或应用前景
随着计算机科学的高速发展以及人们生活的不断进步,虚拟现实已经成为人们生活的一部分。各种3D游戏让用户完全沉浸在虚拟环境中娱乐来缓解工作生活的压力;各种仿真系统在科学研究、建筑设计等领域都有着举足轻重的作用。随着虚拟环境中场景规模的越来越大,以及计算机软硬件的限制,如何提高场景渲染速率一直是研究热点。为提高虚拟场景的真实性,需要在场景中渲染阴影。传统的CSMs算法虽然在一定程度上提高了渲染速度,但是由于算法本身带来的冗余渲染,大规模场景的阴影渲染速度仍然受到影响。本文提出的LiSCSMs算法从根本上解决了冗余渲染问题,并且与一些参数化算法相结合,大大提高了 渲染速度,实用价值高,应用前景十分广阔。