Games101-课程15笔记
目錄
總結上節課的公式
Irradiance(輻照度)
定義
Radiance(輻射度)
定義
公式解析
irradiance / intensity 和 radiance的區別
Incident Radiance(入射輻射度)
定義
Exiting Radiance(出射輻射度)
定義
輻射度vs輻照度
雙向反射率分布函數(BRDF)
概述
如何知道收集到的Radiance, 反射到哪個方向?
BRDF的定義
反射方程
困難:遞歸方程
通用渲染方程
① 重寫反射方程
② 得到更通用渲染方程
分析渲染方程如何得出
① 假設只有一個點光源
② 假設有好多點光源
③ 假設有一個面光源和多個點光源
④ 假設除了以上的入射光, 還有其它的物體反射來的入射光
將渲染方程作為積分方程
?線性算子方程
?光線追蹤和擴展
?該公式的相關參數解析
光照的實際應用
總結: 亮度會收斂到某種程度, 因為能量守恒
概率論
?性質: 概率必須大于0, 所有概率相加為1
?隨機變量的期望值
期望值
均值?
連續函數案例:概率分布函數
隨機變量的函數
第十五節課 :光線追蹤(Ray Tracing 3)
總結上節課的公式:
Irradiance(輻照度): 落在表面上的光
-對應面積上所有的能量
定義: 單位時間內投射到單位面積上的輻射能量
光若不垂直投影曲面, 有夾角(斜著), 接收到的能量會減小.
物體表面上的輻照度與(光方向和表面法線)之間的夾角一致成正比.
就好比下圖的Lambert’s Cosine Law, 所接受的能量與cos(光方向和表面法線)相關.
我們為什么有季節(春夏秋冬)?
就是因為太陽光線不是一直垂直照射地球某個地方.
假設光以均勻的角分布發射功率
比較兩個球體表面的輻照度, 發現輻照度會因為半徑的增加而衰弱;
再比較兩個球體表面的輻射強度
根據公式發現, 它不會因為半徑(距離)的增加而衰弱, 而是不變, 影響它的只有單位能量和單位立體角, 近距離和遠距離立體角都不變.
Radiance(輻射度)
定義 :
① 描述光在環境中傳播的基本屬性
② 與光線相關聯的量
③ 渲染是與計算radiance(輻射度)有關
--(光沿著光線傳播)
對于Radiance(輻射度)的理解: ????從一個面積往立體角方向輻射出能量
公式解析:
① 下圖中的面可能會往各個方向都輻射能量, 這里只研究它其中一個微分(單位)方向.
② 下圖中的面需要確認面積, 這與它受到的能量大小有關, 這里只研究它一個微分(單位)面積
所以公式為: 兩個微分的相乘
這兩個微分解釋分別為: (① 每單位立體角、② 每投影單位面積的表面發射、反射、傳輸或接收的輻射功率)
①②相乘, 得出 ( d輻射功率/d投影面積/d立體角 ), ps:請記住下面有用
定義如下:
① 輻照度(irradiance):每單位投影面積的輻射功率( d輻射功率/d投影面積 )
② 輻射強度(Intensity):每單位立體角的輻射功率( d輻射功率/d立體角 )
根據intensity,irradiance和 radiance(①*②)的定義得出:
① 輻射度(Radiance):每單位立體角的輻照度( 輻照度/d立體角 )
② 輻射度(Radiance):每單位投影面積的輻射強度( 輻射強度/d投影面積 )
所以得出, irradiance/intensity和 radiance的區別是:
前者不考慮方向(投影面積的能量), 后者考慮方向(只考慮一個方向進入投影面積的能量), 方向性的區別.
Incident Radiance(入射輻射度)
定義: 入射輻射度是到達表面的每單位立體角的輻照度。
-即它是沿著給定光線到達表面的光(表面上的點和入射方向)
Exiting Radiance(出射輻射度)
定義: 出射表面的輻射度是離開表面的每單位投影面積的強度
例如,對于區域光,它是沿給定光線發射的光(表面上的點和出射方向)
輻射度vs輻照度
輻射度(Radiance):面積 dA 從“方向”dw 接收的功率
輻照度(Irradiance):面積 dA 接收的總功率
是半球的體積:?(2/3)πr3
雙向反射率分布函數(BRDF)
概述: 來自方向 wi 的入射輻射度變成了點面積 dA 接收到的功率 E , 那么功率 E 將變成到其他方向 wr 的出射輻射度
如何知道收集到的Radiance, 反射到哪個方向?
答: 使用BRDF
BRDF的定義:
① 表示有多少光從每個入射方向反射到每個出射方向 wr
② 類似于接受到的能量所反射的能量分布
③ 比如用于定義材質(漫反射材質, 拋光/毛面金屬材質, 完全鏡面反射+折射材質等等)
④ 公式意思: Radiance(輻射度)/irradiance(輻照度)
反射方程:
相關變量:
wr : 觀測方向????????????????wi : 入射方向????????????????dwi : 每一個入射方向
: ?Irradiance的表達式????????????????: 上面求出的BRDF
: 單元半球,???表示單元半球內全部對出射方向的Lr(x,wr)作貢獻的都相加
Irradiance( 著色面積所受能量 )* BRDF = 觀測方向的出射輻射度.
困難:遞歸方程
反射輻照度取決于入射輻射度
但是入射輻射度不止有來自點光源的, 還有經過別的物體(在場景中的另一點)反射而來的反射輻射度
通用渲染方程
① 重寫反射方程:
如果本身會發光, 通過添加自身輻射度使其通用:
注意:現在,我們假設所有方向都指向外面(比如wi是入射,但是還是寫作方向從球心向外)
等于,?都是表示只考慮半球內的光線, 如果從底下入射, 無意義所以不考慮.
?等于
② 得到更通用渲染方程, 如下:
分析渲染方程如何得出:
① 假設只有一個點光源, 得出的反射方程:
反射光(輸出圖片)= 自身光+入射光(點光源)*BRDF*入射角的余弦
② 假設有好多點光源, 得出的反射方程:
反射光(輸出圖片)= 自身光+對所有光源求和[入射光(點光源)*BRDF*入射角的余弦]
?
③ 假設有一個面光源和多個點光源, 得出的反射方程:
用積分替換總和, 其余和處理多個點光源一樣.
?
④ 假設除了以上的入射光, 還有其它的物體反射來的入射光, 得出的反射公式:
反射光(觀測方向)未知, 其它物體反射來的入射光未知. 其它都已知, 只需要把(其它物體反射來的入射光)當作(點光源)處理.
?
將渲染方程作為積分方程
變量詳解:
u表示觀測方向, 等于wr????????????????v表示入射方向, 等于wi????????????????x表示功率
?等于? , 表示觀測方向(攝像頭)接受到的光.
等于 ?, 表示著色點自身的發光
等于??, 表示入射光
(核心)?== ?,表示把全部的入射光轉換到觀測方向的光
是第二類 [廣泛研究數值] 的 fredholm 積分方程,其典型來自
?
?線性算子方程(算是一種簡化, 中間過程復雜)
表示光傳輸算子方程的核
可以離散為一個簡單的矩陣方程[或聯立線性方程組]
L,E 是向量,L是最后看到的能量, E是自身具有的能量
K 是光傳輸矩陣(反射操作符)
?
光線追蹤和擴展(解出L)
1.一般類數值蒙特卡羅方法
2.場景中所有光路的近似集合
I表示單位矩陣, 通過一系列的數學運算得出L
為什么要用算子?
因為要得到這個形式的公式?
該公式的相關參數解析
K是反射運算符
E : 直接從光源發射 (在著色點發光)
KE : 表面直接光照 (直接射向著色點,反射到達觀測點)
?: 間接光照(一次間接反彈)[鏡子,折射]
... : 表示還有間接更多次的反射
?光柵化一般只有E (自發光) 和 KE (直接光照) , 也有可能有K2E,K3E(少數)
?光照的實際應用
?直接光照
(光照只反射了一次到攝像機, 點光源打到哪里, 哪里就有顏色, 不然就是黑色)
ps: 第一次反射就看到上方的燈, 因為光沒有進去燈里.
?全局光照
(考慮光照反射一次和兩次)
?全局光照
(考慮光照反射一次,兩次和三次)
全局光照(考慮光照反射一次,兩次,三次,四次和五次)
可以發現下圖中上方的燈與上圖中對比, 明顯亮了.
這是因為這個燈是雙層的玻璃, 光線進入需要兩次反射, 出來也需要兩次反射. 所以在上圖的最多反射三次的情況下, 看不見玻璃燈.
?全局光照(考慮光照反射一次,兩次,三次,直到八次)
現象: 發現在全局光照(最多四次~八次甚至到十六次)時, 變亮的效果越來越低, 直到亮度不再變化(肉眼上)
總結: 亮度會收斂到某種程度. 因為能量守恒.
概率論(probability review)
隨機變量: 表示潛在值的分布?
概率密度函數 (PDF): 描述隨機過程選擇值 x 的相對概率
示例:連續PDF函數:域上的所有值均等可能
例如 六個面的骰子, ?X 取值 1,2,3,4,5,6, 搖得任意一個面的概率一致為: 1/6
?性質: 概率必須大于0, 所有概率相加為1.
隨機變量的期望值
定義 :從隨機分布中重復抽取樣本所獲得的平均值
X 的期望值: ?
均值 :
連續函數案例:概率分布函數
一個隨機變量 X,可以取任意一組連續值,其中特定值的相對概率由連續概率密度函數 p(x) 給出, 一段連續的x值形成的面積就是概率.
p(x) 的條件: , 和(概率>0且全部概率相加=1) 一個意思
期待值:?
隨機變量的函數
① 隨機變量X的函數Y,也是隨機變量
② 隨機變量函數的期望值
總結
以上是生活随笔為你收集整理的Games101-课程15笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 铁乐学Python_day05-字典di
- 下一篇: git显示绿标