论文部分内容阅读
现代社会,随着计算机速度的提高及计算机图形学的发展,阴影计算已经从原来的不可能或者简单模拟变成当今的高效果实时模拟或者真实模拟。阴影渲染技术已经成为游戏引擎中不可或缺的一门技术。阴影渲染在图形渲染中可以算得上是耗时耗资源较多的一种渲染。所以实时的渲染阴影已经成为图形学中一大重要研究方向。阴影渲染处理在过去由于硬件条件的限制通常是一种硬阴影,而当今越来越多的人要求使用软阴影技术来绘制阴影,以便达到更真实的阴影效果。在当今硬件条件飞速发展的条件下,利用可编程流水线,本文给出了一种特别的方法来实现实时的软阴影绘制。将本影区域和半影区域分开计算并渲染是本文软阴影算法的特色,利用阴影图方法对半影区域的处理方法是其特别之处。首先,本文介绍了阴影算法所需要的一般技术,包括空间变换技术和GPU编程技术的发展过程和当今的水平及其调试工具等。然后,本文重点分析和比较了几种重要的阴影算法的特点及效果。从最早使用的平面投影阴影算法开始着手研究,因为它只试用于平面,所以这种方法当今已大多使用于教学。同时本文也研究了阴影体算法(Shadow Volume),分析了其算法及特点,这种算法的效率下降与模型的数量及复杂度增长呈线性比例关系。而后又分析了阴影图算法(Shadow Map),这种算法不与模型的数量挂钩,但是其渲染有精度误差。最后,通过上述算法的研究比较,给出了一种实时软阴影渲染算法,这种算法利用了阴影体中使用的轮廓边技术和阴影图技术共同完成,同时还使用了硬件戈劳德(Gouraud)着色方式来处理Alpha纹理。通过对这种算法实验的分析,得出了这种算法的特点,具有实时性,且可以用于一般的图形引擎。本文使用Direct3D和HLSL(High Level Shader Language)高级着色语言进行编程,Direct3D是Windows平台流行的3D编程SDK,HLSL用于GPU编程,与Direct3D一起工作。实验证明,伪软阴影算法能够达到实时渲染软阴影目的。