專(zhuān)利名稱(chēng):一種基于光子映射的全局光照方法
技術(shù)領(lǐng)域:
本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,具體涉及一種基于光子映射的全局光照方法。
背景技術(shù):
全局光照方法正是圖形學(xué)中的三大渲染技術(shù)之一。在提出基于光子映射的全局光照方法之前,主流的全局光照渲染方法是光線跟蹤和輻射度方法,早期的光線跟蹤方法只 能處理鏡面反射、折射以及直接光照,隨著蒙特卡羅的方法對(duì)光線跟蹤方法進(jìn)行的擴(kuò)展,使 得光線跟蹤方法可以處理焦散、間接光照等效果,這種方法對(duì)每條光線使用隨機(jī)的光線分 布,要得到滿意的圖像需要對(duì)光線進(jìn)行大量的采樣。光線跟蹤雖然簡(jiǎn)單、強(qiáng)大、易實(shí)現(xiàn),但真 實(shí)世界的很多東西無(wú)法很好地處理。比如Color Bleeding 一一輝映,物體間因?yàn)楣饩€的漫反射而互相影響顏色, Casuties-焦散,即光通過(guò)透明物體的折射被匯聚在一起的現(xiàn)象。直到1993年,光子映射 被提出之前,光線跟蹤都無(wú)法有效解決這兩個(gè)問(wèn)題,而光子映射對(duì)這兩個(gè)問(wèn)題提供了良好 的解決方案。用光子映射方法,這類(lèi)漫反射面的間接光照造成的光照可以用預(yù)計(jì)算的光子 圖(Photonmap)來(lái)估計(jì)。將光線跟蹤擴(kuò)展為光子映射,可以產(chǎn)生一種能解決任何直接或間 接光照的方法。而且光子映射也能處理中間介質(zhì)(participatingmedia)情況?;诠庾佑成涞娜止庹辗椒ㄒ话惆▋刹降谝徊?,從光源向場(chǎng)景發(fā)射光子,并且在它們磁到鏡面物體時(shí)發(fā)生反射,在碰到非 鏡面物體時(shí)按一定幾率反射,將不發(fā)生反射的光子保存在一個(gè)光子圖(photonmap)中,建 立光子圖。光子圖表示了光源發(fā)出的能量在場(chǎng)景中的分布。第二步,渲染,使用統(tǒng)計(jì)方法從光子圖中提取出場(chǎng)景中所有點(diǎn)的入射通量以及反 射輻射能。光子圖與場(chǎng)景表述是完全分離開(kāi)的,這一特性使得光子映射方法能處理很復(fù)雜 的場(chǎng)景,包括千萬(wàn)個(gè)三角面片,實(shí)例化的幾何體,復(fù)雜的過(guò)程式物體。與有限元輻射度方法相比,光子映射的優(yōu)勢(shì)是不用進(jìn)行網(wǎng)格處理。簡(jiǎn)單場(chǎng)景下輻 射度的速度可以很快,但一旦場(chǎng)景復(fù)雜,輻射度速度就遠(yuǎn)遠(yuǎn)落后于光子映射了,而且光子跟 蹤還能處理非漫射表面及焦散,輻射度就辦不到。和光線跟蹤、雙向光線跟蹤這些能用很少 的內(nèi)存開(kāi)銷(xiāo)模擬所有全局光照效果的MonteCarfo光線跟蹤方法相比,光子映射的最大優(yōu) 點(diǎn)就是高效,不過(guò)代價(jià)是需要額外的內(nèi)存存放光子圖。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種新的基于光子映射的全局光照方法,能使得運(yùn)行速 度、渲染效果,以及使用的存儲(chǔ)空間等方面得到一定的改進(jìn)。本發(fā)明提供的技術(shù)方案如下本發(fā)明提供一種基于光子映射的全局光照方法,包括以下步驟(1)光源向場(chǎng)景隨機(jī)發(fā)射光子;(2)判斷發(fā)射后的光子狀態(tài);
(3)根據(jù)物體表面的信息遞歸跟蹤光子;(4)保存光子信息;(5)進(jìn)行渲染場(chǎng)景,包括將蒙特卡羅反向追蹤方法與原光子映射方法相結(jié)合使用 來(lái)進(jìn)行渲染場(chǎng)景。優(yōu)選的,根據(jù)物體表面的信息遞歸跟蹤光子具體為在第一路運(yùn)程里,跟蹤光子運(yùn)動(dòng)時(shí)根據(jù)物體表面的全部光照特性來(lái)保存光子,并 進(jìn)行遞歸跟蹤。優(yōu)選的,在光子映射方法的第一路運(yùn)程中,采用根據(jù)物體表面所擁有的各種不同 特性,分別反射不同類(lèi)型的光子的方式。優(yōu)選的,將光子打中一個(gè)物體表面時(shí),能量=原光子能量/交點(diǎn)到光源的距離。優(yōu)選的,所述進(jìn)行渲染場(chǎng)景包括步驟1:從視角開(kāi)始向場(chǎng)景中發(fā)射反向追蹤光線;;步驟2 當(dāng)光線打中物體表面時(shí),先根據(jù)物體表面的漫反射特性計(jì)算直接光照,然 后根據(jù)物體表面的鏡面反射特性和折射特性分別計(jì)算反射和折射光照,最后根據(jù)光子圖計(jì) 算間接光照;步驟3 在根據(jù)光子圖計(jì)算間接光照的過(guò)程中,根據(jù)光子的坐標(biāo)信息在光子圖中 搜索離它最近的設(shè)定數(shù)量的光子,并將這部分光子的能量疊加到交點(diǎn)處的光子能量上;步驟4 將直接光照,反射光照,折射光照和間接光照疊加到一起作為交點(diǎn)處的光 照信息進(jìn)行渲染;步驟5 保存得到的光照信息,并計(jì)算下一個(gè)像素點(diǎn)的光照信息,跳轉(zhuǎn)至步驟1。上述技術(shù)方案可以看出,本發(fā)明的益處在于通在最初的光子映射方法的基礎(chǔ)上進(jìn)行探索,通過(guò)將原方法進(jìn)行部分修改并將修 改后的方法與原方法進(jìn)行比較來(lái)試圖到一個(gè)改進(jìn)后的方法,并在運(yùn)行速度,渲染效果,以及 使用的存儲(chǔ)空間等方面得到一定的改進(jìn)。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以 根據(jù)這些附圖獲得其它的附圖。圖1是本發(fā)明新的基于光子映射的全局光照方法的第一流程圖;圖2是本發(fā)明新的基于光子映射的全局光照方法的第二流程圖;圖3是本發(fā)明光子打中物體表面后所需要記錄的信息圖;圖4是本發(fā)明復(fù)合場(chǎng)景渲染圖;圖5是本發(fā)明漫反射場(chǎng)景渲染圖;圖6是本發(fā)明鏡面反射場(chǎng)景渲染圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于 本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
下面結(jié)合附圖對(duì)本發(fā)明方法作詳細(xì)描述。本發(fā)明提供一種新的基于光子映射的全局光照方法,能在運(yùn)行速度,渲染效果,以 及使用的存儲(chǔ)空間等方面得到一定的改進(jìn)。本發(fā)明提供的基于光子映射的全局光照方法,具體來(lái)說(shuō)利用PhotonMapping方法 來(lái)模擬場(chǎng)景中的全局光照效果,而光線跟蹤方法則用于最終對(duì)場(chǎng)景的采樣以及對(duì)鏡面反射 和透射效果的計(jì)算。PhotonMapping是一種2路方法,在第1路中,光子從光源發(fā)出,當(dāng)該光 子與場(chǎng)景中的非鏡面反射對(duì)象相交時(shí)將該光子存儲(chǔ)到光子圖(Photon map)中;第2路是渲 染路,該路通過(guò)光線跟蹤方法對(duì)場(chǎng)景進(jìn)行采樣,利用光子圖中存儲(chǔ)的相關(guān)信息來(lái)計(jì)算出采 樣點(diǎn)處的反射光強(qiáng)值,從而對(duì)整個(gè)場(chǎng)景的全局光照效果進(jìn)行繪制。本發(fā)明的改進(jìn)方法主要包括以下幾個(gè)部分1)采用物體表面的全部信息跟蹤光子在光子映射方法的第一路運(yùn)程中,提出一種新的對(duì)于跟蹤光子的處理方式。即在 進(jìn)行光子追蹤的過(guò)程中,不再采用俄羅斯輪盤(pán)的方式來(lái)決定對(duì)該光子做何處理如,反射,折 射和保存等,而采用根據(jù)物體表面所擁有的各種不同特性,分別反射不同類(lèi)型的光子的方 式。這樣可以,充分的體現(xiàn)出物體表面的各種屬性而不只是依照一定概率反映一種屬性,增 強(qiáng)渲染效果。2)采用一種新的光子能量計(jì)算方法在傳統(tǒng)的光子映射方法中光源發(fā)射出的光子初始能量=光源能量/發(fā)射的光子 個(gè)數(shù)。在本發(fā)明方法中光源發(fā)射出的光子初始能量=光源能量而每次光子打中一個(gè)物體表面時(shí)能量=原光子能量/交點(diǎn)到光源的距離。3)將光子映射方法與蒙特卡羅反向追蹤方法結(jié)合使用將蒙特卡洛反向光線追蹤方法與光子映射方法結(jié)合起來(lái)共同進(jìn)行渲染。傳統(tǒng)的光 子映射方法在渲染復(fù)雜效果上較好,但是在運(yùn)行速度和效率上較低,而蒙特卡洛反向光線 追蹤方法與之正好相反。因此,在本發(fā)明中的光子映射方法第一運(yùn)程里面依舊使用原有的光子圖,而在第 二路運(yùn)程中采用蒙特卡洛反向追蹤方法的顏色渲染方法,將光照效果分為各種不同的部 分,分別計(jì)算,并且在計(jì)算時(shí)使用第一路中生成的光子圖數(shù)據(jù)結(jié)構(gòu)。以下結(jié)合附圖對(duì)本發(fā)明方法進(jìn)行詳細(xì)介紹。如圖1所示是基于光子映射的全局光照改進(jìn)方法的流程圖,主要包括以下步驟(1)光源向場(chǎng)景隨機(jī)發(fā)射光子在本發(fā)明中所指的光子路徑主要是通過(guò)計(jì)算從光源進(jìn)行路徑跟蹤而打到物體表 面時(shí)候的坐標(biāo)信息。通過(guò)在光源處的一個(gè)隨機(jī)函數(shù)隨機(jī)的生成光子發(fā)射的方向。(2)判斷發(fā)射后的光子狀態(tài)
在本發(fā)明中,對(duì)步驟(1)中所確定的隨機(jī)方向而發(fā)射的光線進(jìn)行跟蹤,并判斷是 或否與場(chǎng)景中的物體有交點(diǎn)。如果有,則記錄下交點(diǎn)處物體的信息以及交點(diǎn)的坐標(biāo)和發(fā)向 量等信息。如果沒(méi)有,則丟棄該光子。在附圖中3中可以看到光子打中物體表面后所需要記錄的信息。如圖3所示,信 息包括交點(diǎn)坐標(biāo)、交點(diǎn)法向量、交點(diǎn)處物體的漫反射系數(shù)、交點(diǎn)處物體的鏡面發(fā)射系數(shù)、交 點(diǎn)處物體的折射系數(shù)。(3)根據(jù)物體表面的信息遞歸跟蹤光子在本發(fā)明中,光子打中物體表面后將根據(jù)物體表面的信息進(jìn)行反射或折射跟蹤。 而在針對(duì)光子打中的物體具有復(fù)雜信息的情況,沒(méi)有采用傳統(tǒng)的俄羅斯輪盤(pán)的方法來(lái)根據(jù) 概率決定采用何種跟蹤,而是根據(jù)打中物體表面的全部信息分別進(jìn)行遞歸跟蹤。(4)保存光子信息在本發(fā)明中,當(dāng)光子從光源發(fā)射出而打中物體表面時(shí),需要將一些必要的信息保存進(jìn)光子圖,而其中一個(gè)重要的信息就是光子的能量。初始發(fā)射時(shí)光子的初始能量=光源能量。而每次光子打中一個(gè)物體表面時(shí)能量=原光子能量/交點(diǎn)到光源的距離。這樣將距離因素考慮進(jìn)光子能量的計(jì)算,更真實(shí)的展現(xiàn)了場(chǎng)景中的光照信息。(5)渲染場(chǎng)景在本發(fā)明中的第二路運(yùn)程中主要實(shí)現(xiàn)場(chǎng)景的渲染。在渲染時(shí)主要采用將蒙特卡洛反向追蹤方法與光子映射方法結(jié)合使用來(lái)渲染場(chǎng) 景,同時(shí)也使用了在第一路運(yùn)程所生成的光子信息,整個(gè)渲染過(guò)程分為以下幾個(gè)步驟,如圖 2所示步驟1 從視角開(kāi)始向場(chǎng)景中發(fā)射反向追蹤光線。步驟2 當(dāng)光線打中物體表面時(shí),先根據(jù)物體表面的漫反射特性計(jì)算直接光照,然 后根據(jù)物體表面的鏡面反射特性和折射特性分別計(jì)算反射和折射光照,最后根據(jù)光子圖計(jì) 算間接光照。步驟3 在根據(jù)光子圖計(jì)算間接光照的過(guò)程中,將會(huì)根據(jù)光子的坐標(biāo)信息在光子 圖中搜索離它最近的一定數(shù)量的光子,并將這部分光子的能量疊加到交點(diǎn)處的光子能量 上。步驟4 將直接光照,反射光照,折射光照和間接光照疊加到一起作為交點(diǎn)處的光 照信息進(jìn)行渲染。步驟5 保存得到的光照信息,并計(jì)算下一個(gè)像素點(diǎn)的光照信息,跳轉(zhuǎn)至步驟1.步驟6:結(jié)束。這樣,通過(guò)第一路運(yùn)程中生成的光子圖和第二路運(yùn)程中的渲染過(guò)程就可以對(duì)一個(gè) 虛擬場(chǎng)景進(jìn)行真實(shí)的光照效果渲染。在附圖4、5、6中分別顯示了改進(jìn)后的全局光照方法對(duì) 于不同場(chǎng)景的渲染效果。圖4是本發(fā)明復(fù)合場(chǎng)景渲染圖;圖5是本發(fā)明漫反射場(chǎng)景渲染圖; 圖6是本發(fā)明鏡面反射場(chǎng)景渲染圖。上述技術(shù)方案可以看出,本發(fā)明的益處在于通在最初的光子映射方法的基礎(chǔ)上 進(jìn)行探索,通過(guò)將原方法進(jìn)行部分修改并將修改后的方法與原方法進(jìn)行比較來(lái)試圖到一個(gè)改進(jìn)后的方法,并在運(yùn)行速度,渲染效果,以及使用的存儲(chǔ)空間等方面得到一定的改進(jìn)。本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可 以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存 儲(chǔ)介質(zhì)可以包括只讀存儲(chǔ)器(ROM,Read Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁盤(pán)或光盤(pán)等。以上對(duì)本發(fā)明實(shí)施例所提供的一種基于光子映射的全局光照方法,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只 是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā) 明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理 解為對(duì)本發(fā)明的限制。
權(quán)利要求
一種基于光子映射的全局光照方法,其特征在于,包括以下步驟(1)光源向場(chǎng)景隨機(jī)發(fā)射光子;(2)判斷發(fā)射后的光子狀態(tài);(3)根據(jù)物體表面的信息遞歸跟蹤光子;(4)保存光子信息;(5)進(jìn)行渲染場(chǎng)景,包括將蒙特卡羅反向追蹤方法與原光子映射方法相結(jié)合使用來(lái)進(jìn)行渲染場(chǎng)景。
2.根據(jù)權(quán)利要求1所述的基于光子映射的全局光照方法,其特征在于,根據(jù)物體表面 的信息遞歸跟蹤光子具體為在第一路運(yùn)程里,跟蹤光子運(yùn)動(dòng)時(shí)根據(jù)物體表面的全部光照特性來(lái)保存光子,并進(jìn)行 遞歸跟蹤。
3.根據(jù)權(quán)利要求1或2所述的基于光子映射的全局光照方法,其特征在于在光子映射方法的第一路運(yùn)程中,采用根據(jù)物體表面所擁有的各種不同特性,分別反 射不同類(lèi)型的光子的方式。
4.根據(jù)權(quán)利要求1或2所述的基于光子映射的全局光照方法,其特征在于將光子打中一個(gè)物體表面時(shí),能量=原光子能量/交點(diǎn)到光源的距離。
5.根據(jù)權(quán)利要求1或2所述的基于光子映射的全局光照方法,其特征在于所述進(jìn)行渲染場(chǎng)景包括步驟1:從視角開(kāi)始向場(chǎng)景中發(fā)射反向追蹤光線;;步驟2 當(dāng)光線打中物體表面時(shí),先根據(jù)物體表面的漫反射特性計(jì)算直接光照,然后根 據(jù)物體表面的鏡面反射特性和折射特性分別計(jì)算反射和折射光照,最后根據(jù)光子圖計(jì)算間 接光照;步驟3:在根據(jù)光子圖計(jì)算間接光照的過(guò)程中,根據(jù)光子的坐標(biāo)信息在光子圖中搜索 離它最近的設(shè)定數(shù)量的光子,并將這部分光子的能量疊加到交點(diǎn)處的光子能量上;步驟4 將直接光照,反射光照,折射光照和間接光照疊加到一起作為交點(diǎn)處的光照信 息進(jìn)行渲染;步驟5 保存得到的光照信息,并計(jì)算下一個(gè)像素點(diǎn)的光照信息,跳轉(zhuǎn)至步驟1。
全文摘要
本發(fā)明公開(kāi)了一種新的基于光子映射的全局光照方法,本發(fā)明屬于圖像處理技術(shù)領(lǐng)域。本發(fā)明方法的步驟主要包括(1)光源向場(chǎng)景隨機(jī)發(fā)射光子;(2)判斷發(fā)射后的光子狀態(tài);(3)根據(jù)物體表面的信息遞歸跟蹤光子;(4)保存光子信息;(5)進(jìn)行渲染場(chǎng)景,包括將蒙特卡羅反向追蹤方法與原光子映射方法相結(jié)合使用來(lái)進(jìn)行渲染場(chǎng)景。使用本發(fā)明的技術(shù)方案,可以使得運(yùn)行速度、渲染效果,以及使用的存儲(chǔ)空間等方面得到一定的改進(jìn)。
文檔編號(hào)G06T15/50GK101826214SQ20101013810
公開(kāi)日2010年9月8日 申請(qǐng)日期2010年3月29日 優(yōu)先權(quán)日2010年3月29日
發(fā)明者楊彪, 羅笑南 申請(qǐng)人:中山大學(xué)