[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)白皮书】系列:
- (一)开篇:PBR核心知识体系总结与概览 https://zhuanlan.zhihu.com/p/53086060
- (二)PBR核心理论与渲染光学原理总结 https://zhuanlan.zhihu.com/p/56967462
- (三)迪士尼原则的BRDF与BSDF相关总结 https://zhuanlan.zhihu.com/p/60977923
- (四)法线分布函数相关总结 https://zhuanlan.zhihu.com/p/69380665
- (五)几何函数相关总结 https://zhuanlan.zhihu.com/p/81708753