學習筆記:pbrt中的輻照度緩存機制II

在利用輻照度緩存機制實現(xiàn)的光線追蹤算法中瑟押,渲染點的輸出計算和輻照度緩存更新是相互關聯(lián),交替進行的星掰。下面首先介紹渲染點的輸出計算部分多望。

計算某渲染點的輸出需要計算四部分光線的作用。在計算這三部分光線作用前氢烘,根據由渲染點發(fā)出的光線對象及相交物體對象怀偷,計算交點處的坐標、法線和BSDF播玖。接下來計算上述四部分內容椎工。第一,根據光線方向計算交點處自發(fā)光的輻照度蜀踏。第二维蒙,按照直接光照模型的算法,計算交點處直接由場景中全部光照產生的作用效果果覆。第三颅痊,計算交點處由鏡面反射或透射形式的間接光照所產生的作用效果。第四局待,計算漫散射形式的間接光照所產生的作用效果斑响。輻照度緩存機制即在該部分發(fā)揮作用。該部分計算實際上也是分兩部分進行钳榨,第一部分是漫反射和光澤反射形式的間接光照舰罚,第二部分是類似漫反射和光澤反射的透射形式的間接光照。在完成這兩部分前薛耻,首先確保法線方向與出射光線方向在平面的一側营罢,其次估算了相鄰像素間隔在世界坐標系中的距離。該結果將用于判斷是直接計算還是利用緩存進行計算饼齿。實際計算該距離時愤钾,是通過對交點處微分幾何體兩個方向的分量構成的平行四邊形的面積開平方得到。如果兩個方向的分量相互垂直且長度相等候醒,則得到的是正方形的邊長能颁。

下面在介紹計算漫散射形式的間接光照所產生的作用效果前,先介紹如何利用八叉樹實現(xiàn)緩存中各點輻照度數據的快速查找和插值倒淫。在八叉樹的數據結構中存儲著已緩存輻照度數據的坐標點的包圍盒信息伙菊。在利用八叉樹進行快速查找前,需要提供待查找點的坐標和一個重載了括號操作符的對象。查找時镜硕,八叉樹會判斷查找點是否存在于某個包圍盒中运翼,凡是存在就會提供包圍盒對應點采樣信息包括的坐標,法線兴枯,輻照度和平均入射方向信息血淌,并調用這個對象,執(zhí)行相應的操作财剖。這里所執(zhí)行的操作主要就是判斷該點是否用于后續(xù)計算悠夯。判斷方式是定義兩個偏差函數,一個是兩點距離與預設最大距離之比躺坟,另一個是1減去兩點法線余弦夾角的結果與預設最大結果之比的平方根沦补。兩個偏差函數取最大后作為最終的偏差。當該偏差小于1時咪橙,使用該點的輻照度數據夕膀,且輻照度和平均入射角度均進行加權,權重為1減去偏差美侦,并且還單獨對權重進行累加产舞。完成八叉樹中所有點的遍歷后,返回累加的平均入射方向和加權平均處理后的輻照度菠剩。另外庞瘸,返回這兩個結果前,還需要累加的權重大于一個預設的權重最小值赠叼,否則查找失敗擦囊,不返回這兩個數據。

完成前述的查找和差值工作后嘴办,就可以計算漫散射形式的間接光照所產生的作用效果了瞬场。計算方法并不復雜,將平均入射方向作為入射方向后涧郊,該點的BSDF值乘以前面得到的輻照度值就得到了該點的輸出贯被。此時相當于把其他點的輻照度信息轉換為一個有向光源。對于全漫反射表面妆艘,該方法與按入射光線概率分布計算得到的結果不存在偏差彤灶。對于有光澤的反射表面,按照書中的說法批旺,該方法比按均勻入射得到的結果要好幌陕。

下面介紹輻照度緩存更新部分。這里需要說明的一點是汽煮,只有無法利用緩存計算搏熄,而直接計算的輻照度信息才會被存儲到輻照度緩存中棚唆。計算輻照度需要對該點的入射輻亮度和入射方向的余弦的乘積關于立體角的積分。由于很難找到與該乘積形狀相同的入射方向分布函數心例,所以使用蒙特卡羅積分時宵凌,入射光線采用余弦半球加權分布,且采樣所需的二維隨機變量采用低偏差序列生成止后。此外瞎惫,產生的入射光線是在反射點的BSDF對應的局部坐標系中滿足余弦半球加權分布,因而采樣產生的光線還需要變換到世界坐標系中译株。光線生成后瓜喇,采用路徑積分器進行計算。每次計算結束后古戴,將光線的輻亮度和方向進行累加欠橘。對產生的所有光線矩肩,還需要計算其長度的最小值现恼。該最小值的一半按屏幕坐標系轉換到世界坐標系的一個距離下限變量和距離上限變量取限幅后,作為該點的包圍盒邊長的一半黍檩。將該包圍盒以及該點的輻亮度和平均入射光線方向信息加入到輻照度緩存中叉袍,就完成了更新過程。由八叉樹的算法可知刽酱,該包圍盒的范圍也就決定了該緩存值能夠使用的點的范圍喳逛。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市棵里,隨后出現(xiàn)的幾起案子润文,更是在濱河造成了極大的恐慌,老刑警劉巖殿怜,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件典蝌,死亡現(xiàn)場離奇詭異,居然都是意外死亡头谜,警方通過查閱死者的電腦和手機骏掀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柱告,“玉大人截驮,你說我怎么就攤上這事〖识龋” “怎么了葵袭?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長乖菱。 經常有香客問我眶熬,道長妹笆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任娜氏,我火速辦了婚禮拳缠,結果婚禮上,老公的妹妹穿的比我還像新娘贸弥。我一直安慰自己窟坐,他們只是感情好,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布绵疲。 她就那樣靜靜地躺著哲鸳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盔憨。 梳的紋絲不亂的頭發(fā)上徙菠,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天,我揣著相機與錄音郁岩,去河邊找鬼婿奔。 笑死,一個胖子當著我的面吹牛问慎,可吹牛的內容都是我干的萍摊。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼如叼,長吁一口氣:“原來是場噩夢啊……” “哼冰木!你這毒婦竟也來了?” 一聲冷哼從身側響起笼恰,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤踊沸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后社证,有當地人在樹林里發(fā)現(xiàn)了一具尸體逼龟,經...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年猴仑,在試婚紗的時候發(fā)現(xiàn)自己被綠了审轮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡辽俗,死狀恐怖疾渣,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情崖飘,我是刑警寧澤榴捡,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站朱浴,受9級特大地震影響吊圾,放射性物質發(fā)生泄漏达椰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一项乒、第九天 我趴在偏房一處隱蔽的房頂上張望啰劲。 院中可真熱鬧,春花似錦檀何、人聲如沸蝇裤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栓辜。三九已至,卻和暖如春垛孔,著一層夾襖步出監(jiān)牢的瞬間藕甩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工周荐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狭莱,地道東北人。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓羡藐,卻偏偏與公主長得像贩毕,于是被迫代替她去往敵國和親悯许。 傳聞我的和親對象是個殘疾皇子仆嗦,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361