學(xué)習(xí)筆記:pbrt中的直接光照積分器

Pbrt的核心是積分形式的光照模型,該模型最終決定了待渲染圖像各像素的顏色值涯曲。在pbrt中求解光照模型的部分被稱為積分器。關(guān)于積分器的分類可以有多種劃分方式。按光線在僅在物體表面發(fā)生變化還是在三維區(qū)域內(nèi)發(fā)生變化括蝠,可以劃分為表面積分器和體積分器。按光照模型中的輸入僅考慮直接來自光源和自發(fā)光物體的光線饭聚,還是同時(shí)還考慮物體反射產(chǎn)生的間接光照的光線忌警,可以劃分為直接光照積分器和一般光照積分器(或許書中后面部分會(huì)有更準(zhǔn)確的名稱)。為了由淺入深地介紹積分器的基礎(chǔ)知識(shí)和具體實(shí)現(xiàn)秒梳,首先從最簡(jiǎn)單的僅考慮表面散射的直接光照積分器開始介紹法绵。

按照pbrt的慣例箕速,對(duì)于多種具體的對(duì)象,首先要建立它們統(tǒng)一的接口朋譬。這里的接口就是積分器接口弧满。該接口僅定義兩個(gè)非必須實(shí)現(xiàn)的接口函數(shù)。第一個(gè)接口函數(shù)是積分工作前的預(yù)處理函數(shù)此熬,該函數(shù)暫時(shí)未被用到庭呜。第二個(gè)接口函數(shù)是調(diào)用采樣對(duì)象,生成一維和二維隨機(jī)均勻采樣結(jié)果犀忱。在積分器接口的基礎(chǔ)上募谎,定義了表面積分器接口。表面積分器接口中定義了一個(gè)必須被實(shí)現(xiàn)的接口函數(shù)阴汇。該接口函數(shù)即為處理光照模型的函數(shù)数冬,它既要能處理反射模型,又要能處理透射模型搀庶。在表面積分器接口的基礎(chǔ)上拐纱,實(shí)現(xiàn)了直接光照積分器。

總體上哥倔,直接光照積分器實(shí)現(xiàn)了兩種采樣策略秸架。第一種采樣策略是針對(duì)某個(gè)著色點(diǎn),考慮整個(gè)場(chǎng)景中全部的光源咆蒿,對(duì)每個(gè)光源都進(jìn)行多次采樣东抹,多個(gè)光源產(chǎn)生的積分結(jié)果求和后作為該點(diǎn)的輸出。第二種策略是針對(duì)某個(gè)著色點(diǎn)沃测,僅考慮一個(gè)光源的積分結(jié)果作為該點(diǎn)的輸出缭黔,當(dāng)整個(gè)場(chǎng)景中有多個(gè)光源時(shí),隨機(jī)選擇其中一個(gè)蒂破。第一種策略適合于對(duì)單個(gè)著色點(diǎn)僅需較少采樣的情況馏谨,第二種策略適合于對(duì)于單個(gè)著色點(diǎn)需要較多采樣的情況。

直接光照積分器雖然是最簡(jiǎn)單的積分器附迷,但它同樣也是對(duì)BSDF函數(shù)和輻亮度函數(shù)的乘積進(jìn)行積分惧互。后續(xù)傾向于使用多重重要性采樣的效率提升策略,所以同時(shí)需要對(duì)BSDF函數(shù)和輻亮度函數(shù)進(jìn)行采樣挟秤,即需要實(shí)現(xiàn)積分器接口中的第二個(gè)接口函數(shù)壹哺,即預(yù)先生成兩者采樣所需的一維和二維均勻分布隨機(jī)變量。當(dāng)直接光照積分器采用第一種策略時(shí)艘刚,讀取場(chǎng)景中每個(gè)光源所需的采樣數(shù)量管宵,然后由采樣對(duì)象生成并統(tǒng)一存儲(chǔ)該數(shù)量的一維和二維均勻分布隨機(jī)變量,并返回在全部隨機(jī)變量中的尋址地址。由于積分對(duì)象是BSDF函數(shù)和輻亮度函數(shù)的乘積箩朴,因而BSDF函數(shù)的采樣數(shù)量與對(duì)應(yīng)光源的采樣數(shù)量相同岗喉。當(dāng)直接光照積分器采用第二種策略時(shí),僅需對(duì)一個(gè)光源生成并存儲(chǔ)一維和二維均勻分布隨機(jī)變量炸庞。不過書中此處生成的隨機(jī)變量數(shù)量為1钱床,個(gè)人感覺并不合理。另外還需要額外生成一個(gè)一維隨機(jī)變量埠居,用于隨機(jī)選擇場(chǎng)景中的哪個(gè)光源查牌。此外,關(guān)于這兩種策略中的采樣數(shù)量滥壕,可能還會(huì)根據(jù)采樣方法做出調(diào)整纸颜。

具體實(shí)現(xiàn)直接光照積分的第一種策略時(shí),首先需要讀取采樣對(duì)象中預(yù)先存儲(chǔ)的隨機(jī)變量绎橘,形成BSDF函數(shù)和光源的采樣所需隨機(jī)變量胁孙。若無預(yù)先存儲(chǔ)值則直接利用隨機(jī)數(shù)對(duì)象生成,且

采樣次數(shù)為1次称鳞。采樣所需的隨機(jī)變量準(zhǔn)備好后涮较,就可以計(jì)算該次采樣的出射輻亮度值了。然后對(duì)每個(gè)光源多次采樣的輻亮度的均值求和作為積分器最終的輸出冈止。

具體實(shí)現(xiàn)直接光照積分的第二種策略時(shí)狂票,首先通過額外生成的一個(gè)一維隨機(jī)變量,確定選擇哪個(gè)光源靶瘸。若該隨機(jī)變量不存在苫亦,則利用隨機(jī)數(shù)對(duì)象生成隨機(jī)變量進(jìn)行光源選擇毛肋。然后采用類似于第一種策略的方式怨咪,求解該光源多次采樣的輻亮度均值。該均值乘以場(chǎng)景中的光源總數(shù)作為最終輸出润匙。乘以場(chǎng)景中的光源總數(shù)的原因是在考慮選擇單一光源積分的隨機(jī)特性后诗眨,使該策略的期望值等于選擇所有光源進(jìn)行積分的結(jié)果。

在處理由BSDF函數(shù)和輻亮度函數(shù)乘積構(gòu)成的待積分函數(shù)時(shí)孕讳,很難找到滿足該乘積的概率分布匠楚。加之BSDF函數(shù)的入射光線范圍和輻亮度函數(shù)的光線范圍可能一個(gè)很大,另一個(gè)很小厂财,這種情況下僅使用二者中某一個(gè)形狀相同的概率分布芋簿,將會(huì)在總的結(jié)果中產(chǎn)生較大偏差。所以使用了多重采樣策略璃饱。首先按輻亮度函數(shù)進(jìn)行重要性采樣与斤。根據(jù)采樣對(duì)象生成一個(gè)從光源到著色點(diǎn)的光線,光線包含方向及輻亮度信息。然后考慮空間透射率后對(duì)輻亮度進(jìn)行衰減撩穿。將生成的光線方向代入BSDF函數(shù)磷支,再與衰減后的輻亮度函數(shù)以及輻亮度采樣的概率密度的倒數(shù)相乘。所得結(jié)果再乘以多重重要性采樣的權(quán)重系數(shù)食寡,就得到了多重重要性采樣中按輻亮度函數(shù)采樣的部分雾狈。在這一過程中,當(dāng)光源為delta型光源時(shí)抵皱,不需要使用重要性采樣善榛。其次,按照BSDF函數(shù)進(jìn)行重要性采樣呻畸,此時(shí)已默認(rèn)光源為非delta型光源锭弊。當(dāng)BSDF函數(shù)表示的為鏡面反射時(shí),無需使用重要性采樣擂错。當(dāng)BSDF函數(shù)采樣得到的入射光線的方向味滞,對(duì)應(yīng)光源的采樣概率密度為0時(shí),則按BSDF函數(shù)進(jìn)行重要性采樣的得到的出射輻亮度效用為0.當(dāng)概率密度不為0時(shí)钮呀,還需要區(qū)分是無窮大光源還是其他光源剑鞍。區(qū)分方法是判斷光線與光源是否相交。當(dāng)為無窮大光源時(shí)爽醋,根據(jù)光線對(duì)象返回輻亮度值蚁署。當(dāng)為其他光源時(shí),根據(jù)光線方向返回輻亮度值蚂四。然后再考慮透射衰減和權(quán)重光戈,得到多重重要性采樣中按BSDF函數(shù)采樣的部分。上述兩部分相加得到多重重要性采樣的最終輸出遂赠。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末久妆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子跷睦,更是在濱河造成了極大的恐慌筷弦,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抑诸,死亡現(xiàn)場(chǎng)離奇詭異烂琴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蜕乡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門奸绷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人层玲,你說我怎么就攤上這事号醉∪奘荩” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵扣癣,是天一觀的道長(zhǎng)惰帽。 經(jīng)常有香客問我,道長(zhǎng)父虑,這世上最難降的妖魔是什么该酗? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮士嚎,結(jié)果婚禮上呜魄,老公的妹妹穿的比我還像新娘。我一直安慰自己莱衩,他們只是感情好爵嗅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著笨蚁,像睡著了一般睹晒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上括细,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天伪很,我揣著相機(jī)與錄音,去河邊找鬼奋单。 笑死锉试,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的览濒。 我是一名探鬼主播呆盖,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼贷笛!你這毒婦竟也來了应又?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤昨忆,失蹤者是張志新(化名)和其女友劉穎丁频,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邑贴,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年叔磷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拢驾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡改基,死狀恐怖繁疤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤稠腊,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布躁染,位于F島的核電站,受9級(jí)特大地震影響架忌,放射性物質(zhì)發(fā)生泄漏吞彤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一叹放、第九天 我趴在偏房一處隱蔽的房頂上張望饰恕。 院中可真熱鬧,春花似錦井仰、人聲如沸埋嵌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雹嗦。三九已至,卻和暖如春合是,著一層夾襖步出監(jiān)牢的瞬間俐银,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工端仰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捶惜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓荔烧,卻偏偏與公主長(zhǎng)得像吱七,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鹤竭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355