2020年3月9日 星期一

淺談 physically based rendering (1)


  • 前言
只要是身在遊戲業,就會聽到高層說要做出次世代的遊戲這樣的蠢話令人振奮的精神喊話,

要達到這個目標,開始的第一步就是從畫面開始(...遊戲性呢?)。

觀察各種平台上的遊戲作品,可以發現許多令人印象深刻的遊戲畫面都是使用

physically based rendering(以下簡稱 PBR),來做畫面渲染。

於是開始深入去了解 PBR 的運作,但就如同文字所示,會需要去面對複雜的數學運算。

我相信大部分的人都和我一樣對數學過敏,因此我在學習時遇到了很大的困難。


在研究中我時常在想,能不能跳過這些煩人的數學運算,

然後又能理解並實作一個屬於自己的 PBR,就成了我寫這篇文章的動機。


這篇文章主要是針對想要對 PBR 有基礎的理解,但又想跳過複雜數學的人為目標對象,

因此再說明上,會從結論來說起,在解釋上會用不嚴謹的方式去說明。

目的是希望能夠建立一個基礎,可以對深入學習能夠有所幫助。

  • 前提
在開始說明前,為了讓文章能夠只專注在 PBR 原理上,我對讀者做了一些假設

  1. 使用 Unity ,並了解 Unity Shader 的操作。
  2. 對 Lambert 反射 和 Phong 光照模型有一定的理解,並能實作出來。
  3. 可以接受積分符號出現在螢幕畫面。

  • 什麼是 PBR
這其實很難去說明,原因是文獻上對於 PBR 有很多不同觀點的解釋。

在本篇文章,我狹義並侷限定義 PBR 滿足以下要點:


  1. 光的計算,是基於物體的物理根據,使用反射模型來生成。
  2. 使用的反射模型,滿足能量守恆的條件。
  3. 物體材質球的參數,是根據物體特性而設定。

一下子就寫的模模糊糊的,接下來讓我一項一項的解釋。

  • 基於物理的反射模型
首先,什麼是反射模型?

我在開頭提到的 Lambert 反射模型和 Phong 反射模型就是一種反射模型。

再擴大範圍來解釋的話,就是泛指所有計算反射的方程式。


根據 David Immel et al.[1] 和 James Kajiya[2] 在 1986 提出的 rendering equation (渲染方程式)

提到物體的顏色可以用下列算式來表示:



其中:
 是自發光(emitted),就是物體本身發射出來的光源,

 是來自所有方向光源的反射光。

對於不會自己發光的物體,它的顏色是由其他光源(ex.太陽)先接觸到物體,再反射到眼睛,

而這個光源不會只有一個,因此看到的物體顏色,必須考慮所有的反射光。




rendering equation 點出了電腦圖學上,渲染計算的兩個重點

  1. 多個光源是使用加法合成
  2. 物體的顏色由自發光和反射光所組成,而反射光使用反射模型計算
計算反射光使用的反射模型如果是基於物理根據,

就稱這個反射模型為 BRDF (Bidirectional Reflectance Distribution Function)。



  • 使用的反射模型,滿足能量守恆的條件
那基於物理根據的反射模型又是什麼?

最簡單的定義就是滿足能量守恆(law of conservation of energy)。

對於物體上的某一個點 x,他所接受到的光源能量總和,要等於反射出去的光源能量總和。

而這些反射出去的光並不會集中在同一個方向,因此 BRDF 就是透過機率分布的方式,

將這些反射光自然的分布在各個反射方向。



你可能會覺得透過機率分布去模擬反射方向不符合真實物理原則,

是的,這的確不是符合物理,

但是你也要想想真實世界存在著各種要素(反射物質,天候 ... etc),

要完全考慮這些要素絕對不是能靠一枝鉛筆和幾個方程式就算出來的,

更何況是在 real-time 下處理。

因此科學家們就透過機率分布模型,模擬出一個接近現實的近似值。

所以在實作 PBR 時,我們不需要糾結物理正確,因為目前並不存在物理正確的渲染演算法。

只要盡可能遵守能量守恆,我們就能稱它是一個基於物理的反射模型,

至於自不自然就留給人們去判斷。


  • 物體材質球的參數,是根據物體特性而設定

上述雖然說無法達到完全的物理正確,但是為了能逼近正確結果,

我們還是得使用物體的物理特性,作為渲染計算的參數。



  • 結論
本章節簡單介紹 PBR,下一個章節將深入探討基於物理的反射模型 BRDF 的內容。


  • References


[1] Kajiya, James T., The rendering equation (PDF), Siggraph 1986, 1986: 143–150, ISBN 978-0-89791-196-2, doi:10.1145/15922.15902

[2]Immel, David S.; Cohen, Michael F.; Greenberg, Donald P., A radiosity method for non-diffuse environments (PDF), Siggraph 1986, 1986: 133, ISBN 978-0-89791-196-2, doi:10.1145/15922.15901



沒有留言:

張貼留言