PBR相關(guān)資料匯總

概念理解

  • BRDF,雙向反射分布函數(shù)。大致就是在給定表面點(diǎn)上,輸入入射向量和出射向量,算出出射輻射率和入射輻照度的比率。
    • f(l,v) = \frac{dL_o(v)}{dE(l)},這樣定義能夠配平渲染方程。

資料

球諧光照&光照探針方面的資料

Unity

  1. 如何在Unity中造一個(gè)PBR Shader輪子 https://zhuanlan.zhihu.com/p/68025039
  2. 擴(kuò)張Unity PBR https://blog.uwa4d.com/archives/USparkle_PBR.html
    1. 作者github https://github.com/chenyong2github

PBR工作流(SubStance+Unity)

  • SubStance 用的 GGX BRDF,有兩套workflow
    • https://academy.substance3d.com/courses/the-pbr-guide-part-2
    • Metal/roughness
      • base color tex 叫做 albedo 同時(shí)包含絕緣體的漫反射顏色和導(dǎo)體的反射率(鏡面反射)(base color 用的sRGB的方式存儲的)
      • Metal map 用起來像一個(gè)黑白二分圖,黑色絕緣體(非金屬),白色導(dǎo)體(金屬)
        • 只是像,因?yàn)檫€有半導(dǎo)體來著。
          • 當(dāng)metal gray value 低于 235 sRGB 時(shí),需要降低base color對應(yīng)的反射率
        • 絕緣體也有4%的反射率,這個(gè)0.04可以寫死在shader里,
          • 具體實(shí)現(xiàn)應(yīng)該是類似這個(gè)優(yōu)化:https://zhuanlan.zhihu.com/p/21961722
          • diffuse = albedo * (1 - metalness)
          • specular = lerp(0.04, albedo, metalness)
        • Substatance提供了一個(gè) SpecularLevel 來控制絕緣體的反射率,
      • roughness tex 粗糙度貼圖,1是最粗糙
      • 優(yōu)點(diǎn):使用廣泛,不容易弄錯(cuò)絕緣體的反射率(多數(shù)情況下寫死0.04),紋理內(nèi)存用的少。
      • 缺點(diǎn):不能控制絕緣體的反射率,邊緣副作用更加明顯。
    • Specular/glossiness
      • diffuse map 顏色貼圖,金屬部分顏色是黑色(只有高光顏色沒有反射顏色)
      • specular map 反射率貼圖,非金屬也有單獨(dú)的反射率設(shè)置,而不是定死0.04
      • glossiness map 光澤度貼圖,1是最光滑
      • 優(yōu)點(diǎn):邊緣副作用不明顯,可以控制非金屬的反射率
      • 缺點(diǎn):容易搞錯(cuò)非金屬的反射率導(dǎo)致光照過亮,紋理內(nèi)存用的多,據(jù)說是用起來更麻煩。
    • 兩種worlflow公共的部分
      • Normal map 法線貼圖,豐富光照細(xì)節(jié)
      • AO(ambient occlusion) map 主要作用于環(huán)境光,乘法運(yùn)算
      • Height map 可以做一些視差效果,最好是用低精度的模糊高度圖,細(xì)節(jié)部分讓normal map 控制
        • 一般不真的移動(dòng)頂點(diǎn),意味著邊緣部分還是原來的幾何邊緣。但是可以做到移動(dòng)頂點(diǎn)。
      • 其他
        • 按理來說粗糙度和光澤度應(yīng)該也可以是公共的。
    • 其他
      • 反射率分布:金屬70%-100%,大部分非金屬2%-5%,有效范圍0%-8%
    • 副作用
      • 金屬會有白色邊緣,原因是紋理插值導(dǎo)致的,Metal workflow的albedo的金屬區(qū)域是白色的(鏡面反射率靠近1)。
        • Specular worlflow 金屬會有黑色邊緣,但是感官不明顯。
        • 提高紋理像素密度能減輕這個(gè)問題。
  • Unity 的兩種物理shader standard + standard(specular setup)
  • Substance與PBR工作流總結(jié):https://blog.csdn.net/linuxheik/article/details/81914184
    • 比較簡單。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容