论文部分内容阅读
数字动漫与影视产业是我国近年来大力发展的战略性新兴产业。计算机3D渲染技术发挥着越来越重要的作用。渲染是指从数字模型生成像素级图像的过程。由模型到图像的过程需要对渲染目标计算颜色,对渲染目标的颜色进行计算的过程称为着色,而光照是着色的根本。自上世纪80年代可编程着色器被提出以来,可编程着色器就迅速成为了计算机图形学领域里描绘事物材质属性的一种高可靠性和高扩展性的工具。光源也同样需要描述为可编程着色器。很多三维设计人应用Autodesk Maya软件,它是美国Autodesk公司出品的世界顶级的三维动画软件,可以提供完美的3D建模、动画、特效和高效的渲染功能。一个渲染系统常常首先要能提供对Maya的支持。而对于Maya光源,各种业界产品的解释参差不一。正因如此,一个渲染系统需要能正确识别Maya的光源并能被系统用以渲染的着色器。本文面向《真实感动漫渲染系统研究与应用》课题需求,基于RenderMan着色器规范,建模、设计、实现了光源着色器,与课题组开发的Bleman渲染引擎结合,可以很好的实现Maya场景的光照渲染需求。本文工作内容主要分为两部分:一是光源的建模。真实世界的光照非常复杂,受到光源本身的物理属性、环境空气的多样因素和场景空间关系等各种因素影响。在场景设计中,这些影响因素的前两者可以统一归为光源的属性,调节属性参数可以模拟复杂多变的光照。光源的建模规定了由光源模型负责的计算任务、集成了各种属性参数对光源的影响以及由空间关系决定的传播或阻断过程。场景各处可以使用光源经过模型计算得到的颜色贡献。光源模型既需要遵循科学规律,其效果又要满足画面设计者应用经典设计工具Maya而形成的期待。建模中则用到光的朗伯特余弦定理,埃尔米特光滑差值等方法,以及其它渲染产品如3delight的经验数据和公式。二是着色器的设计和实现。由模型到着色器的实现采用RSL(RenderMan Shading Language)。通过Renderman规范的RSL编程得到.sl着色器文件,该编程着色器可以为RenderMan规范编译器编译为可执行的.sdr可执行着色器,结合大量场景文件进行渲染测试以完善着色器。以C++编程的渲染平台系统借助MayaAPI导出必须的参数到着色器,使得着色器可以直接支持Maya的用户设置。为简化过程,不直接导出完整的RSL程序,而是替换为宏语句,在编译.sl文件时才从需要的头文件中读取相应的宏定义。这些宏定义是计算光的RSL程序,编译后得到的可执行.sdr着色器可以在之后的过程为渲染引擎调用。本文的工作补充了项目组自主研发的真实感渲染系统,成为渲染着色器库的重要组成部分。