多層材質(zhì)物體的實時渲染方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機圖形渲染技術(shù)領(lǐng)域,尤其涉及一種多層材質(zhì)物體的實時渲染方 法和裝置。
【背景技術(shù)】
[0002] 計算機圖形在工業(yè)中的一個重要的應(yīng)用是"虛擬原型",即工業(yè)產(chǎn)品(如:汽車)的 設(shè)計過程完全數(shù)字化,設(shè)計的決策主要是基于計算機生成的"虛擬原型",顯然,只有渲染圖 像和真實的工業(yè)產(chǎn)品足夠接近才能滿足設(shè)計決策的需要。
[0003] 在計算機圖形學(xué)中,通常使用二向性反射分布函數(shù)(BidirectionalReflectance DistributionFunction,BRDF)來描述物體表面的反射特性,高質(zhì)量的BRDF對植染畫面的 提升起著非常重要的作用。BRDF可以由兩部分疊加組成:表面BRDF(surfaceBRDF)和次表 面BRDF(subsurfaceBRDF)。表面BRDF是光線照射到物體表面后,經(jīng)物體表面反射形成的 反射光分布。次表面BRDF是光線由物體表面進入物體內(nèi)部,經(jīng)散射后再從物體表面出來的 反射光分布。目前,許多工業(yè)產(chǎn)品會使用多層涂料以達到更好的感官效果,如汽車、家具的 噴漆等,渲染模擬這些產(chǎn)品的高真實感效果就需要對每層涂料進行建模并合并成其對應(yīng)的 最終的BRDF。其中,計算高質(zhì)量次表面BRDF就是不可或缺的重要一環(huán)。常用的計算高質(zhì)量 次表面BRDF的算法有光線跟蹤算法,DiscreteOrdinateMethods算法等,但是這些算法需 要模擬光線在物體內(nèi)部的散射以及吸收情況,不僅算法復(fù)雜度大,且非常耗時。而對于一些 簡化或近似的計算次表面BRDF的算法,如DiffusionApproximation算法,Kubelka-Munk 算法等,其精確度不高,所渲染的圖像與真實的工業(yè)產(chǎn)品相似度不夠,且無法滿足BRDF由 于光線入射角的改變而隨之發(fā)生變化的特性。
[0004] 因此,如何快速高效地計算多層材質(zhì)物體的次表面BRDF,進而計算出其對應(yīng)的 BRDF,而又能保證計算出的BRDF可以盡可能地接近物體表面的反射特性是計算機圖形渲 染技術(shù)領(lǐng)域一個亟需解決的問題。
【發(fā)明內(nèi)容】
[0005] 為此,需要提供一種多層材質(zhì)物體的實時渲染的技術(shù)方案,用以解決采用現(xiàn)有算 法在計算多層材質(zhì)物體的次表面BRDF時,算法復(fù)雜度大、花費時間久的問題。
[0006] 為實現(xiàn)上述目的,發(fā)明人提供了一種多層材質(zhì)物體的實時渲染方法,包括步驟:
[0007] 根據(jù)所述多層材質(zhì)物體的第一光學(xué)性質(zhì)信息,計算第一BRDF,所述第一BRDF為所 述多層材質(zhì)物體的基底材質(zhì)層的次表面BRDF;
[0008] 根據(jù)所述多層材質(zhì)物體的第一光學(xué)性質(zhì)信息,計算第二BRDF,所述第二BRDF為在 所述多層材質(zhì)物體在基底材質(zhì)層上添加材質(zhì)層后的次表面BRDF;添加的材質(zhì)層的層數(shù)為 一層或多層;
[0009] 根據(jù)最后添加的材質(zhì)層的第二光學(xué)性質(zhì)信息計算第三BRDF;
[0010] 基于所述第二BRDF和第三BRDF進行所述多層材質(zhì)物體的實時渲染。
[0011] 進一步地,所述多層材質(zhì)物體的第一光學(xué)性質(zhì)信息具體包括基底材質(zhì)層的第一光 學(xué)性質(zhì)信息和添加的材質(zhì)層的第一光學(xué)性質(zhì)信息;
[0012] 所述第一光學(xué)性質(zhì)信息包括散射相函數(shù)和單次散射反照率,所述第二光學(xué)性質(zhì)信 息包括菲涅爾反射值和光滑度。
[0013] 進一步地,計算第一BRDF的方法具體包括:根據(jù)所述基底材質(zhì)層的散射相函數(shù)和 單次散射反照率,采用Ambartsumain積分方程迭代計算出該層的次表面BRDF。
[0014] 進一步地,所述添加的材質(zhì)層的厚度滿足一預(yù)設(shè)閾值條件。
[0015] 進一步地,計算第二BRDF的方法具體包括:在上一層的次表面BRDF基礎(chǔ)上使用 InvariantImbedding方法計算出添加材質(zhì)層后的次表面BRDF。
[0016] 進一步地,計算第三BRDF的方法具體包括:使用最后添加的材質(zhì)層的第二光學(xué)性 質(zhì)信息計算其Cook-TorranceBRDF。
[0017] 進一步地,步驟"基于所述第二BRDF和第三BRDF進行所述多層材質(zhì)物體的實時渲 染"具體包括:
[0018] 線性疊加第二BRDF與第三BRDF,并根據(jù)疊加結(jié)果生成渲染結(jié)果。
[0019] 發(fā)明人還提供了一種多層材質(zhì)物體的實時渲染裝置,包括計算單元和實時渲染單 元,所述計算單元包括第一計算模塊,第二計算模塊以及第三計算模塊,所述第一計算模塊 用于根據(jù)所述多層材質(zhì)物體的第一光學(xué)性質(zhì)信息,計算第一BRDF,所述第一BRDF為所述多 層材質(zhì)物體的基底材質(zhì)層的次表面BRDF;所述第二計算模塊用于根據(jù)所述多層材質(zhì)物體 的第一光學(xué)性質(zhì)信息,計算第二BRDF,所述第二BRDF為在所述多層材質(zhì)物體在基底材質(zhì)層 上添加材質(zhì)層后的次表面BRDF;添加的材質(zhì)層的層數(shù)為一層或多層;所述第三計算模塊用 于根據(jù)最后添加的材質(zhì)層的第二光學(xué)性質(zhì)信息計算第三BRDF;所述實時渲染單元用于基 于所述第二BRDF和第三BRDF進行所述多層材質(zhì)物體的實時渲染。
[0020] 進一步地,所述多層材質(zhì)物體的第一光學(xué)性質(zhì)信息具體包括基底材質(zhì)層的第一光 學(xué)性質(zhì)信息和添加的材質(zhì)層的第一光學(xué)性質(zhì)信息;
[0021] 所述第一光學(xué)性質(zhì)信息包括散射相函數(shù)和單次散射反照率,所述第二光學(xué)性質(zhì)信 息包括菲涅爾反射值和光滑度。
[0022] 進一步地,第一計算模塊計算第一BRDF的方法具體包括:根據(jù)所述基底材質(zhì)層 的散射相函數(shù)和單次散射反照率,采用Ambartsumain積分方程迭代計算出該層的次表面 BRDF〇
[0023] 進一步地,所述添加的材質(zhì)層的厚度滿足一預(yù)設(shè)閾值條件。
[0024] 進一步地,第二計算模塊計算第二BRDF的方法具體包括:在上一層的次表面BRDF 基礎(chǔ)上使用InvariantImbedding方法計算出添加材質(zhì)層后的次表面BRDF。
[0025] 進一步地,第三計算模塊計算第三BRDF的方法具體包括:使用最后添加的材質(zhì)層 的第二光學(xué)性質(zhì)信息計算其Cook-TorranceBRDF。
[0026] 進一步地,實時渲染單元"基于所述第二BRDF和第三BRDF進行所述多層材質(zhì)物體 的實時渲染"具體包括:
[0027] 線性疊加第二BRDF與第三BRDF,并根據(jù)疊加結(jié)果生成渲染結(jié)果。
[0028] 區(qū)別于現(xiàn)有技術(shù),上述技術(shù)方案首先根據(jù)所述多層材質(zhì)物體的第一光學(xué)性質(zhì)信 息,計算所述多層材質(zhì)物體的基底材質(zhì)層的次表面BRDF;再根據(jù)所述多層材質(zhì)物體的第一 光學(xué)性質(zhì)信息,計算所述多層材質(zhì)物體在基底材質(zhì)層上添加材質(zhì)層后的次表面BRDF,添加 的材質(zhì)層的層數(shù)為一層或多層;而后根據(jù)最后添加的材質(zhì)層的第二光學(xué)性質(zhì)信息計算第三 BRDF;最后基于所述第二BRDF和第三BRDF進行所述多層材質(zhì)物體的實時渲染。由于采用 迭代的方式計算添加各個材質(zhì)層后物體的次表面BRDF,有效的避免了現(xiàn)有算法(如光線跟 蹤算法)在計算次表面BRDF時需要模擬光線在物體內(nèi)部傳播的過程,從而大大降低了計算 多層材質(zhì)物體的次表面BRDF的算法復(fù)雜度,縮短了計算時間,進而提高了對多層材質(zhì)物體 進行實時渲染的效率,因而在計算機圖形渲染技術(shù)領(lǐng)域具有廣闊的市場前景。
【附圖說明】
[0029] 圖1為本發(fā)明一實施方式所述多層材質(zhì)物體的實時渲染方法的流程圖;
[0030] 圖2為本發(fā)明另一實施方式所述多層材質(zhì)物體的實時渲染方法的流程圖;
[0031] 圖3為本發(fā)明一實施方式所述多層材質(zhì)物體的實時渲染裝置的結(jié)構(gòu)示意圖。
[0032] 附圖標記說明:
[0033] 1、計算單元;11、第一計算模塊;12、第二計算模塊;13、第三計算模塊;
[0034] 2、實時渲染單元。
【具體實施方式】
[0035] 為詳細說明技術(shù)方案的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,以下結(jié)合具體實 施例并配合附圖詳予說明。
[0036] 請參閱圖1,為本發(fā)明一實施方式所述多層材質(zhì)物體的實時渲染方法的流程圖; 所述方法可以應(yīng)用于對多層材質(zhì)物體進行實時渲染,具體包括如下步驟:
[0037] 首先進入步驟S1根據(jù)所述多層材質(zhì)物體的第一光學(xué)性質(zhì)信息,計算第一BRDF。所 述多層材質(zhì)物體即為待渲染的物體,可以為汽車玻璃、家具等,多層材質(zhì)就是說,這些物體 通常是由一基底材質(zhì)層和噴涂在其上的多層添加材質(zhì)層構(gòu)成,多層涂料是以逐層疊加的形 式被噴涂至基層材料之上。所述第一光學(xué)性質(zhì)信息為表征物體光學(xué)性質(zhì)的信息,包括光線 在物體內(nèi)部的反射、散射、衰減等分布情況。
[0038] 而后可以進入步驟S2根據(jù)所述多層材質(zhì)物體的第一光學(xué)性質(zhì)信息,計算第二 BRDF,所述第二BRDF為在所述多層材質(zhì)物體在基底材質(zhì)層上添加材質(zhì)層后的次表面BRDF, 添加的材質(zhì)層的層數(shù)為一層或多層。