從顏色屬性到光譜
在過往所學(xué)的渲染中,物體總有一個(gè)顏色屬性,表示物體發(fā)出或者反射的是什么光惯豆,比如應(yīng)用最廣泛的馮氏著色模型逗噩。但是,現(xiàn)實(shí)世界中吓肋,物體表面的物理性質(zhì)不是這樣的凳怨,這就要涉及到一個(gè)概念:光譜。
光譜是物體表面發(fā)出或者反射的所有波長的電磁波的圖譜是鬼。真實(shí)的物理情況是肤舞,當(dāng)一束白光找到物體表面時(shí),物體會(huì)反射對(duì)各個(gè)波長的光都反射均蜜,只是不同的波長反射力度不一樣李剖。比如下面這個(gè)是檸檬的表面光譜:
光譜是連續(xù)的,意味著它有無限的維度囤耳。計(jì)算機(jī)無法表示無限的光譜篙顺,所以要有一個(gè)功能把無限的維度降低到有限維度偶芍。PBRT使用Spectrum類來實(shí)現(xiàn)這功能。它的主要功能是慰安,對(duì)輸入的光譜數(shù)據(jù)進(jìn)行采樣腋寨,用波長和系數(shù)來表示特定波長的反射量,模擬連續(xù)的光譜化焕。在PBRT中萄窜,Spectrum類可能是SampledSpectrum,或者RGBSpectrum撒桨。這兩個(gè)類有一個(gè)共同的基類CoefficientSpectrum查刻,用來提供算術(shù)運(yùn)算。 SampledSpectrum類和RGBSpectrum類的最重要的函數(shù)是FromSampled凤类,用來從外部接收數(shù)據(jù)穗泵,計(jì)算系數(shù)。
輻射學(xué)
接著進(jìn)入輻射學(xué)的內(nèi)容谜疤。這是比光譜更底層的基礎(chǔ)物理知識(shí)佃延。光也是一種電磁波,而所有的物體都會(huì)一直進(jìn)行電磁輻射夷磕,就是向外不斷發(fā)出不同波長的電磁波履肃。比如電影中經(jīng)常看到的用紅外望遠(yuǎn)鏡可以在晚上還看到人坐桩。電磁輻射尺棋,伴隨著發(fā)出能量,發(fā)出的總能量和發(fā)射面積以及持續(xù)時(shí)間有密切的關(guān)系绵跷。輻射學(xué)就是研究這些關(guān)系膘螟,然后運(yùn)用一些物理定律,計(jì)算表面上某個(gè)點(diǎn)能接收到的能量碾局,從而顯示顏色荆残。最重要的性質(zhì)有兩個(gè),一個(gè)是線性性質(zhì)净当,就是兩種光疊加上去總亮度就是相加脊阴。另一個(gè)是能量守恒。接收到的光照能量值要大于等于反射出的能量值蚯瞧,因?yàn)榭赡軙?huì)有一部分被吸收嘿期。
接著,我們進(jìn)入輻射學(xué)基本物理量的學(xué)習(xí)埋合。
輻射能量Q
輻射能量Q备徐,表示一定時(shí)間內(nèi),表面的一定區(qū)域所接收(或者發(fā)出甚颂,或者透過)的所有能量總和蜜猾。
我們的物理量如果不加下標(biāo)秀菱,表示的就是接收、發(fā)出蹭睡、或者透過衍菱。要區(qū)分的話,會(huì)專門用下標(biāo)表示肩豁,比如表示接收的能量值脊串。下面再介紹物理量的時(shí)候就省略括號(hào)中的內(nèi)容了。
輻射通量
輻射通量(radiant flux清钥,)琼锋,表示單位時(shí)間內(nèi),表面的特定區(qū)域接收到的能量和祟昭。計(jì)算的公式是:
輻射照度E
輻射照度(irradiance, E)缕坎,表示某個(gè)點(diǎn)(微面元)接受來自各個(gè)方向的輻射通量大小。計(jì)算公式是:篡悟。注意谜叹,這里的單位面積其實(shí)是微面元的概念,就是某一個(gè)點(diǎn)附近很小很小的一塊區(qū)域搬葬,其實(shí)就跟點(diǎn)差不多荷腊,可以理解成比點(diǎn)稍微大一點(diǎn)的一個(gè)圓或者正方形。但是在表示這個(gè)微面元的時(shí)候踩萎,就是用點(diǎn)的位置來表示。知道E之后可以反推的大小很钓,利用下面這個(gè)積分公式:
輻射強(qiáng)度I
輻射強(qiáng)度(radiant intensity, I)香府,表示某塊區(qū)域,接受來自某個(gè)方向的輻射通量大小码倦。I和E的區(qū)別是企孩,E是對(duì)面積進(jìn)行微分,I是對(duì)方向進(jìn)行微分袁稽。其計(jì)算公式是:勿璃,其中,就是立體角推汽。
立體角
立體角的概念是這樣的补疑,在空間中有一個(gè)閉合曲線構(gòu)成的曲面,然后空間中還有一點(diǎn)P歹撒。畫閉合曲線和點(diǎn)P的直線莲组,在以點(diǎn)P為中心的單位球上,曲面映射到單位球上的面積就是曲面關(guān)于點(diǎn)P的立體角(或者叫球面度)暖夭,立體角的計(jì)算公式是:锹杈,其中S是投影面積撵孤,R是球半徑。當(dāng)我們使用單位球的時(shí)候竭望,立體角就是面積邪码。為了方便表述,給立體角一個(gè)單位sr咬清,單位名稱是球面度闭专。
輻射亮度L
輻射亮度(radiance, L),表示來自某個(gè)方向(立體角)的輻射通量枫振,照射到表面上的一個(gè)點(diǎn)(微面元)投影到該方向垂直平面上的輻射通量大小喻圃。如下圖所示:
計(jì)算公式是:
注意,書上關(guān)于L的公式是錯(cuò)的粪滤!
按照輻射亮度的定義斧拍,這必然是一個(gè)二重微分,對(duì)方向和面積的雙重微分杖小。這個(gè)的值是從哪來的肆汹?表示表面法線和方向的夾角,換個(gè)角度思考就是微面元dA投射到與垂直方向的表面的面積予权。L是一個(gè)非常重要的概念昂勉,有了L之后,我們可以很方便地計(jì)算出I和E扫腺。公式如下:
完美岗照。
關(guān)于L的計(jì)算實(shí)例
假設(shè)我們要求整個(gè)半球的輻射照度E,如上圖所示:使用球坐標(biāo)系來計(jì)算笆环,值表示與z軸正方向的夾角攒至,表示與x軸正方向的夾角。我們用的公式是躁劣,關(guān)鍵在于如何表示立體角迫吐。
還記得嗎?立體角是單位球的面積账忘,我們直接對(duì)半球的面積積分就好了志膀。方法是這樣:
首先,在球坐標(biāo)系中表示一個(gè)點(diǎn)是鳖擒,r是球半徑溉浙,是與z軸正方向的夾角,是與x軸正方向的夾角蒋荚。的范圍是放航,的范圍是。所以圆裕,當(dāng)要求半球的輻射照度E時(shí)广鳍,對(duì)的積分區(qū)域是荆几,而的積分區(qū)域是。
對(duì)立體角微元來說赊时,因?yàn)榱Ⅲw角本身就是面積吨铸,所以我們只要表示一個(gè)微面元就可以了,我們采用長方形的表示方式祖秒,這樣可以鋪滿整個(gè)半球诞吱,并且其面積計(jì)算公式簡(jiǎn)單。在微面元的情況下竭缝,有一點(diǎn)彎曲的長方形曲面和沒有彎曲的長方形的面積是一樣的房维,所以,微面元的面積可以表示成:抬纸,正如上面的圖所顯示的那樣咙俩。
和是角度的微元增量,為什么還有呢湿故?因?yàn)楫?dāng)增加了一定值后阿趁,它所對(duì)應(yīng)的弧長增加值是角度乘以半徑。而點(diǎn)所對(duì)應(yīng)的半徑是圖中的坛猪。于是脖阵,半球的輻射照度E是:
上述的公式就是半球輻射照度,弄懂了之后感覺非常簡(jiǎn)單墅茉。
反射模型
BRDF
BRDF全稱bidirectional reflectance distribution function命黔,中文翻譯成雙向反射分布函數(shù)。描述的是表面上某一點(diǎn)(微面元)就斤,接收到入射光線與該點(diǎn)反射光線之間的相互關(guān)系悍募。
為了區(qū)分反射和入射,與入射相關(guān)的物理量會(huì)加小標(biāo)i战转,與反射相關(guān)的物理量會(huì)加小標(biāo)o搜立。用表示入射亮度以躯,用表示反射亮度槐秧。還是從這個(gè)公式開始推理:
兩邊取微分可以得到,表示某個(gè)方向的照度值忧设。而根據(jù)能量守恒定律我們知道刁标,反射的亮度不可能超過入射亮度。根據(jù)線性性質(zhì)還可以知道它和入射亮度之間還有比例關(guān)系址晕,入射亮度越大膀懈,反射亮度越大,即:谨垃。于是启搂,我們可以列出這樣一個(gè)式子:
即:反射亮度與入射亮度有一定比例關(guān)系硼控。
將這個(gè)式子代入到之前的式子中得到
于是的值就是:
這是PBR計(jì)算的基本公式之一。
BSSRDF
BSSRDF胳赌,全稱是bidirectional scattering surface reflectance distribution function牢撼,中文翻譯成雙向散射表面反射分布函數(shù)。它是比BRDF模型更貼近現(xiàn)實(shí)的計(jì)算模型現(xiàn)實(shí)中疑苫,我們的表面總是會(huì)有一定的深度熏版,當(dāng)光從一面進(jìn)入的時(shí)候,在里面不斷反射捍掺,然后從另一個(gè)地方出來撼短,才是更真實(shí)的物理模型。
由于散射的存在挺勿,某一個(gè)點(diǎn)的反射亮度是和整個(gè)表面所接收到的通量掛鉤的曲横。整個(gè)表面接收的的通量就是,于是满钟,表面上一點(diǎn)的反射亮度與通量的關(guān)系是:
展開可得的完整計(jì)算公式:
要說復(fù)雜也復(fù)雜胜榔,說簡(jiǎn)單也簡(jiǎn)單,理解了就好湃番。
總結(jié)
歡迎評(píng)論夭织!
參考資料:
Physically Based Rendering
pbrt源碼,版本3
Introduction to Radiometry and Photometry