论文部分内容阅读
随着计算机图形学的飞速发展,计算机图形在越来越多的领域发挥重要作用,比如数据可视化、虚拟现实、计算机动画和游戏制作等等。为了提高图形质量人们不断提出新的光照模型、渲染算法,以期在有限的硬件条件下实现高质量的渲染结果。自可编程着色器于上世纪80年代提出以来,可编程着色器就迅速成为了计算机图形学领域里描绘物体材质属性的一种高可靠性和高扩展性的工具。由于当时硬件条件的限制,可编程着色器的重要作用并没有得到很好体现,这是因为执行可编程着色器占据非常多的渲染时间并很容易超出计算机硬件的能力。随着计算机硬件能力的提高,可编程着色器在图形学领域的重要作用也越来越明显:在离线渲染领域着色器分为表面着色器、光源着色器、体着色器、置换着色器和图像着色器,在实时渲染领域也有如像素着色器、顶点着色器等。不过对于产生复杂特效的着色器,在现今硬件条件下执行时,仍然有可能超出硬件能力造成渲染时间过长或者直接渲染失败。这就需要对可编程着色器进行简化和优化来满足渲染要求和硬件的限制。由于可编程着色器是着色器程序员编写的代码,对于产生同样效果的着色器,因着色器程序员的经验不同,计算机执行着色器的时间也不同,这为可编程着色器进行简化产生重要契机;另外可编程着色器作为一段程序代码,也可以利用代码简化等分析代码的方法并结合可编程着色器自身的特点进行简化。另外着色流程作为渲染流水线的一个重要步骤,优化着色过程统一可以有效的缩短渲染时间而不会损失渲染结果的质量。本文在“可视媒体计算的新方法”项目的支持下可以方便的对本文的渲染引擎进行着色器简化以及优化来加速着色流程。本文主要内容分为三个部分:1.着色器简化:本文涉及的渲染引擎是一种符合RenderMan标准的离线渲染引擎,关注渲染高质量的结果,本文对可编程着色器的简化是对RenderMan Shading Language中的五种类型的着色器进行的简化。2.着色器简化控制:有效的控制着色器简化过程对着色器简化非常重要,如何在保证渲染结果的质量下简化着色器并减少渲染时间是本文研究的一项重点内容。3.着色器优化:对着色器进行优化主要是对渲染引擎着色流程的优化,渲染流水线中的着色阶段是整个流水线最耗时的阶段,优化着色流程可以有效的减少渲染时间。本文在前人工作的基础上提出新颖的方式实现了着色器简化和着色器优化,在当前硬件条件的限制下有效的减少了渲染时间,保证了渲染结果的质量。