最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

計(jì)算機(jī)圖形學(xué)的光學(xué)基礎(chǔ)&BRDF公式的推導(dǎo)

2018-06-03 19:14 作者:AICDG  | 我要投稿

水了挺多文了,還是還是想寫點(diǎn)干貨的??紤]到dx,openGL,vulkan,metal教程和書籍都挺多了,而且講圖形API挺沒意思的,這次寫點(diǎn)偏數(shù)學(xué)的東西。這次內(nèi)容乍看非常簡單,但應(yīng)該已經(jīng)包含實(shí)時(shí)渲染和PBR中的很多關(guān)鍵知識(shí)。如果立志走CG的話是一定要看懂的。而且,這篇文章也可以幫助一些小伙伴判斷自己對圖形學(xué)是否真的感興趣。

光學(xué)的分類

幾何光學(xué)有兩個(gè)重要的分支,分別是幾何光學(xué)和波動(dòng)光學(xué)。

  • 波動(dòng)光學(xué)

    • 微觀視角

    • 光在介質(zhì)中以波的形式傳播

    • 可以解釋衍射, 涉等現(xiàn)象

    • 以波長為研究對象,非常復(fù)雜

  • 幾何光學(xué)

    • 宏觀視角

    • 可見光的波長非常短,可以忽略

    • 在?λ0?的情況下,光學(xué)定理可以用幾何學(xué)描述

    • 光可以看做沿著直線傳播

圖形學(xué)的光學(xué)需求

? ? ? ?計(jì)算機(jī)圖形學(xué)中使用幾何光學(xué),但是幾何光學(xué)模型仍然過于復(fù)雜,因此,計(jì)算機(jī)圖形學(xué)中的幾何光學(xué)模型,相比物理學(xué)中的幾何光學(xué)模型繼續(xù)做了如下簡化:

  1. 物體表面是絕對光滑(smooth)的

  2. 光只可以被發(fā)射(emitted),反射(reflected)或者傳播(transmitted)

  3. 光速無窮大*(光以無限快的速度沿直線傳播)

  1. 在某些極其特殊的光照模型(需要光程差)中不適用,不過實(shí)時(shí)渲染中暫時(shí)沒有使用這些光照模型的可能

圖形學(xué)使用的幾何光學(xué)定理

? ? ? ?光入射到物體表面時(shí),同時(shí)發(fā)生反射和折射。

1. 反射定理

? ? ? ?光射到一個(gè)界面上時(shí),其入射光線與反射光線成相同角度

2. 折射定理

  1. 折射光線位于入射光線和界面法線所決定的平面內(nèi);

  2. 折射線和入射線分別在法線的兩側(cè);

  3. 入射角?θ1?的正弦和折射角?θ2?的正弦的比值,對折射率一定的兩種媒質(zhì)來說是一個(gè)常數(shù)。

3. 菲涅爾定理

? ? ? ?在計(jì)算機(jī)圖形學(xué)中,人眼看到的是物體表面反射的光,因此我們要求出物體表面反射部分光線的能量。

該公式在計(jì)算時(shí)依舊過于復(fù)雜,所以實(shí)際計(jì)算時(shí)一般使用菲涅爾反射能量公式的Schlick近似公式:

? ? ??

? ? ? ?反射率隨入射角變化曲線:

金屬:

金屬反射率隨入射角變化曲線

非金屬:


非金屬反射率隨入射角變化曲線

金屬反射率隨入射角變化曲線



在接近平行物體表面觀察的情況下,非金屬平整表面也有很明顯的鏡面效果

? ? ? ?接下來,我們就要嘗試由光學(xué)定理推導(dǎo)BRDF渲染方程,我以比較簡單的GGX BRDF為例。

1. 圖形學(xué)中幾何光學(xué)模型的限制


? ? ? ?目前為止的理論要求我們所處理的表面是絕對光滑的,但只有相當(dāng)于微觀原子尺寸上,表面才可能絕對光滑,在實(shí)際物體表面物體是有微小的無規(guī)則起伏的。

2. 微面元理論

? ? ? ?核心思想:使用一個(gè)統(tǒng)計(jì)分布函數(shù)來描述微觀尺寸

? ? ? ?假設(shè)我們能夠處理微觀尺寸,則來自同一個(gè)方向的光照會(huì)被反射至多個(gè)方向。那么只要能夠模擬這個(gè)行為,就能在像素尺寸模擬微觀結(jié)構(gòu)的光學(xué)行為。所以可以定義一個(gè)法線分布函數(shù),以代替單個(gè)像素的法線值。

3. 法線分布函數(shù)D

? ? ? ?法線分布函數(shù)表示微面元發(fā)現(xiàn)方向的統(tǒng)計(jì)分布。給定一個(gè)入射方向,一個(gè)微面元有多大概率朝向半向量方向。

? ? ? ?法線分布函數(shù)有各向同性、各向異性之分。

? ? ? ?對于GGX(二維函數(shù),園對稱),只需要表面的

  • 粗糙度

  • 半向量與法線的夾角

? ? ? ?法線分布函數(shù)雖然模擬了表面的凹凸的情況,但是缺忽略了一個(gè)問題,那就是微面元上光線被凹凸遮擋的問題。

? ? ? ?為了解決這個(gè)問題,引入一個(gè)陰影補(bǔ)償函數(shù)G,來模擬表面凹凸遮擋陰影的情況。

4. 雙向陰影遮擋函數(shù)G

? ? ? ?NDF假設(shè)所以微面元位于同一平面,不考慮實(shí)際幾何結(jié)構(gòu)導(dǎo)致的遮擋。它描述的是那些具有半向量法線的微面元中,有多少比例是同時(shí)被入射方向和反射方向看到的(或者說沒有被阻擋的),一般使用史密斯陰影函數(shù)。

用來補(bǔ)償?shù)年幱罢趽鹾瘮?shù)G是一個(gè)純粹的經(jīng)驗(yàn)?zāi)P?,沒有任何光學(xué)理論的支撐。函數(shù)?G1?表示光沒有被凹凸表面遮擋的概率。將入射光和反射光概率相乘就是整個(gè)光路光線不被遮擋的概率。所謂雙向,就是入射光和反射光兩個(gè)方向

? ? ? ?現(xiàn)在我們有了物體表面能量的表示方法。由于我們只關(guān)心反射能量,所以上述公式還要再乘以菲涅爾公式,就是物體表面的反射能量。

5. 雙向分布函數(shù)BRDF

  • D?為法線分布函數(shù)

  • F?為菲涅爾函數(shù)

  • G?為雙向陰影遮擋函數(shù)

  • 4(n?l)?為微面元坐標(biāo)系向世界坐標(biāo)系變換的雅可比行列式

6. BRDF的物理性質(zhì)

  • 赫姆霍茲互反律(Helmholtz reciprocity)

  • 能量守恒*

? ? ? ?解釋一下BRDF的能量守恒。BRDF能量遵循如下公式。

? ? ? ?BRDF并不一定遵循能量守恒,只能保證反射出的總能量不大于入射的能量。就是說,BRDF模型發(fā)射光相比真實(shí)的物理情況可能要暗一些。

7. 其他常見的BRDF模型

Blinn-Phong,簡單快速,各向同性,表達(dá)能力有限:

Cook-Torrance,復(fù)雜一些,各向同性,可以較好地表達(dá)真實(shí)材質(zhì):


Ward,復(fù)雜一些,支持各向異性:

小結(jié)&吐槽

? ? ? ?最近幾年大火的PBR,其實(shí)就是這些東西。抽絲剝繭之后,其實(shí)也蠻簡單的吧。我還有一篇文章,講得是如何在unity中編寫B(tài)RDF著色器,雖然有了上面的理論基礎(chǔ)之后,任何有基本shader基礎(chǔ)的同學(xué)也應(yīng)該都能很輕易的編寫B(tài)RDF surface shader了。如果有人想看請?jiān)谠u論區(qū)說一下,畢竟如果到最后也沒兩三個(gè)人看的話,也挺沒意思的。

? ? ? ?接著是對B站專欄的一些吐槽,求盡快支持markdown啊,B站編輯器實(shí)在是難用。

計(jì)算機(jī)圖形學(xué)的光學(xué)基礎(chǔ)&BRDF公式的推導(dǎo)的評論 (共 條)

分享到微博請遵守國家法律
兰州市| 成都市| 蒙自县| 伊金霍洛旗| 南木林县| 德令哈市| 同心县| 西安市| 苏州市| 都江堰市| 社会| 越西县| 科技| 金阳县| 宁陕县| 台中县| 达州市| 伊宁县| 江安县| 竹北市| 洪江市| 海晏县| 汝阳县| 彭泽县| 吉隆县| 葵青区| 兰考县| 昌宁县| 南充市| 安岳县| 嘉鱼县| 修水县| 西吉县| 淮南市| 江津市| 康定县| 辰溪县| 太和县| 冷水江市| 赣榆县| 衡阳县|