專利名稱::一種可交互的非勻質(zhì)半透明物體繪制方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及圖形繪制
技術(shù)領(lǐng)域:
,尤其涉及一種非勻質(zhì)半透明物體的繪制方法。
背景技術(shù):
:半透明物體的繪制與物體的次表面散射現(xiàn)象密切相關(guān)。次表面散射是指光線進(jìn)入物體的表面時(shí)與物體材質(zhì)相互作用產(chǎn)生散射,并從表面的另一個(gè)點(diǎn)離開該物體。光的次表面散射效果對(duì)于許多材質(zhì),特別是半透明材質(zhì)(如大理石,玉,皮膚等)的真實(shí)再現(xiàn)起著十分重要的作用。然而,由于這種散射現(xiàn)象的復(fù)雜性,快速而精確的渲染這些材質(zhì)非常困難?,F(xiàn)存的方法在效率或者其他方面總存在各種缺陷。半透明物體繪制的標(biāo)準(zhǔn)方法是蒙特卡羅方法,包括路徑追蹤和光子映射法等,可以通過按方向模擬基本的物理散射來計(jì)算出單個(gè)光子在散射材質(zhì)中的軌跡。只要有計(jì)算出足夠多的軌跡,該方法就可以模擬出任意精度的圖像。然而,即便是對(duì)于均一材質(zhì)的物體,蒙特卡羅方法的運(yùn)算量也是極其大的,往往渲染一幀就需要數(shù)小時(shí)的計(jì)算;對(duì)于非勻質(zhì)材質(zhì)的物體,計(jì)算量更加大,這就注定了它只能離線計(jì)算。蒙特卡羅方法可參考D0RSEY,J.,EDELMAN,A.,JENSEN,H.W.,LEGAKIS,J.,ANDPEDERSEN,H.K.1999;Modelingandrenderingofweatheredstone.InACMSIGGRAPH,225-234.PHARR,M.,ANDHANRAHAN,P.2000;Montecarloevaluationofnon-linearscatteringequationsforsubsurfacereflection.InACMSIGGRAPH,75-84.Li,H.,PELLACINI,F.,ANDTORRANCE,K.E.2005;Ahybridmontecarlomethodforaccurateandefficientsubsurfacescattering.InEurogr.SymposiumonRendering,283-290JENSEN,H.W.,ANDCHRISTENSEN,P.H.1998.Efficientsimulationoflighttransportinscenceswithparticipatingmediausingphotonmaps.InACMSIGGRAPH,311-320。由于蒙特卡羅方法的大運(yùn)算量,實(shí)際中人們往往采用各種近似計(jì)算。首個(gè)有效近似即為偶極子擴(kuò)散逼近BSSRDF。該方法盡管速度十分快,但是一方面BSSRDF的精度有限,另一方面它只能渲染均一材質(zhì)的物體。然而,該方法仍然被廣泛應(yīng)用,這是由于其低計(jì)算量和易實(shí)現(xiàn)性。該方法可以用來加速蒙特卡羅方法,也可以用來改善渲染質(zhì)量;在預(yù)計(jì)算光線追蹤方法中,該方法可以成為實(shí)時(shí)方法。該方法可以參考以下論文JENSEN,H.W.,MARSCHNER,S.R.,LEVOY,M.,ANDHANRAHAN,P.2001.Apracticalmodelforsubsurfacelighttransport.InACMSIGGRAPH,511-518;H.W.JensenandJ.BuhIer,Arapidhierarchicalrenderingtechniquefortranslucentmaterials.ACM,2002,pp.576-581;H.W.Jensen,S.R.Marschner,M.Levoy,andP.Hanrahan,Apracticalmodelforsubsurfacelighttransport.AGM,2001,pp.511—518。由于上述各種方法的缺陷性,基于擴(kuò)散方程求解的繪制方法被廣泛應(yīng)用。擴(kuò)散方程最早由在參與介質(zhì)理論中提出,進(jìn)入散射材質(zhì)的光線,其光子運(yùn)動(dòng)由以下三個(gè)函數(shù)決定吸收系數(shù)函數(shù)μ和散射系數(shù)函數(shù)Qs'分別給出了單位距離內(nèi)材質(zhì)吸收和散射光子的個(gè)數(shù),相函數(shù)^(成斤)給出了光子從5到i的概率。由這三個(gè)函數(shù)便可確定物體中從任意一點(diǎn)X到任意方向治的光照。給定物體Ω,邊界條件3Ω和物體的光學(xué)屬性(吸收系數(shù)μ和散射系數(shù)Os')物體內(nèi)部的光通量^(X)可以由如下擴(kuò)散方程描述V.(AT(x)Vp(x))-μ(χ)φ(χ)=0,χeΩ,其中,V.是散度算子,V是梯度算子,κ(χ)=[μ(χ)+σ3'(χ)]-1。擴(kuò)散方程描述了光線照射在半透明物體上時(shí)物體內(nèi)部的輻射通量(光通量)分布情況。用擴(kuò)散方程來描述半透明物體的次表面散射基本步驟是對(duì)物體進(jìn)行空間網(wǎng)格剖分,按建立好的空間網(wǎng)格離散原擴(kuò)散方程并在所有的離散點(diǎn)上建立起線性系統(tǒng);以入射光線為邊界條件求解該線性系統(tǒng)可以得到物體內(nèi)部的光通量分布,最后通過一個(gè)查詢函數(shù)便可通過光通量和入射光線的計(jì)算得到該物體表面的出射光線。現(xiàn)有的線性系統(tǒng)構(gòu)造方法有兩種有限差分法(FDM)和有限元方法(FEM)。第一個(gè)提出了基于擴(kuò)散方程的能夠?qū)崟r(shí)渲染非勻質(zhì)材質(zhì)物體的方法是有限差分法。該方法將物體剖分成六面體網(wǎng)格(6-擬正則多面體網(wǎng)格),然后自然地基于該網(wǎng)格用FDM離散拉普拉斯算子和梯度算子,利用多重網(wǎng)格加速技術(shù)和GPU的高并行計(jì)算,達(dá)到了實(shí)時(shí)渲染。該方法在效率和交互性(允許用戶動(dòng)態(tài)編輯光學(xué)材質(zhì)甚至進(jìn)行簡(jiǎn)單的幾何形變)上有著很大的優(yōu)勢(shì),然而,該方法有三個(gè)缺陷第一、六面體網(wǎng)格只能很小心的手動(dòng)建立,這造成了實(shí)際應(yīng)用中的困難;第二、由于使用了較為規(guī)則的六面體網(wǎng)格,該方法只能表示幾何形狀較為簡(jiǎn)單的物體(如沒有尖銳拐角等);第三、FDM的離散精度不夠高,這使得這種離散方法只適用于較為規(guī)則的物體和一定范圍內(nèi)變動(dòng)不劇烈的物體光學(xué)系數(shù)。在此基礎(chǔ)上,后人改用四面體網(wǎng)格來表示空間物體,然后用同樣的方法建立線性系統(tǒng),由于四面體網(wǎng)格可以很方便的自動(dòng)生成,而且四面體表達(dá)任意幾何形狀的能力較強(qiáng),所以克服了六面體網(wǎng)格的前兩個(gè)缺陷。但由于FDM本身沒有變,第三個(gè)缺陷仍然無法避免。四面體網(wǎng)格上的有限元方法FEM則完全避免了上述缺陷。用蒙特卡羅路線追蹤法得到的結(jié)果作為真實(shí)解參照,可以看出FEM比FDM更為精確。為了得到FEM線性系統(tǒng)的解,該方法在每一個(gè)四面體內(nèi)部對(duì)每一對(duì)頂點(diǎn)進(jìn)行了數(shù)值積分。該方法的主要優(yōu)勢(shì)在于求解精度十分高,而且即便物體離散的四面體形狀很差,該方法的誤差依然很小。另一方面,該方法的速度遠(yuǎn)遠(yuǎn)快于蒙特卡羅方法(一般在數(shù)十秒到數(shù)百秒)。但是相對(duì)于有限差分法,該方法速度仍然較慢,并不能達(dá)到實(shí)時(shí)渲染或交互式渲染。關(guān)于擴(kuò)散方程的相關(guān)文獻(xiàn)可以參考=WANG,J.,ZHAO,S.,TONG,X.,LIN,S.,LIN,Z.,DONG,Y.,GU0,B.,ANDSHUM,H.-Y.2008.Modelingandrenderingofheterogeneoustranslucentmaterialsusingthediffusionequation.ACMTrans.Graph.27,1,1-18;ARBREE,A.,WALTER,B.,ANDBALA,K.2010.Heterogeneoussubsurfacescatteringusingthefiniteelementmethod.IEEETrans.Vis.Comp.Graph..08Sep.2010,IEEECSDig;WANG,Y.,WANG,J.,H0LZSCHUCH,N.,SUBR,K.,YONG,J.-H.,ANDGUO,B.2010.Real-timerenderingofheterogeneoustranslucentobjectswitharbitraryshapes.ComputerGraphicsForum29,497-506。
發(fā)明內(nèi)容本發(fā)明針對(duì)在游戲、電影以及相關(guān)領(lǐng)域中的半透明物體的高精度高效率繪制問題,提出了一種可交互的非勻質(zhì)半透明物體繪制方法。本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的一種可交互的非勻質(zhì)半透明物體繪制方法,該方法通過離散散度方法離散化擴(kuò)散方程來建立線性系統(tǒng),并通過并行多重網(wǎng)格加速技術(shù)和GPU加速來求解線性系統(tǒng)。進(jìn)一步地,所述通過離散散度方法離散化擴(kuò)散方程來建立線性系統(tǒng),包括以下子步驟(1)輸入物體模型的四面體表達(dá);(2)輸入物體的半透明材質(zhì)信息并映射到每個(gè)四面體中;(3)在四面體網(wǎng)格上利用離散散度方法離散化擴(kuò)散方程,得到線性系統(tǒng)。進(jìn)一步地,所述通過并行多重網(wǎng)格加速技術(shù)和GPU加速來求解線性系統(tǒng),包括以下子步驟(1)使用并行方法選取網(wǎng)格的最大獨(dú)立點(diǎn)集作為下一層網(wǎng)格的點(diǎn)(獨(dú)立點(diǎn)集指所有的點(diǎn)均未在網(wǎng)格上直接相連的點(diǎn)集);(2)在新一層的網(wǎng)格上重構(gòu)網(wǎng)格邊;(3)重復(fù)⑴⑵直到達(dá)到用戶指定的網(wǎng)格層數(shù)或網(wǎng)格頂點(diǎn)數(shù);(4)構(gòu)造不同層次圖上的線性系統(tǒng)及插值公式;(5)在得到的各個(gè)層圖上依次求解線性系統(tǒng)得到所求的光通量,直到得到原網(wǎng)格上每個(gè)頂點(diǎn)上的光通量;(6)利用(5)所求的光通量和擴(kuò)散方程邊界條件最終得到繪制的顏色。本發(fā)明的有益效果是,本發(fā)明的方法可以高效地繪制任意形狀任意復(fù)雜材質(zhì)的半透明物體。本發(fā)明通過推導(dǎo)擴(kuò)散方程的離散表達(dá)以及并行多重網(wǎng)格加速算法與GPU加速,解決了非勻質(zhì)半透明物體的交互繪制問題,第一個(gè)允許用戶交互式的對(duì)物體進(jìn)行切割操作,同時(shí)支持交互式材質(zhì)編輯等其他操作。本發(fā)明可以較方便地嵌入到Autodesk3dsMax等商業(yè)產(chǎn)品中。具體實(shí)施例方式本發(fā)明可交互的非勻質(zhì)半透明物體繪制方法需要解決的基本問題為,一、如何合理的離散擴(kuò)散方程;二、如何求解擴(kuò)散方程使速度達(dá)到交互級(jí)別。本發(fā)明基于現(xiàn)有的擴(kuò)散方程求解方法,該方法通過離散散度方法離散化擴(kuò)散方程來建立線性系統(tǒng);通過并行多重網(wǎng)格加速技術(shù)和GPU加速來求解線性系統(tǒng)。具體闡述如下1、通過離散散度方法離散化擴(kuò)散方程來建立線性系統(tǒng),包括如下子步驟1.1得到輸入物體模型的四面體表達(dá)物體的四面體網(wǎng)格化已經(jīng)有較多成熟的方法;用戶可以利用三角形面網(wǎng)格配合一些自動(dòng)四面體網(wǎng)格化的工具得到物體的四面體表達(dá)。如論文H.SiandK.Gaertner,"Meshingpiecewiselinearcomplexesbyconstraineddelaunaytetrahedralizations,"inProceedingsofthe14thInternationalMeshingRoundtable,sep2005,pp.147-163中所述的方法。1.2輸入物體的半透明材質(zhì)信息并映射到每個(gè)四面體中物體的半透明材質(zhì)信息包括吸光因子μ,均散光因子σJ。材質(zhì)信息均以三維紋理(三維數(shù)組)的形式輸入,本子步驟在每個(gè)四面體中心通過線性插值的方法得到對(duì)應(yīng)該四面體的材質(zhì)系數(shù)。1.3在四面體網(wǎng)格上離散擴(kuò)散方程,得到線性系統(tǒng)已知擴(kuò)散方程V(at(x)V<p[X))-/j(x)<p(x)=0,XeQ,和邊界條件cp(x)+2A^(x)(V<p(x)■n(x))=4/(1-Fdr)q(x\xgSQ,其中,V.是散度算子,V是梯度算子,K(X)=レ(x)+os'(x)r1,u是吸光因子(輸入),Os'是均散光因子(輸入),q(x)是表面入射點(diǎn)X的擴(kuò)散入射光線(輸入),F(xiàn)t和Fd,是擴(kuò)散Fresnel傳播系數(shù)和反射系數(shù),其計(jì)算方法可見于論文JENSEN,H.W.,MARSCHNER,S.R.,LEVOY,M.,ANDHANRAHAN,P.2001.Apracticalmodelforsubsurfacelighttransport.InACMSIGGRAPH,511-518,是表面點(diǎn)x的法向量,A=(1+Fdr)/(I-Fdr)。設(shè)非勻質(zhì)半透明物體由四面體網(wǎng)格表示,該網(wǎng)格可以由其頂點(diǎn)集合Ix1,X2,...}表達(dá)。假定物體的光學(xué)屬性(吸收系數(shù)P和散射系數(shù)Os')是分段常數(shù)函數(shù),即在每個(gè)四面體內(nèi)為常數(shù)(第2步已經(jīng)得到了這個(gè)值)。在四面體網(wǎng)格上利用離散梯度算子和散度算子并經(jīng)過適當(dāng)變換后,我們可以得到如下線性系統(tǒng)Mcp=b,(1)b是向量,按如下方法計(jì)算'O,若1是內(nèi)點(diǎn)A=若i是邊界點(diǎn),、3ズ(レ、)Si是直接與i鄰接的三角形面的面積。M是稀疏矩陣,按如下方法計(jì)算'"4Z^o0y-+^)'若i是內(nèi)點(diǎn)““j_4Z,一.A+ゆ⑷+■,若丨是邊界點(diǎn)Mij=4(0^.,其中_9]=-X啡湖;I似ICOtも,tG(i,j,k,l)表示包含邊Ixi,Xj}的所有四面體,xk,ち是另外兩個(gè)頂點(diǎn),四面體t中包含邊{xk,X1I地兩個(gè)面的ニ面角,|klI是{xk,X1I的長度。2、通過并行多重網(wǎng)格加速技術(shù)和GPU加速來求解線性系統(tǒng)由于非勻質(zhì)材質(zhì)和幾何形狀的復(fù)雜性,物體的四面體網(wǎng)格需要十分緊密(幾十萬到上百萬個(gè)四面體)才能精確的表示物體的性狀。直接求解擴(kuò)散方程離散好的線性系統(tǒng)即使是高度并行速度仍然較慢。本發(fā)明使用引入一種基于GPU的并行多重網(wǎng)格算法來加速線性系統(tǒng)的求解。該算法的基本思路是先構(gòu)建好物體四面體網(wǎng)格的粗網(wǎng)格表示,在較粗的網(wǎng)格上求解對(duì)應(yīng)的線性系統(tǒng),得到的解插值到細(xì)網(wǎng)格上作為該網(wǎng)格上線性系統(tǒng)的初值,然后迭代求解從而達(dá)到加速效果。假設(shè)={P0,E0I表示原始網(wǎng)格(由頂點(diǎn)集和邊集構(gòu)成)。我們分兩步來從&構(gòu)造G1+1。第一步計(jì)算P1的獨(dú)立點(diǎn)集(任意兩個(gè)頂點(diǎn)沒有直接相連),第二步進(jìn)而添加部分點(diǎn)并構(gòu)造該層的邊。不同層次的圖構(gòu)造好之后,我們?cè)贅?gòu)造不同層次上的線性系統(tǒng)。最后,我們的求解過程非常直觀先在較粗的層次上求解該層的線性系統(tǒng)(可使用雙共軛梯度法求解),將求得的解插值到較細(xì)的層次上,再以該解為初值迭代求解該層的線性系統(tǒng),如此依次進(jìn)行直到得到第0層,也就是原始網(wǎng)格上的解(第0層用預(yù)處理共軛梯度法求解)。所有過程均可在GPU上高效并行實(shí)現(xiàn)。2.1使用并行方法選取網(wǎng)格的最大獨(dú)立點(diǎn)集作為下一層網(wǎng)格的頂點(diǎn)初始化P1+1為空并令為P1,然后迭代的從Q1+1中移除點(diǎn)并添加到Pw中。首先為(^1中的任意頂點(diǎn)生成一個(gè)隨機(jī)數(shù),然后以i的編號(hào)為低位、其對(duì)應(yīng)的隨機(jī)數(shù)為高位對(duì)每個(gè)頂點(diǎn)壓縮得到一個(gè)32位編碼hp在每步迭代中,對(duì)中的任意頂點(diǎn)1,令隊(duì)(1)表示頂點(diǎn)i在第1層中直接相鄰的頂點(diǎn)集合(一環(huán)領(lǐng)域),Γ(i)=N1(I)ΠQ1+1表示頂點(diǎn)i第1層的一環(huán)鄰域集合中也在第1+1層的點(diǎn)集。如果i的編碼碼Iii小于等于所有的Γ(i)中的頂點(diǎn)的編碼,則將i添加至Pw并將i和Γ⑴從Q1+1移除。持續(xù)這個(gè)過程直到為空。容易看到,這樣生成的P1+1滿足兩個(gè)條件第一、對(duì)于任意頂點(diǎn)ie(P1-Pw),i至少有一個(gè)一環(huán)鄰域點(diǎn)在Pw中。第二、Pw中的每一對(duì)頂點(diǎn)都不在G1中直接相連。第一個(gè)條件保證了下一節(jié)將要用的插值格式的精度,第二個(gè)條件保證了上述算法可以容易地并行計(jì)算。2.2在新一層的網(wǎng)格上重構(gòu)網(wǎng)格邊第1+1層的兩個(gè)頂點(diǎn)i,j若在第1層G1是二環(huán)相鄰的,則它們之間需要添加邊(i,j)??砂匆韵逻^程實(shí)現(xiàn)對(duì)于P1-Pw的任意頂點(diǎn)i,并行地判斷,如果任意兩點(diǎn)均在第1+1層且在i的一環(huán)鄰域中,則添加連接它們的邊到4+1。以上所得到的繼承圖可能存在這樣一個(gè)問題兩個(gè)三環(huán)相鄰的點(diǎn)可能被同時(shí)保留到Gw中,但是它們的連接關(guān)系卻丟失了。這個(gè)問題可以這樣解決對(duì)于第1層的每一條邊由P1-Pw中的頂點(diǎn)構(gòu)成的邊(i,j),如果N1(I)ηN1(J)ηρ1+1為空,就標(biāo)記點(diǎn)i,j;它們需要在第1+1層相連。所有被標(biāo)記的頂點(diǎn)組成一個(gè)新的候選集仏+1,對(duì)于這個(gè)候選集應(yīng)用獨(dú)立點(diǎn)集算法并將選出的點(diǎn)添加到Pw中。重復(fù)上述過程,直至新的候選集為空。需要注意的是,經(jīng)過圖的加強(qiáng)Pw將不一定是P1的獨(dú)立點(diǎn)集。除了要連接G1中二環(huán)相連的點(diǎn)外,還要包含原來就一環(huán)相連的點(diǎn)。2.3重復(fù)上面兩個(gè)子步驟2.1,2.2直到達(dá)到用戶指定的網(wǎng)格層數(shù)或網(wǎng)格頂點(diǎn)數(shù)。重復(fù)2.1,2.2來構(gòu)造不同層次的網(wǎng)格頂點(diǎn)與邊,結(jié)束條件可以是用戶指定的網(wǎng)格層數(shù),也可以是用戶指定的最稀疏網(wǎng)格上的頂點(diǎn)個(gè)數(shù)。2.4構(gòu)造不同層次圖上的線性系統(tǒng)及插值公式。假設(shè)頂點(diǎn)i在第1層滿足如下線性方程權(quán)利要求1.一種可交互的非勻質(zhì)半透明物體繪制方法,其特征在于,該方法通過離散散度方法離散化擴(kuò)散方程來建立線性系統(tǒng),并通過并行多重網(wǎng)格加速技術(shù)和GPU加速來求解線性系統(tǒng)。2.根據(jù)權(quán)利要求1所述可交互的非勻質(zhì)半透明物體繪制方法,其特征在于,所述通過新的擴(kuò)散方程離散方法來建立線性系統(tǒng),包括以下子步驟(1)輸入物體模型的四面體表達(dá);(2)輸入物體的半透明材質(zhì)信息并映射到每個(gè)四面體中;(3)在四面體網(wǎng)格上利用離散散度方法離散化擴(kuò)散方程,得到線性系統(tǒng)。3.根據(jù)權(quán)利要求1所述可交互的非勻質(zhì)半透明物體繪制方法,其特征在于,所述通過并行多重網(wǎng)格加速技術(shù)和GPU加速來求解線性系統(tǒng),包括以下子步驟(1)使用并行方法選取網(wǎng)格的最大獨(dú)立點(diǎn)集作為下一層網(wǎng)格的點(diǎn)(獨(dú)立點(diǎn)集指所有的點(diǎn)均未在網(wǎng)格上直接相連的點(diǎn)集);(2)在新一層的網(wǎng)格上重構(gòu)網(wǎng)格邊;(3)重復(fù)(1)(2)直到達(dá)到用戶指定的網(wǎng)格層數(shù)或網(wǎng)格頂點(diǎn)數(shù);(4)構(gòu)造不同層次圖上的線性系統(tǒng)及插值公式;(5)在得到的各個(gè)層圖上依次求解線性系統(tǒng)得到所求的光通量,直到得到原網(wǎng)格上每個(gè)頂點(diǎn)上的光通量;(6)利用(5)所求的光通量和擴(kuò)散方程邊界條件最終得到繪制的顏色。全文摘要本發(fā)明公開了一種可交互的非勻質(zhì)半透明物體繪制方法,該方法支持物體模型的切割,材質(zhì)編輯等操作,所有操作均可交互式地進(jìn)行。本發(fā)明主要有兩個(gè)技術(shù)突破與創(chuàng)新第一、通過提出一種新的擴(kuò)散方程求解方法,克服了之前方法的缺點(diǎn);第二、通過一種并行多重網(wǎng)格加速技術(shù),使得繪制過程可以達(dá)到交互乃至實(shí)時(shí)級(jí)別。整個(gè)求解過程高度并行化并且十分容易在GPU上實(shí)現(xiàn),其繪制結(jié)果與耗時(shí)較多的有限元方法繪制結(jié)果幾乎完全一致。文檔編號(hào)G06T19/00GK102402798SQ20111027125公開日2012年4月4日申請(qǐng)日期2011年9月14日優(yōu)先權(quán)日2011年9月14日發(fā)明者任重,周昆,孫鑫,李冬平,郭百寧申請(qǐng)人:浙江大學(xué)