● 摘要
光照是真实感场景绘制的重要技术,正确的光照能更好地表达出场景的真实性。本论文以国家863项目“实时三维图形平台BH_GRAPH”为背景,给出了一种基于GPU的图像光照算法,并给出了一个支持多遍绘制的Shader框架,最后通过Shader框架把光照算法加入到BH_GRAPH中。论文的具体内容包括以下三个部分:(1) 一种基于GPU(Graphics Processing Unit)的图像光照算法。随着GPU的发展,点光源光照算法已经不能满足人们对光照效果的要求,为此,本文给出了一种基于GPU的图像光照算法,算法使用从真实场景拍摄的光照图作为光源,使光源不再限于简单的点光源,并充分利用GPU的高速处理能力,能得到实时的,比点光源光照更逼真的光照效果。(2) BH_GRAPH中Shader框架的研究与实现。BH_GRAPH原本采用基于固定流水线的绘制机制,为了使它支持图像光照效果以及其它图形特效(Cg特效),必须对BH_GRAPH进行扩展,加入Shader框架,使其支持可编程流水线。Shader框架一方面对Cg运行库进行封装,一方面与绘制引擎原绘制流程结合,把Cg特效作为是一种特殊的材质,把Cg特效加入到引擎场景图之中,实现固定流水线场景与Cg特效统一绘制。大部分Cg特效需要多遍绘制,才能达到绘制预想效果,因此,本文在Shader框架中引入回调机制,实现对多遍绘制的支持。(3) BH_GRAPH中的图像光照及框架应用。在BH_GRAPH中加入图像光照,首先准备好图像光照需要的Cg程序,再对Shader框架中的Cg材质进行扩展,通过使用Shader框架,可以很便捷地把图像光照加入到绘制引擎中去。图像光照的应用,验证了Shader框架的可用性。此外,使用Shader框架在BH_GRAPH中实现了水波效果,水波效果的应用,进一步验证了Shader框架的可用性,并验证了Shader框架对多遍绘制的支持。上述算法和框架已经应用到实时三维图形平台BH_GRAPH中。结果表明,基于图像的光照算法得到了实时、逼真的光照效果,Shader框架使BH_GRAPH有了支持可编程流水线的能力,提高了引擎的可扩展性。