專利名稱:基于光子映射圖的整體光照計(jì)算機(jī)模擬處理方法
基于光子映射圖的整體光照計(jì)算機(jī)模擬處理方法技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)虛擬圖像處理技術(shù)領(lǐng)域,具體涉及一種基于光子映射圖的整體光照計(jì)算機(jī)模擬處理方法。
背景技術(shù):
隨著計(jì)算機(jī)軟硬件科學(xué)技術(shù)的進(jìn)步,計(jì)算機(jī)圖形學(xué)也得到了迅速發(fā)展,在各個(gè)領(lǐng)域中得到了廣泛的應(yīng)用。在計(jì)算機(jī)輔助設(shè)計(jì)、計(jì)算機(jī)仿真模擬、科學(xué)計(jì)算可視化、虛擬現(xiàn)實(shí)、 計(jì)算機(jī)動(dòng)畫(huà)與娛樂(lè)、廣告制作、電影和電視合成等眾多領(lǐng)域,對(duì)圖像質(zhì)量的要求越來(lái)越高, 不僅僅限于能夠得到圖像,而是要求計(jì)算速度更快,圖像效果更逼真,有時(shí)候還需要超現(xiàn)實(shí)的結(jié)果。特別是在自然模擬這個(gè)方面,在最近一些年來(lái)更是展現(xiàn)了強(qiáng)大的需求。要求能夠模擬特殊的氣候、環(huán)境、和自然場(chǎng)景、材質(zhì),達(dá)到一個(gè)特殊的場(chǎng)景環(huán)境,這就對(duì)真實(shí)感圖像繪制提出了更多的難題。
從物理學(xué)角度來(lái)看,要生成質(zhì)量較高、具有較強(qiáng)的真實(shí)感的圖像,從理想的狀況考慮,就需要盡可能真實(shí)地模擬光能在場(chǎng)景中的傳播過(guò)程和散射分布,達(dá)到近乎于自然中的能量傳播平衡,即考慮場(chǎng)景所有的光源、所有的物體表面之間光照能量的反射(包括漫反射和鏡面反射)、折射和透射等相互作用關(guān)系,還要考慮本來(lái)不發(fā)光(不具有能量的物體)的物體在經(jīng)過(guò)光照以后進(jìn)行的能量吸收和散射,這就是所謂的整體光照模型(Global Illumination)。以整體光照模型為基礎(chǔ)的計(jì)算機(jī)圖像生成技術(shù)被稱為真實(shí)感圖像生成 (Realistic Image Synthesis)技術(shù)。
光線跟蹤和輻射度是兩種常用的全局光照明模型,其中光線跟蹤具有簡(jiǎn)單、強(qiáng)大、 易實(shí)現(xiàn)的特點(diǎn),但真實(shí)世界的很多東西無(wú)法很好地處理。比如輝映(Bleeding),焦散 (Caustics)等效果。直到1996年,光子映射被提出,光線跟蹤都無(wú)法有效解決這兩個(gè)問(wèn)題, 而光子映射對(duì)這兩個(gè)問(wèn)題提供了良好的解決方案。輝映和焦散線現(xiàn)象都是漫反射面的間接光照造成的。用光子映射方法,這類光照可以用預(yù)計(jì)算的光子圖(Photon map)來(lái)估計(jì)。將光線跟蹤擴(kuò)展為光子映射,可以產(chǎn)生一種能解決任何直接或間接光照的方法。而且光子映射也能處理中間介質(zhì)(participating media)情況,并且很易于做并行計(jì)算。
由于光子映射方法綜合了現(xiàn)有的各種光照技術(shù)的優(yōu)點(diǎn),包括光線跟蹤和輻射度這兩種主要的全局光照技術(shù),因此在近些年中光子映射己經(jīng)成為計(jì)算全局光照最流行的算法之一。本發(fā)明因此而來(lái)。發(fā)明內(nèi)容
本發(fā)明目的在于提供一種基于光子映射圖的整體光照計(jì)算機(jī)模擬處理方法,解決了現(xiàn)有技術(shù)中光照環(huán)境下真實(shí)感圖像難以繪制等問(wèn)題。
為了解決現(xiàn)有技術(shù)中的這些問(wèn)題,本發(fā)明提供的技術(shù)方案是
一種基于光子映射圖的整體光照計(jì)算機(jī)模擬處理方法,其特征在于所述方法包括以下步驟
(I)從光源向計(jì)算機(jī)虛擬的場(chǎng)景中發(fā)射光子進(jìn)行光子跟蹤;當(dāng)光子撞擊到場(chǎng)景內(nèi)容非鏡面對(duì)象表面時(shí),將光子存儲(chǔ)在構(gòu)建的光子映射圖中;
(2)根據(jù)光子映射圖利用統(tǒng)計(jì)學(xué)技術(shù)提取關(guān)于計(jì)算機(jī)虛擬的場(chǎng)景中的任一點(diǎn)的入射光通量和反射的發(fā)光輻射度信息,計(jì)算像素顏色值,進(jìn)行場(chǎng)景內(nèi)的圖像繪制和渲染。
優(yōu)選的,所述方法中存儲(chǔ)光子采用數(shù)據(jù)結(jié)構(gòu)KD樹(shù)實(shí)現(xiàn),所述光子的屬性包括光子的位置、方向和能量。
優(yōu)選的,所述方法光子映射圖中存儲(chǔ)光子的數(shù)量、光子映射圖的存儲(chǔ)位置、添加光子函數(shù)、光子吸收函數(shù)和光子映射圖重置函數(shù)。
優(yōu)選的,所述方法中當(dāng)光子撞擊到場(chǎng)景內(nèi)容非鏡面對(duì)象表面時(shí),光子發(fā)生漫反射、 傳播或者被吸收的概率通過(guò)俄羅斯輪盤賭方法確定。
優(yōu)選的,所述方法俄羅斯輪盤賭方法按照如下步驟進(jìn)行
假設(shè)場(chǎng)景中具有漫反射系數(shù)d和鏡面反射系數(shù)S的反射表面,d+s< 1,使用均勻分布的隨機(jī)變量ξ e
,采用下面的方法確定光子的碰撞發(fā)生概率,SP :
ξ e [O, d]時(shí),光子碰撞發(fā)生漫反射;
ξ e [d, s+d]時(shí),光子碰撞發(fā)生鏡面反射;
ξ e [s+d,I]時(shí),光子碰撞發(fā)生吸收。
優(yōu)選的,所述方法中發(fā)光輻射度是通過(guò)查找臨近光子,估計(jì)放光輻射,獲得發(fā)光輻射度。
基于光子映射圖的整體光照?qǐng)D像處理方法是一個(gè)雙過(guò)程/ 二步驟方法,簡(jiǎn)單的說(shuō),就是將繪制過(guò)程劃分為兩個(gè)階段,在每個(gè)階段做不同的工作。其中第一個(gè)步驟,建立光子映射圖,從光源向場(chǎng)景中發(fā)射光子,并且,當(dāng)光子撞擊到非鏡面對(duì)象表面的時(shí)候,把它們存儲(chǔ)在光子映射圖中。第二個(gè)步驟,繪制/渲染過(guò)程,在光子圖上利用統(tǒng)計(jì)學(xué)技術(shù),提取關(guān)于場(chǎng)景的任一點(diǎn)的入射光通量和反射的發(fā)光福射度信息。
光子跟蹤過(guò)程的目的是計(jì)算漫反射表面的間接光照,從光源發(fā)射光子,跟蹤這些光子穿過(guò)場(chǎng)景,在漫反射表面存儲(chǔ)它們的信息。預(yù)處理光子映射圖需要一個(gè)好的數(shù)據(jù)結(jié)構(gòu)來(lái)表示光子映射圖。數(shù)據(jù)結(jié)構(gòu)要簡(jiǎn)潔,能夠快速的進(jìn)行臨近光子的查找,本文中采用KD樹(shù)來(lái)存儲(chǔ)光子。
發(fā)光輻射度估計(jì)對(duì)于圖像的生成是關(guān)鍵的一個(gè)階段,計(jì)算像素的顏色值,直接反應(yīng)圖像的效果。作為光子映射圖的優(yōu)點(diǎn)之一就是在任意給定的方向上對(duì)于任意非鏡面反射的表面點(diǎn)都有能力計(jì)算它的發(fā)光輻射度。給出光子映射圖,用它計(jì)算發(fā)光輻射度,實(shí)現(xiàn)繪制階段的計(jì)算處理渲染。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下的有益效果
本發(fā)明技術(shù)方案采用光子映射圖進(jìn)行光照處理,將光照處理過(guò)程和場(chǎng)景分開(kāi)處理,技術(shù)方案的實(shí)現(xiàn)基于光子映射的原理,取得逼真的渲染效果。光子圖與場(chǎng)景表述是完全分離開(kāi),不用重復(fù)計(jì)算。不需網(wǎng)格化,在復(fù)雜場(chǎng)景中速度較快。對(duì)于大部分場(chǎng)景,都可以做到高效。
下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述
圖1為本發(fā)明技術(shù)方案基于光子映射圖的整體光照計(jì)算機(jī)模擬處理方法流程圖。
具體實(shí)施方式
以下結(jié)合具體實(shí)施例對(duì)上述方案做進(jìn)一步說(shuō)明。應(yīng)理解,這些實(shí)施例是用于說(shuō)明本發(fā)明而不限于限制本發(fā)明的范圍。實(shí)施例中采用的實(shí)施條件可以根據(jù)具體廠家的條件做進(jìn)一步調(diào)整,未注明的實(shí)施條件通常為常規(guī)實(shí)驗(yàn)中的條件。
實(shí)施例
如圖1所示,本實(shí)施例進(jìn)行基于光子映射圖的整體光照計(jì)算機(jī)模擬處理流程圖。 具體按照如下步驟進(jìn)行
( I)建立光子的結(jié)構(gòu)
計(jì)算機(jī)構(gòu)建光子的結(jié)構(gòu)通過(guò)模擬光子的參數(shù)進(jìn)行設(shè)置。光子的結(jié)構(gòu)主要有三個(gè)變量,分別是光子的位置,方向,能量,其結(jié)構(gòu)如下所示
lypedef slruct{ double pos|3]; double rgb[3j; double incident[3]; short flag;} photon;由于本發(fā)明使用了 KD樹(shù)來(lái)儲(chǔ)存光子,因此還要設(shè)置一個(gè)變量來(lái)指明光子在KD樹(shù)中的位置。
( 2 )建立光子圖的類
為了散播能量以及調(diào)整光子運(yùn)動(dòng),需要建立一個(gè)包括光子結(jié)構(gòu)以及所有功能函數(shù)的類。該類主要有以下成員變量或函數(shù)一個(gè)指向全局光子圖的指針,一個(gè)記錄當(dāng)前光子圖內(nèi)光子數(shù)的變量,用于重置變量和無(wú)用指針的構(gòu)造函數(shù),用于卸載內(nèi)存的析構(gòu)函數(shù),向光子圖中添加光子的函數(shù)。
(3)向場(chǎng)景內(nèi)發(fā)射光子
向場(chǎng)景內(nèi)發(fā)射光子首先需要做的是通過(guò)各個(gè)光源在隨機(jī)方向上向場(chǎng)景中發(fā)射η 個(gè)光子。分別在x,y,z分量上設(shè)置一個(gè)隨機(jī)數(shù),這樣就可以獲得一個(gè)光線傳播的隨機(jī)方向。 如果場(chǎng)景中發(fā)生碰撞,則處理這個(gè)光子,繼續(xù)重復(fù)這個(gè)過(guò)程,直到光源發(fā)出了 η個(gè)光子。當(dāng)所希望的光子都已經(jīng)發(fā)射完畢,再計(jì)算每個(gè)光子的所占光源的能量。
每個(gè)光子的所占光源的能量的算法過(guò)程如下
①設(shè)置場(chǎng)景中的光源;
②設(shè)置發(fā)射光子的數(shù)目;
③選取一個(gè)隨機(jī)方向發(fā)射光子;
④尋找最近的光子與物體的碰撞;
⑤返回碰撞點(diǎn)、物體的信息;
⑥在發(fā)射所有光子后,計(jì)算光子能量(1/η)。
(4)光子存儲(chǔ)
本實(shí)施例設(shè)定只有在光子撞擊漫反射表面時(shí),它才會(huì)被儲(chǔ)存。因?yàn)閷?duì)于鏡面反射來(lái)說(shuō),需要大量的光子來(lái)映射出反方向的影像。這一點(diǎn),光線追蹤可以做得更好。光子在物體之間來(lái)回彈射,這就意味著遇到漫反射表面的光子會(huì)被沿著它的運(yùn)動(dòng)路徑儲(chǔ)存好幾次, 這就構(gòu)成了光子圖。
本實(shí)施例對(duì)于光子的操作如下
①當(dāng)一個(gè)光子撞擊一個(gè)漫反射表面時(shí),把光子入射方向和能量?jī)?chǔ)存在全局光子圖中。光子圖只包含漫反射作用。
②當(dāng)光子撞擊到一個(gè)鏡面時(shí),根據(jù)物體的不透明性,決定光子被反射或者折射。
③當(dāng)表面既有漫反射又有鏡面反射時(shí),則采用一種方法隨機(jī)決定發(fā)生鏡面發(fā)射還是漫反射。
④如果光子被表面吸收的話,則將之存于光子圖中,并結(jié)束光子的生命。
因此,當(dāng)一個(gè)光子撞擊到對(duì)象時(shí),它能夠任意的反射、傳播,或者被吸收。不管是光子是被反射、傳播或者是被吸收,根據(jù)表面材質(zhì)的特性參數(shù),各種作用發(fā)生的可能性具有確定的概率。本實(shí)施例使用俄羅斯輪盤賭的方法來(lái)確定發(fā)生的概率。
俄羅斯輪盤賭的具體使用方法為,對(duì)于具有漫反射系數(shù)d和鏡面反射系數(shù)S的反射表面,d+s彡1,使用均勻分布的隨機(jī)變量ξ e
,采用下面的策略
ξ e [O, d]時(shí),屬于漫反射;
ξ e [d,s+d]時(shí),屬于鏡面反射;
I e [s+d, I]時(shí),屬于吸收。
在實(shí)施例中,俄羅斯輪盤賭的使用意味著不改變反射光子的能量——正確性由若干個(gè)光子在交互作用結(jié)束之前的時(shí)間里的能量算術(shù)平均值確保??紤]一個(gè)表面材質(zhì)的例子,反射50條入射光線,用俄羅斯輪盤賭的方法只有一半的光子被反射,可是,卻仍然具有全部的能量。對(duì)于這個(gè)例子,如果發(fā)射10000個(gè)光子到表面上,能夠反射10000個(gè)光子中的一半能量或者是反射具有全部能量的5000個(gè)光子。可以看出,俄羅斯輪盤賭可以顯著減少光子跟蹤計(jì)算需求。
(5)光子渲染
渲染過(guò)程通過(guò)光子圖計(jì)算面上各點(diǎn)的輻射度。這里,照相機(jī)和觀察者也要考慮進(jìn)去。類似逆向光線追蹤從觀察平面發(fā)射光線,并發(fā)現(xiàn)碰撞點(diǎn),關(guān)鍵點(diǎn)在于光線撞到了哪里。 這里使用余弦著色法來(lái)計(jì)算一個(gè)點(diǎn)投射到視平面的輻射度。余弦著色法即是通過(guò)計(jì)算入射光線與物體表面法線夾角的余弦值來(lái)確定光線的強(qiáng)弱。當(dāng)余弦值為I時(shí),光線最亮,低于O 時(shí)表示該點(diǎn)處于物體的背面,無(wú)法受到當(dāng)前光線的照射。
為了渲染投射到視平面上的多邊形,必須發(fā)現(xiàn)多邊形上的輻射度估計(jì),但是在這之前,必須要尋找最接近碰撞點(diǎn)的光子,被稱為光子基值。尋找臨近光子采用包圍球法,估算輻射度的過(guò)程如下
①在碰撞點(diǎn)放置一個(gè)球體.
②擴(kuò)展這個(gè)球體,直到它包含了足夠你最初要求的光子。
③擴(kuò)展這個(gè)球體,直到它返回所發(fā)現(xiàn)的最遠(yuǎn)的點(diǎn)。
④將球體變?yōu)閳A形,圓心半徑位置不變,圓位于物體表面的切平面上。
⑤輻射度等于圓內(nèi)的入射方向與法線夾角余弦值大于O的光子能量和除以圓的面積。
光子映射與光線追蹤以及輻射度法的對(duì)比
權(quán)利要求
1.一種基于光子映射圖的整體光照計(jì)算機(jī)模擬處理方法,其特征在于所述方法包括以下步驟 (1)從光源向計(jì)算機(jī)虛擬的場(chǎng)景中發(fā)射光子進(jìn)行光子跟蹤;當(dāng)光子撞擊到場(chǎng)景內(nèi)容非鏡面對(duì)象表面時(shí),將光子存儲(chǔ)在構(gòu)建的光子映射圖中; (2)根據(jù)光子映射圖利用統(tǒng)計(jì)學(xué)技術(shù)提取關(guān)于計(jì)算機(jī)虛擬的場(chǎng)景中的任一點(diǎn)的入射光通量和反射的發(fā)光輻射度信息,計(jì)算像素顏色值,進(jìn)行場(chǎng)景內(nèi)的圖像繪制和渲染。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于所述方法中存儲(chǔ)光子采用數(shù)據(jù)結(jié)構(gòu)KD樹(shù)實(shí)現(xiàn),所述光子的屬性包括光子的位置、方向和能量。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于所述方法光子映射圖中存儲(chǔ)光子的數(shù)量、光子映射圖的存儲(chǔ)位置、添加光子函數(shù)、光子吸收函數(shù)和光子映射圖重置函數(shù)。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于所述方法中當(dāng)光子撞擊到場(chǎng)景內(nèi)容非鏡面對(duì)象表面時(shí),光子發(fā)生漫反射、傳播或者被吸收的概率通過(guò)俄羅斯輪盤賭方法確定。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于所述方法俄羅斯輪盤賭方法按照如下步驟進(jìn)行 假設(shè)場(chǎng)景中具有漫反射系數(shù)d和鏡面反射系數(shù)S的反射表面,d+s ( 1,使用均勻分布的隨機(jī)變量I ^ [O,I],釆用下面的方法確定光子的碰撞發(fā)生概率,即 ξ e [O,d]時(shí),光子碰撞發(fā)生漫反射; ξ e [d,s+d]時(shí),光子碰撞發(fā)生鏡面反射; ξ e [s+d, I]時(shí),光子碰撞發(fā)生吸收。
6.根據(jù)權(quán)利要求I所述的方法,其特征在于所述方法中發(fā)光輻射度是通過(guò)查找臨近光子,估計(jì)放光輻射,獲得發(fā)光輻射度。
全文摘要
本發(fā)明公開(kāi)了一種基于光子映射圖的整體光照計(jì)算機(jī)模擬處理方法,其特征在于所述方法包括以下步驟(1)從光源向計(jì)算機(jī)虛擬的場(chǎng)景中發(fā)射光子進(jìn)行光子跟蹤;當(dāng)光子撞擊到場(chǎng)景內(nèi)容非鏡面對(duì)象表面時(shí),將光子存儲(chǔ)在構(gòu)建的光子映射圖中;(2)根據(jù)光子映射圖利用統(tǒng)計(jì)學(xué)技術(shù)提取關(guān)于計(jì)算機(jī)虛擬的場(chǎng)景中的任一點(diǎn)的入射光通量和反射的發(fā)光輻射度信息,計(jì)算像素顏色值,進(jìn)行場(chǎng)景內(nèi)的圖像繪制和渲染。該方法基于光子映射的原理,圖像處理后效果逼真、計(jì)算處理速度快,無(wú)需網(wǎng)格化,特別適合于復(fù)雜場(chǎng)景中光照處理。
文檔編號(hào)G06F9/44GK102981840SQ20121044174
公開(kāi)日2013年3月20日 申請(qǐng)日期2012年11月8日 優(yōu)先權(quán)日2012年11月8日
發(fā)明者陳國(guó)慶, 白偉偉 申請(qǐng)人:蘇州兩江科技有限公司