首页 / 全局光照下全动态毛发的绘制方法

全局光照下全动态毛发的绘制方法有效专利 发明

技术领域

[0001] 本发明涉及图像绘制技术领域,尤其涉及一种全局光照下全动态毛发的绘制方法。

相关背景技术

[0002] 在真实感绘制领域中,毛发的绘制一直以来都是一个重要课题。毛发作为一种非常重要的材质,在3D电影、电脑游戏、交互式3D应用等数字娱乐和创意产业领域中有着广泛的应用。然而,由于毛发几何和散射性质较为复杂,毛发的全局光照计算代价很大,使得实现全动态毛发的实时全局光照并非易事。在真实感绘制领域,研究者们一直强调绘制方法的逼真性、实时性和动态性。为了能够提高毛发绘制的整体效果,这些性质便成为了关键。寻找到一种同时满足这些性质的毛发绘制方法,势必会在3D交互和媒体娱乐领域中产生广泛的应用。
[0003] 受到强烈的需求推动,近年来毛发的绘制得到了许多研究者的强烈关注。关于毛发绘制的介绍可以在Ward K.等人2007年发表的“毛发建模方法纵览:风格化,模拟和绘制(A survey on hair modeling:Styling,simulation,and rendering)”中找到。一些早期的技术强调解释一根单独的毛发如何反射、折射光线,即尝试设计出一个合理的毛发散射模型。Kajiya等于1989年提出了“基于三维纹理的毛皮绘制(Rendering fur with three dimensional textures)”,这是第一个被提出的毛发散射模型,该模型具有简单、效率高等特点,因此被广泛应用在很多应用中,不过,该模型对于毛发散射的过程描述的不是很准确,有些时候不能满足人们对于绘制的逼真性的需求。Marschner S.R.等于2003年提出了“人体毛发的光照散射模型(Light scattering from human hair fibers)”,这是一个基于物理的可以更准确的描述毛发对光线进行散射过程的模型,该模型把每根毛发看作成一个圆柱体,并使用三种不同的光线传播方式来模拟真实的散射过程。近年来,还有很多工作着手于通过真实场景的照片还原毛发的几何和散射参数,也都得到了很好的结果。
[0004] 在实时毛发绘制中还有一个很重要的方面,就是大量毛发的自阴影问题。毛发相互遮挡产生的阴影在很大程度上增强了毛发绘制的逼真性。Yuksel C.等于2008年提出了“基于深度的不透明场(Deep opacity maps)”方法,使得实时解决大量毛发的自阴影问题成为可能。该方法通过一定的近似,在产生合理逼真的自阴影结果的同时,大大提升了方法的执行效率,使得大规模复杂毛发模型的自阴影问题得到了很好的解决。
[0005] 在大量毛发的绘制问题中,一根特定的光线会在不同的毛发之间进行多次散射,为了使得绘制的效果更为逼真,多重散射效果也是毛发绘制必须考虑的问题。这种效果对于本身具有颜色的毛发显得尤为明显。该问题可以通过光线跟踪得以解决,然而,由于毛发复杂的散射模型和毛发之间复杂的几何关系,光线跟踪的效率变得非常之低。很多研究者一直致力于寻找适合全动态实时绘制的毛发多重散射效果绘制方法。其中,Zinke A.等于2008年提出了“快速毛发多重散射的双散射近似(Dual scattering approximation for fast multiple scattering in hair)”。该方法引入了双散射模型来近似大量毛发的多重散射效果,可以达到大量毛发多重散射效果的实时绘制。Ren Z.等于2010年提出了“全局光照下毛发的实时绘制(Interactive hair rendering under environment lighting)”。
该方法采用了预处理策略,实现了全局光照下毛发的实时绘制。这些方法在全局光照下具有很强的逼真性,但是,它们仅仅支持固定参数条件下的毛发绘制,对于毛发材质的动态变化却无计可施。同时,它们摒弃了毛发的偏心率,一定程度上对绘制的逼真性造成了损失。

具体实施方式

[0053] 下面结合附图及实施例对本发明进行详细说明如下。
[0054] 图1为本发明实施例全局光照下全动态毛发实时绘制方法流程图。如图1所示,本发明绘制方法的步骤为:
[0055] S1:输入待绘制毛发的几何模型和全局光照信息;
[0056] S2:建立基于物理的简化毛发散射模型,使用多项式和圆高斯函数的线性组合对所述简化毛发散射模型中的方位散射函数进行近似,以提高毛发散射模型的效率;其中中心点为μ,半径为λ的圆高斯函数的定义为:
[0057]
[0058] 所述简化毛发散射模型为:
[0059] S(ωi,ωo)=∑tSt(ωi,ωo)
[0060] 其中:St(ωi,ωo)=Mt(θh)Nt(η,θd,φ)/cos2θd;
[0061] Mt(θh)为纵向散射函数,Nt(η,θd,φ)为方位散射函数;
[0062] ωi、ωo分别表示光线的入射方向和出射方向;
[0063] θh,θd和φ分别为入射方向和出射方向在纵向方向上的差角,入射方向和出射方向在纵向方向上的半角,以及入射方向和出射方向在横向方向角度之差;
[0064] η为毛发的折射率;
[0065] t∈{R,TT,TRT},其中R、TT和TRT分别表示光线通过毛发的三种散射方式:反射、透射-透射和透射-反射-折射。
[0066] 若所述毛发的散射函数为反射函数,使用余弦函数的多项式之和对所述方位散射函数进行近似,即:
[0067] NR(η,θd,φ)=∑0≤k≤6Ck(θd,η)|cosk(φ/2)|
[0068] 其中Ck(θd,η)为第k阶余弦函数的系数。
[0069] 若所述毛发的散射函数为透射-透射函数,使用一个单独的圆高斯函数对所述方位散射函数进行近似,即:
[0070] NTT(η,θd,φ)=bttgc(φ;π,λtt)
[0071] 其中gc(φ;π,λtt)表示中心为π,半径为λtt的圆高斯函数,该圆高斯函数的半径λtt为
[0072]
[0073]
[0074] 峰值btt为NTT(φ=π)。
[0075] 若所述毛发的散射函数为透射-反射-折射函数,有效折射率
[0076]
[0077] 1)当η′<2时,使用三个圆高斯函数对所述方位散射函数进行近似,即:c * c * c *
NTRT(η,θd,φ)=b1(g(φ;φ,λ1)+g(φ;-φ,λ1))+b2g(φ;0,φ)[0078] 其中φ*是NTRT的峰值点,λ1=wc是输入的毛发参数,表示透射-反射-折射的高光半径,b2=NTRT(η,θd,0)(1-gc(0;φ*,wc))2;并令 从
而保证近似前后的能量不变。
[0079] 2)当有效折射率η′>2+Δη′时,其中,Δη′为一个较小的值,一般为0.2<Δη′<0.4,使用一个圆高斯函数对所述方位散射函数进行近似,即:c
[0080] NTRT(η,θd,φ)=b3g(φ;0,λ3)
[0081] 其中,λ3为保证近似前后能量一致的半径值:
[0082]
[0083] b3为NTRT(φ=0)。
[0084] 3)当2<η′<2+Δη′时,使用与η′>2+Δη′相同的圆高斯函数形式对所述方位散射函数进行近似,并用wc和λ3的线性插值λ3′来代替λ3以保证连续性,用b3λ3/λ3′来取代b3以保证能量一致。
[0085] 由上述可知,本实施例使用多项式和圆高斯函数的线性组合近似了毛发散射函数中的方位散射函数,使得毛发散射函数具有了更简单的形式。实验证明这种近似仅仅造成了很小的误差,却大大提高了使用的效率
[0086] S3:建立全局光照的球面径向基函数模型,使用两个圆高斯函数之积对球面径向基函数进行近似,用来计算全局光源和毛发散射函数的解析积分;由于球面径向基函数在与毛发散射函数的解析积分具有复杂度高,消耗资源多,效率很低的特点,因此我们使用了两个圆高斯函数之积对球面径向基函数进行近似,用来计算全局光源和毛发散射函数的解析积分。
[0087] 其中球面径向基函数的定义如下:
[0088]
[0089] 所述全局光照的球面径向基函数为:
[0090] L(ωi)=∑jLjG(ωi;ωj,λj)
[0091] 其中Lj为每个球面径向基函数的光强,G(ωi;ωj,λj)是以ωj为中心,λj为半径的球面径向基函数;
[0092] 用两个圆高斯函数之积对一个球面径向基函数进行近似,对应的公式为:
[0093] G(ωi;ωj,λj)=gc(θi;θj,λj)gc(φi;φj,λj′)
[0094] 其中θi、φi,θj、φj分别是ωi和ωj的球面坐标表示,
[0095]
[0096] 将毛发散射函数与全局光照的解析积分转化成一个较简单的二重积分:
[0097]
[0098]
[0099] S4:输出毛发在指定全局光照下的绘制结果。
[0100] 本发明的方法可以在全局光照下对全动态毛发进行实时的绘制,计算速度快,不需要任何预处理,支持光源、毛发材质、毛发几何的全动态变化。
[0101] 以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

当前第1页 第1页 第2页 第3页