日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

渲染方程和蒙特卡罗方法(一)

發布時間:2024/4/24 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 渲染方程和蒙特卡罗方法(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

渲染方程和蒙特卡洛方法(一)

既然標題里有一,足以看出這次真的是開了一個大坑啊,這個地方也是我一直逃避的地方,可是總歸還是要把這里弄明白的,我自己的水平有限寫這個也只是為了鞏固自己的圖形學知識,這篇文章也是我對于GAMES101的學習筆記,若是有人能看到這篇文章,只建議自己做一個參考,希望能對你有所幫助。順帶一提:本文的公式,定理,圖片均來自于GAMES101,非常好的計算機圖形學入門課程,有興趣可以在B站找到官方的課程。


1 從渲染方程開始說起

首先讓我們先看看這個大名鼎鼎的渲染方程到底長什么樣子吧。

Lr(p,ωr)=Le(p,ωo)+∫H2fr(p,ωi,ωr)Li(p,ωi)cosθidωi
烏拉!!就是這個樣子,當然你現在可能一頭霧水,別著急下面我們來具體的看看這個公式。

1.1 輻射度量學(Radiometry)

別害怕,我們只會在這里介紹幾個物理定義

Radiant energy : Q [J = Joule(焦耳)]

? the energy of electromagnetic radiation

Radiant flux(power) ?≡dQdt [W = Watt] [lm = lumen]

? Energy per unit time

Radiant intensity I(ω)≡d?dω

? power per unit solid angle

Solid Angle Ω=Ar2

? ratio of subtended area on sphere to radius squared

上面最難以理解的概念,大概就是固體角了吧。

首先我們從二維的角度去理解,弧長的定義為l=nπr180 => 圓形角的弧度d=lr 于是我們可以類比到三維,如上圖所示。三維情況下,弧長對應為面積,半徑則變為半徑的平方,于是我們就可以得到固體角的定義。具體的我們可以將固體角理解為圖中錐形區域的角度。

知道了固體角,下面我們繼續了解幾個概念。

1.1.1 Irradiance

? Definition : The irradiance is the power per (perpendicularprojected) unit area incident on a surface point.

>E(x)≡d?(x)dA>

注意當平面法向和光線入射方向的夾角不同時,平面接受到的irradiance是不同的。Lambert`s Cosine Law解釋了這個不同情況下的irradiance是多少。

注意:當我們提到光的衰減的時候,我們往往指的是Irradiance的衰減而不是intensity的衰減,很簡單因為無論在某一方向上的光傳播到多遠,其固體角是不變的,但是單位面積上的power是在減少的也就是Irradiance是在減少的。

1.1.2 Radiance

? Definition :The radiance (luminance) is the power emitted, reflected, transmitted or received by a surface, per unit solid angle, per projected unit area.

? Radiance is the fundamental field quantity that describes the distribution of light in an environment

從定義上看,我們可以發現Radiance是在Irradiance的基礎上多除以了單位固體角(也可以看作是在Intensity的基礎上多除以了單位面積)這意味著Radiance比Irradiance多了方向性。

至此,我們所需了解到的單位就已經介紹完了,可能你現在還是一頭霧水,或者是已經有一些思路了,別慌,我們繼續往下看。

1.2 Bidirectional Reflectance Distribution Function (BRDF)

? “哇,這么一大長串,這是什么啊?” 這是我第一次看到這一長串英文的反應,或許把它直譯成中文我們可能更有感覺“雙向反射分布函數”,好吧,感覺還是不知道什么意思(攤手)。簡單的來說BRDF就是當從某一方向打到點p的光,p點的BRDF決定了這束光朝某個方向該怎么反射。具體的來說:

? The Bidirectional Reflectance Distribution Function (BRDF) represents how much light is reflected into each outgoing direction from each incoming direction

個人覺得比較難理解的是為什么是Radiance / Irradiance 而不是 Radiance / Radiance 這里就要從定義上去理解它,因為 Irradiance 是從單位面積上的power,我們要反映的是從這個方向傳過來給這個點上傳遞的單位面積的能量朝另一個方向上的單位面積反射多少能量所以這里我們要先將入射的Radiance轉化為Irradiance,再通過BRDF轉化為Radiance。

知道了這些知識,現在我們就可以回到剛開始我們的渲染方程了。

渲染方程其實就是基于真實的物理解釋了當一個點朝某一個方向出射的Radiance應該是多少。由于它是基于物理的,這個方程是絕對正確和毋庸置疑的。現在的基于物理渲染的光線追蹤其實都是在解渲染方程,不同的光追的技術,其實就是用不同的方法去求解渲染方程。那么我們應該怎么去求解它呢?——蒙特卡洛方法給出了一個簡單的答案。

嗯,就先寫到這里吧,下一節再專門解釋蒙特卡洛方法吧,bye~

2.參考

GAMES101-現代計算機圖形學入門-閆令琪

總結

以上是生活随笔為你收集整理的渲染方程和蒙特卡罗方法(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。