在球面高斯光源下半透明物体的渲染方法

文档序号:6376593阅读:298来源:国知局
专利名称:在球面高斯光源下半透明物体的渲染方法
技术领域
本发明涉及图形渲染技术领域,特别是涉及一种在球面高斯光源下半透明物体的渲染方法。
背景技术
真实感图形的生成经常会涉及到需要准确地模拟半透明材质。事实上,从广义的角度上说,绝大多数材质,比如大理石,玉石,蜡,牛奶,水果以及人的皮肤等等,都具备半透明的特性,从而会显示出一种光滑和柔和的外表特征。为了模拟半透明的效果,一个常见的方法是,考虑入射光对任意一个出射点的贡献,我们称之为双向次表面反射函数(BSSRDF)。在2OOl 年,Jensen 等人在论文 “A practical model for subsurface lighttransport”中率先提出了一个有效的BSSRDF模型,他们假设半透明物体是均匀的,并把光线在半透明物体内部的散射次数分为一次和多次分别考虑。对于单次散射,他们认为光线可能在沿出射方向反方向上的每个点处发生一次散射,通过考虑所有的情况,得到出射点的光强度;对于多次散射,他们假设所考虑的半透明物体是一个半无限大的平面,在入射点正下方和正上方分别放置一个正值的点光源和一个负值的点光源,利用这两个光源计算对任意出射点的贡献。在2007 年,Donner 等人在论文“Rendering translucent materials usingphoton diffusion”中,将之前提出的正光源和负光源不再看作一个点光源,而是看作在入射点分别竖直向下和竖直向上衰减分布的一系列光源。这一方法使得半透明物体的表面更加清晰,细节上的损失更少。在2Oll 年,d,Eon 等人在论文“A quantized-diffusion model forrenderingtranslucent materials”中,提出了一个新的模型,这个模型可以通过函数近似的方法,给出竖直向下和竖直向上衰减分布的一系列光源的解析表达式,从而大大加快了半透明物体的渲染速度。现有技术中以点光源和呈衰减分布的一系列点光源来模拟环境光,从而渲染出半透明物体效果,但环境光并不是简单的点光源,以点光源渲染的半透明物体和环境光作用下的半透明物体还是有一定的差距。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是提供一种减小模拟光源渲染的半透明物体与环境光作用下的半透明物体之间差距的在球面高斯光源下的半透明物体的渲染方法。(二)技术方案为了解决上述技术问题,本发明提供一种在球面高斯光源下半透明物体的渲染方法包括SI :建立关于球面高斯光源半径和入射角度的拟合系数查找表;
S2 :根据给定的球面高斯光源,得到每个入射点的光强度;S3 :对每个入射点-出射点对,在SI得到的拟合系数查找表中,根据给定球面高斯光源的半径和入射角度,得到相应的拟合系数,从而确定由入射点经多次散射后对出射点光强度贡献的计算公式;S4 :根据S2得到的入射点的光强度和S3得到的由入射点经多次散射后对出射点光强度贡献的计算公式,分别计算每个入射点经多次散射后对所有出射点的光强度贡献,并累加得到每个出射点的光强度A ;S5 :从视点方向看去,对每个出射点,沿着视线方向的折射方向进行采样积分,计算出每个出射点的光强度B,其中,对每个采样点,使用在给定球面高斯光源下由入射点经单次散射后对出射点光强度贡献的公式;S6 :从视点方向看去,每个出射点的实际光强度为A+B。 如上所述的在球面高斯光源下半透明物体的渲染方法,优选的是,所述球面高斯光源用二维高斯函数表示,即G{rJ^X) = eM,'^l)其中,λ为球面高斯函数的半径山为球面高斯函数的中心;i是变量,表示球面上任意的方向;G (i J1 ; λ )为i方向上的光强度。如上所述的在球面高斯光源下半透明物体的渲染方法,优选的是,球面高斯光源由u个衰减函数来近似表示,则与球面高斯光源半径和入射角度无关的拟合系数查找表为
IU7-·-
4;d) cf trk与球面高斯光源半径和入射角度有关的拟合系数查找表为
^3m=l
Λτ, ~^j ~I!2π·--—— (I -e-2Xi)^pEme-q^
酌二 I上述各式中D为扩散常数;σ为有效衰减系数;d是半透明物体任意两点间的直线距离;ak、λ k为拟合系数+λ J分别是经折射后的球面高斯
光源的中心和半径,i2为入射点到出射点的连线方向为拟合系数。如上所述的在球面高斯光源下半透明物体的渲染方法,优选的是,步骤S3具体为入射点经多次散射后对出射点光强度的贡献公式为R = ±ak(FCJ., + n)(\lK)其中,&=ζm·· VM;
πι- Le = 24J0 Q(S)·e-w-n.) ·(Zjiij ·η) + IsrXkQ1 ·n)) ^PE^-'^ds ;Q(s) = Q e ai's;
上述各式中F是菲涅耳项,是入射光和出射光分别经过折射后剩余能量比例的乘积;C41、D、Ce是常数;Q (s)是光源衰减分布函数,其中Q和σ,常数;r是入射点到出射点的距离;L、λ j分别是经折射后的入射球面高斯光源的中心和半径;i2是入射点到出射点的连线方向;11是入射点的法线方向。(三)有益效果本发明所提供的在球面高斯光源下半透明物体的渲染方法通过球面高斯光源来模拟环境光,并建立关于球面高斯光源半径和入射角度的拟合系数查找表来计算每个入射点经多次散射后对出射点的光强度贡献,从而得到所有入射点经多次散射后对出射点的光强度贡献,同时计算出入射点经单次散射后对出射点的光强度贡献,两者之和即为出射点的实际光强度。因为球面高斯函数能够模拟半径及强度可变的光源,所以球面高斯光源既可以表示小而亮的光源,也可以表示大而暗的光源,符合物理规律,能够很好的模拟环境光,使得对半透明物体的渲染具有很高的真实性。


图I为本发明实施例中球面高斯光源下半透明物体的渲染方法的流程图;图2为球面高斯光源与半透明物体位置关系图;图3为本发明实施例中球面高斯光源下半透明物体的渲染方法的原理图;图4a为本发明实施例中光源沿45°入射角射入平面半透明物体是以d’Eon论文中提出的方法渲染的效果图;图4b为本发明实施例中光源沿45°入射角射入平面半透明物体是在球面高斯光源下半透明物体渲染的效果图;图4c为本发明实施例中光源沿45°入射角射入平面半透明物体是通过模拟方法计算出的效果参考图;图5a为本发明实施例中光源沿80°入射角射入平面半透明物体是以d’Eon论文中提出的方法渲染的效果图;图5b为本发明实施例中光源沿80°入射角射入平面半透明物体是在球面高斯光源下半透明物体渲染的效果图;图5c为本发明实施例中光源沿80°入射角射入平面半透明物体是通过模拟方法计算出的效果参考图;其中,I :半透明物体;2 :球面高斯光源;3 :环境光;4 :入射点;5 :出射点。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。图I为本发明实施例中在球面高斯光源下半透明物体的渲染方法的流程图。因为球面高斯函数能够模拟半径及强度可变的光源,所以球面高斯光源既可以表示小而亮的光源,也可以表示大而暗的光源,能够很好的模拟环境光。如图I所示,本发明实施例中在球面高斯光源下半透明物体的渲染方法包括SI :建立关于球面高斯光源半径和入射角度的拟合系数查找表;
如图2所示,本实施例中的球面高斯光源可以用二维球面高斯函数表示,即
'其中,λ为球面高斯函数的半径山为球面高斯函数的中心。i是变量,表示球面上任意的方向;G为i方向上的光强度。因为二维球面高斯函数表示
的球面高斯光源的光强度G与半径λ和入射角度I1有关,可以更好的模拟半
透明物体I周围的环境光3。并优选以u个(本实施例中为4个,即可很好的近似球面高斯光源)衰减函数来近似表示球面高斯光源,以方便建立拟合系数查找表,其中,近似过程可以使用MATLAB软件的fminsearch函数完成。结合图3所示,本实施例中建立的拟合系数查找表具体为与球面高斯光源半径和入射角度无关的拟合系数查找表为I-4σ!…Dd 4-·-a,e^d2
AnD d 台此式只是为了计算出拟合系数ak、λ k,与球面高斯光源无关。与球面高斯光源半径和入射角度有关的拟合系数查找表为2π·^-—(1-β2βη^ρφηβ^Λ
m=l2π · ^-5~ · (I — e—从) ^ PE ,q£'"Xt上述各式中D为扩散常数;σ为有效衰减系数;d是半透明物体任意两点间的直线距离;ak、λ k为拟合系数^ =柄+4+ 2又/种2) ; Ij, λ ^分别是经折射后的球面高斯
光源的中心和半径,i2为入射点到出射点的连线方向为拟合系数。经折射后的球面高斯光源是指任何光线进入物体都会发生折射,对于球面高斯光源的每一根光线,在物体表面一点都会发生折射而进入物体,所有经过折射的光线聚集在一起,相当于一个新的球面高斯光源,这个光源就是经折射后的球面高斯光源。而经折射后的球面高斯光源的中心和半径都直接与入射之前的球面高斯光源相关,因此建立的拟合系数是根据入射之前的球面高斯光源的半径和入射角度确定的。其中,建立的拟合系数查找表是为了能够计算每个入射点-出射点对中入射点经多次散射后对出射点光强度的贡献,球面高斯光源半径和入射角度对应一组拟合系数Ρ#、
P Φηι、Ρεπι、Qeiii0S2 :根据给定的球面高斯光源,得到每个入射点的光强度;由于球面高斯光源是面光源,故此处的入射点4光强度应当分布在
之间,完全可见记为1,完全不可见记为0,可以使用任何一种软阴影的渲染方法获得,在此不再赘述。S3 :对每个入射点-出射点对,在SI得到的拟合系数查找表中,根据给定球面高斯光源的半径和入射角度,得到相应的拟合系数,从而确定由入射点经多次散射后对出射点光强度贡献的计算公式;根据SI得到的拟合系数查找表,本实施例中入射点4经多次散射后到出射点5的光强度贡献公式可以为
R = Ya^FC0L9-U--DCiLr)
k^l其中,小# 2—2sr)*l>—e—
m=iLe = 24J0 Q(s)·eXtis^rl-lsr) ·(Ajiij ·n) + 2srAk(i2 ·η))·^ρΕιηβ q^m2srhds ;
m-lρ⑴= g.e-σ;.5;上述各式中F是菲涅耳项,是入射光和出射光分别经过折射后剩余能量比例的 乘积,与光源的入射角度有关;CpDXe是常数;Q (s)是光源衰减分布函数,其中Q和σ,t为常数;r是入射点到出射点的距离;ip λ j分别是经折射后的入射球面高斯光源的中心和半径;i2是入射角度;n是入射点的法线方向。S4 :根据S2得到的入射点的光强度和S3得到的由入射点经多次散射后对出射点光强度贡献的计算公式,分别计算每个入射点经多次散射后对所有出射点的光强度贡献,并累加得到每个出射点的光强度A ;S5 :从视点方向看去,对每个出射点,沿着视线方向的折射方向进行采样积分,计算出每个出射点的光强度B,其中,对每个采样点,使用在给定球面高斯光源下由入射点到出射点经单次散射后光强度贡献的公式;在该步骤中,对于每个采样点,使用任何一种处理单次散射的方法获取入射点的位置,使用光源中心方向获取平均衰减值E,使用任何一种软阴影方法获取平均可见性V,对每个采样点,结合图3所示,在球面高斯光源下由入射点4经单次散射后对出射点5光强度贡献的公式为其中,i是折射后的入射方向;0是折射后的出射方向;p(i,O)表示由i方向散射到ο方向的概率;ip λ j分别是经折射后的入射球面高斯光源的中心和半径;Ω表示上式的积分是在整个球面上进行的。S6 :从视点方向看去,每个出射点的实际光强度为Α+Β。图4a、4b和4c是光源沿45度入射角射入平面半透明物体的效果图,图5a、5b和5c是光源沿80度入射角射入平面半透明物体的效果图。其中,图4a和图5a是以d’Eon论文中提出的方法得出的效果图,图4b和5b是以本发明提供的在球面高斯光源下半透明物体的渲染方法得出的效果图,图4c和5c是通过模拟方法计算出的效果参考图,由图可见,本发明提供的球面高斯光源下半透明物体的渲染方法算法在效果上非常接近模拟结果,具有很闻的真实性。由以上实施例可以看出,本发明所提供的在球面高斯光源下半透明物体的渲染方法通过球面高斯光源来模拟环境光,并建立关于球面高斯光源半径和入射角度的拟合系数查找表来计算每个入射点经多次散射后对出射点的光强度贡献,从而得到所有入射点经多次散射后对出射点的光强度贡献,同时计算出入射点经单次散射后对出射点的光强度贡献,两者之和即为出射点的实际光强度。因为球面高斯函数能够模拟半径及强度可变的光源,所以球面高斯光源既可以表示小而亮的光源,也可以表示大而暗的光源,符合物理规律,能够很好的模拟环境光,使得对半透明物体的渲染具有很高的真实性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。·
权利要求
1.一种在球面高斯光源下半透明物体的渲染方法,其特征在于,包括 Si:建立关于球面高斯光源半径和入射角度的拟合系数查找表; 52:根据给定的球面高斯光源,得到每个入射点的光强度; 53:对每个入射点-出射点对,在SI得到的拟合系数查找表中,根据给定球面高斯光源的半径和入射角度,得到相应的拟合系数,从而确定由入射点经多次散射后对出射点光强度贡献的计算公式; 54:根据S2得到的入射点的光强度和S3得到的由入射点经多次散射后对出射点光强度贡献的计算公式,分别计算每个入射点经多次散射后对所有出射点的光强度贡献,并累加得到每个出射点的光强度A ; 55:从视点方向看去,对每个出射点,沿着视线方向的折射方向进行采样积分,计算出每个出射点的光强度B,其中,对每个采样点,使用在给定球面高斯光源下由入射点经单次散射后对出射点光强度贡献的公式; 56:从视点方向看去,每个出射点的实际光强度为A+B。
2.根据权利要求I所述的在球面高斯光源下半透明物体的渲染方法,其特征在于,所述球面高斯光源用二维高斯函数表示,即
3.根据权利要求2所述的在球面高斯光源下半透明物体的渲染方法,其特征在于,球面高斯光源由u个衰减函数来近似表示,则与球面高斯光源半径和入射角度无关的拟合系数查找表为
4.根据权利要求3所述的在球面高斯光源下半透明物体的渲染方法,其特征在于,步骤S3具体为 入射点经多次散射后对出射点光强度的贡献公式为
全文摘要
本发明属于图形渲染技术领域,公开了一种在球面高斯光源下半透明物体的渲染方法。该在球面高斯光源下半透明物体的渲染方法通过球面高斯光源来模拟环境光,并建立关于球面高斯光源半径和入射角度的拟合系数查找表来计算每个入射点经多次散射后对出射点的光强度贡献,从而得到所有入射点经多次散射后对出射点的光强度贡献,同时计算出入射点经单次散射后对出射点的光强度贡献,两者之和即为出射点的实际光强度。因为球面高斯函数能够模拟半径及强度可变的光源,所以球面高斯光源既可以表示小而亮的光源,也可以表示大而暗的光源,符合物理规律,能够很好的模拟环境光,使得对半透明物体的渲染具有很高的真实性。
文档编号G06T11/00GK102903131SQ20121033153
公开日2013年1月30日 申请日期2012年9月7日 优先权日2012年9月7日
发明者徐昆, 闫令琪 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1