论文部分内容阅读
随着计算机软硬什以及空间信息采集技术的发展,地理信息系统中地理信息的表示逐渐从二维平面向三维空间过渡,特别是近几年数字城市技术的发展促进了各种三维仿真信息系统的出现。当真实世界在计算机中以三维的形式显示出来时,人们对场景的真实感提出了进一步的要求,其中空间物体的阴影生成就是一个增强真实感的一个重要方面。
目前较常用的阴影生成算法有两大类:shadow mapping和shadow volume,对于静态光源的大规模场景采用shadow mapping算法是很不错的选择,但对于动态光源来说无论是shadow mapping还是shadow volume都存在着实时性不好的问题。针对这个问题,本文经过对两种算法的对比,选择shadow volume为基础算法进行大规模场景中动态光源的阴影计算。以尽量减少阴影计算量为思路做了以下的研究和实践:
1、通过对shadow mapping和shadow volume算法原理的分析选择shadow volume算法生成阴影。
2、分析用模板缓存实现shadow volume的两种算法Z—Pass、Z—Fail的原理和使用条件,根据条件使用不同的生成算法。
3、分析了二维空间分割树的原理,用该原理构建shadow volume BSP(SVBSP)的方法,并根据shadow volume和BSP树的特性,定义便于阴影计算的数据结构。
4、根据三维场景中启发式技术的思想构建阴影启发区,当光源位置变化时阴影启发区随之变化。阴影计算时,在视剪裁的基础上进行阴影启发区的二次剪裁,在不影响视觉效果的前提下减少阴影的计算量,达到较好的实时效果。
5、实现了空间SVBSP树的构建,并以此为基础判断视点位置,通过对SVBSP树的遍历借助模板缓存生成阴影。