论文部分内容阅读
大规模复杂场景的实时渲染广泛应用于电子游戏、虚拟现实、电影等领域。当下图形硬件技术的发展日新月异。强大的图形硬件技术给炫丽的游戏画面和震撼的电影特效提供强有力的技术支持,但是用户对图形渲染质量的要求远远超过图形硬件渲染能力的范围。如何用软件的方法来提高大规模复杂场景的渲染效率成为计算机图形学领域的研究热点。近年来,大规模复杂场景的渲染优化算法层出不穷。比较常用的算法包括遮挡剔除算法、LOD算法、实例化技术等。笔者在前人研究的基础上,将软件实现的遮挡剔除算法和视点依赖LOD算法并行优化,并用统一的渲染流水线将两者结合起来,形成一种新颖的高效的大规模复杂场景渲染算法。首先,笔者摒弃了传统的硬件遮挡查询算法,对软件实现的遮挡剔除算法,即层次遮挡图算法进行并行优化。层次遮挡图算法的关键在于遮挡图的构建。算法在预处理阶段通过具体的遮挡物剔除条件,剔除掉场景数据库中不适合作为遮挡物的物体,衍生出一个遮挡物数据库。在运行阶段,算法从遮挡物数据库中提取出当前视点下的遮挡物集合,将其渲染到象空间并构造出层次遮挡图,最后利用层次遮挡图跟处于视景体内的物体逐个进行遮挡剔除计算。视点依赖LOD算法和遮挡剔除算法是通过一个可见物体数组结合起来的。在预处理阶段算法对场景物体进行处理,计算出物体在不同角度的可见性。在运行时阶段,算法从可见物体数组逐个取出物体,并根据物体与当前视点的距离以及预处理阶段的计算出来的物体可见性为物体计算出合适的LOD。最后将计算得到的物体的LOD的三角形写入要渲染的三角形序列中,并发送到渲染管线。本文以大规模森林场景的渲染为例,将算法应用到大规模森林场景的实时渲染中。实验证明算法能够在保证渲染质量的情况下,实时地渲染大规模森林场景,比单独使用LOD算法或遮挡剔除算法在渲染效率上有不同程度的提高,而且场景越复杂,越能体现算法的效率。