[PBR] 學習筆記 #1 - 資料蒐集

PBR全稱Physically Based Rendering,是我接觸到Unity shader開發後不斷接觸到的名詞。為了解決在Unity開發中面對到的各種畫面問題,圖學知識用很破碎的方式在累積著,PBR的知識片段也是其中之一,但主要理解還停在如何使用,而不是原理。

最近又試著閱讀相關原理的資料,發現比起兩年前更能理解其中的內容了,於是想再做一遍較完整的學習,並留下筆記作為日後檢視與再深入的材料。

PBR 簡介

Physically Based Rendering(PBR) 指的是一套用來根據光照進行物體繪製的方法,就如名字所示,應用了很多物理上的研究,為的是要盡可能貼近現實物體的光影表現。

PBR 與 Physically Based Shading(PBS) 通常被一並提起,所指的理論也基本屬於同一個範圍,兩者差異在於想專門討論的範疇。

依照我的理解,PBS 是針對一個物體如何繪製,討論範圍主要屬於Local Illumination;而 PBR 在這之上又包含了如何模擬真實光源、攝影機鏡頭、多物件之間的光影影響等。依照以上理解,兩者關係我會寫成 PBR ~ PBS + Global Illumination + Image-Space Effects and more

因為硬體限制,圖像渲染技術的新應用往往是影視產業會先於遊戲產業。而遊戲產業開始推動realtime PBR的契機,大概是受Disney 2012發表的一篇論文所啟發:

[SIGGRAPH 2012] Physically-Based Shading at Disney (Brent Burley)
https://www.disneyanimation.com/publications/physically-based-shading-at-disney/

各大商業引擎在2012之後幾年間先後引入了PBR作為材質球的標準,並持續改進推廣至今。從UE4內建了PBR開始,PBR成為所有遊戲開發者都能輕易接觸到的技術領域。

[SIGGRAPH 2013] Real Shading in Unreal Engine 4 (Brian Karis)
https://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_slides.pdf
[SIGGRAPH 2014] Moving Frostbite to PBR (Sébastien Lagarde & Charles de Rousiers)
https://blog.selfshadow.com/publications/s2014-shading-course/frostbite/s2014_pbs_frostbite_slides.pdf
[Unite 2014] Mastering Physically Based Shading
https://www.youtube.com/watch?v=eoXb-f_pNag

PBR 基礎的核心概念,主要有

  • BRDF (bidirectional reflectance distribution function,雙向反射分佈函數):描述一個表面,如果從特定角度射入光線,則會以怎樣的比例反射到不同的角度上。
  • Fresnel Reflectance (菲涅耳效應):描述光線從不同角度射入表面,會導致不同的反射率與折射率。
  • Microfacet Theory:將物體表面解釋為由微觀上的許多小平面組成,這些小平面各自為理想平面,但方向各異,在宏觀上形成不同粗糙程度的表面。

組合以上的概念,從比一個像素還小很多很多的微觀表面開始,以數學分析的方法,來建構起繪製單一像素的渲染方程式。不同的材質,在個別環節有著不同的模型理論,經過實際測量的方式來對數學模型進行驗證,最後才有了真實且易用的PBR。

資料蒐集

這裡列出我認為還不錯的資料,雖然目前還沒有全部都看過,也給需要的人做為參考。

書籍

《Real-Time Rendering 4th》這本書作為知名的圖學書籍,其中的第9章 Physically Based Rendering 可以為PBS的理解定下很好的基礎,也可以根據書中列出的引用去找進一步深入閱讀。

《Physically Based Rendering》
https://www.pbr-book.org/3ed-2018/contents

SIGGRAPH演講

SIGGRAPH自2010起,連續好幾年都有一系列以《Physically Based Shading》為題的講座:

  • Physically Based Shading in Theory and Practice (SIGGRAPH 2020)
  • Physically Based Shading in Theory and Practice (SIGGRAPH 2017)
  • Physically Based Shading in Theory and Practice (SIGGRAPH 2016)
  • Physically Based Shading in Theory and Practice (SIGGRAPH 2015)
  • Physically Based Shading in Theory and Practice (SIGGRAPH 2014)
  • Physically Based Shading in Theory and Practice (SIGGRAPH 2013)
  • Practical Physically Based Shading in Film and Game Production (SIGGRAPH 2012)
  • Physically-Based Shading Models in Film and Game Production (SIGGRAPH 2010)

Disney(2012)與Unreal Engine 4(2013)分別發表的PBR實作細節,也包含在這些講座之中。

SIGGRAPH 2012起的講座資料
https://blog.selfshadow.com/publications/
SIGGRAPH 2010的講座資料
http://renderwonk.com/publications/s2010-shading-course/

網路文章

毛星雲所寫的【基于物理的渲染(PBR)白皮书】系列: