万方数据计算机辅助设计与图形学学报2001年,Jensen等[1]提出一种均匀半透明材质的建模和绘制方法——解析BSSRDF模型.他们将BSSRDF分为多次散射和单次散射两部分之和,其中多次散射分量进一步使用双极扩散近似.该方法比离线绘制方法快了2个数量级,不过仍然需要1~2min才能绘制一帧图片.之后,许多研究人员基于Jensen的解析BSSRDF模型,通过不同的加速手段,提出许多更快的半透明材质绘制方法,可以达到交互甚至实时帧率.2007年,Xu等∽3基于解析BSSRDF模型,提出一种半透明材质编辑方法.该方法完全考虑多次散射和单次散射效果,并可以达到实时帧率;然而,它却不允许光照变化,使得其应用受到一定限制.本文提出一种支持动态光照的半透明材质编辑方法.通过使用该方法,艺术家可以同时变化光照、编辑半透明材质,并立即看到光照和材质变化之后的绘制效果,大大地方便了场景中的光源和材质设计.本文在文献[2]方法的基础上进行了一定改进.文献[2]方法是将半透明材质函数使用分段多项式基函数近似为一组系数向量;在编辑之前,预计算并存储每个多项式基的材质传输向量;在编辑绘制时,每个顶点上的出射光亮值为材质系数向量和材质传输向量的点积.我们进一步将光源使用球面谐波基进行近似,这样光源就可以近似为一组球面谐波基系数向量;在编辑之前,预计算并存储每个多项式基对应于每个球面谐波基的材质传输矩阵;在编辑绘制时,每个顶点上的出射光亮值为材质系数向量、光源系数向量和材质传输矩阵的乘积.为了进一步加快绘制速度,本文提出一种材质传输缓存方法,将每个顶点上的计算复杂度进一步降低为向量的点积.该方法在GPU上设计并实现,并能够达到实时绘制帧率.1相关工作本文是对均匀半透明材质进行编辑,使用的方法与近年来实时绘制领域的预计算辐射传输(precomputedradiancetransfer,PRT)框架‘31更接近.下面分两个方面探讨相关工作.在半透明绘制领域,BSSRDF模型的提出给半透明物体的绘制带来了质的飞跃.随后,研究人员们提出了许多基于Dipole模型的方法,进一步提高了绘制速度,可以达到交互帧率,甚至实时帧率.如Jensen等n]通过八叉树加速结构将绘制积分进一步简化为两步的运算;Lensch等L51和Hao等[6]提出多次散射效果随距离呈指数衰减的假设,并以此近似多次散射效果;Mertens等【71提出一种层次边界元方法,允许用户修改光源、视点位置、物体材质和物体几何,然而该方法不能处理单次散射效果.PRT框架是近年来实时全局光照领域最热门的技术之一,由Sloan等∞3在2002年首先提出.该技术的基本原理是:将环境光源分解为某一特定基函数的线性组合,同时在每个顶点上预计算各个基函数的转移函数;则在绘制时,各个顶点的颜色计算可以简化为一个点积.2005年,Wang等[8]在PRT框架中加入了半透明绘制效果.但是,以上方法都只考虑半透明绘制,而未考虑半透明材质编辑.2007年,Xu等[2]将PRT框架引入到BSSRDF材质编辑中,提出一种半透明材质编辑方法.该方法完全考虑多次散射和单次散射效果,并可以达到实时帧率,其不足之处是不允许光照变化.国内除Xu等[2]的T作之外,还尚未见到其他关于半透明材质编辑的报道.在半透明材质处理与绘制方面,国内有卜海亮等提出的复杂环境光照下的半透明材质恢复算法[9],闵贤龙等提出的半透明物体的PRT绘制算法[10|,沈姝莺等关于半透明材质在MentalRay中的实现[113等.2数学基础复杂环境光照下的半透明物体,在某一点z。、朝某一方向‰的出射光强L。,可以使用解析BSSRDF模型描述为一个多次散射分量(L)和一个单次散射分量(E¨)的和,即L。(z。,‰)一Ld(z。,ccJ。)+L:”(z。,cc,。)(1)2.1多次散射分量式(1)中的多次散射分量可以进一步使用Dipole模型近似,即Ld(z。,∞。)=土F,(叩,(£’。)IR。(ilz。一z,JJ)J(z,)dA(z,)丁c。J^(2)其中,入射点z。的入射光量J(z。)可以通过r工(zi)2I。Fr('7,cc,I)L(∞。)(门。·ccJ,)dc£,,(3)万方数据万方数据万方数据万方数据1006计算机辅助设计与图形学学报2008年[4][5][6][7][8]JensenHW,BuhlerJ.Arapidhierarchicalrenderingtechniquefortranslucentmaterials[C]//c...