基於物理的渲染 迪士尼的渲染模型

2021-09-21 19:27:31 字數 3798 閱讀 9309

今天給大家介紹的是一篇關於基於物理渲染(physically based rendering)的技術**。該篇**是在2023年siggraph圖形大會上,由迪士尼公司分享的關於pbr技術的報告。pbr是最近遊戲渲染領域中比較高階的渲染管線。相比於傳統基於lambert以及phong模型的渲染管線,pbr採用更加真實的材質模型,能夠更好地表現物體表面不同粗糙度帶來的不同反射效果,從而能夠更貼近真實地模擬各種不同的材質。採用pbr的材質能更好地模擬金屬、非金屬以及不同粗糙度等材質對光的反射效果。雖然pbr在最近幾年才被用於實時的遊戲渲染,但是早在幾年前它就被用於離線的電影渲染中。而這篇**正是基於前人提出的材質模型,通過對真實測量的材質資料進行分析對比,提出新的材質模型。最終,迪士尼將這一方法應用到他們的電影渲染中。

我們推薦這篇**,希望對pbr渲染管線原理有興趣的開發者,能夠通過此文加深對pbr的理解,從而能夠在專案開發中更好地利用pbr管線,達到滿意的渲染結果。

如上圖所示這是迪士尼公司出品的動畫電影 wreck-it ralph 中的截圖。可以看到人物頭頂的金屬皇冠、非金屬衣領都能達到貼近真實的渲染效果。

不同於前人提出的基於物理的材質模型,這篇文章的材質模型在設計之初並不是以物理正確為原則,而是以讓美術設計者更容易理解和使用為原則。文章作者認為是否是物理正確並不重要,重要的是能達到美術設計者的需求並且使用方便、容易理解。因此,他們提出了5個主要的設計原則:

使用方便、便於理解比物理真實更重要;

可調節引數越少越好;

引數的值都必須在效果可接受的範圍內歸一化到(0~1)之間;

引數可以被賦予超過其實際可接受範圍(0~1)之外的值;

所有引數組合的效果都必須是可接受並且穩定;

基於這5個原則,文章作者提出了用11個引數表示的材質模型,根據不同的引數,可以渲染出不同的材質,如下圖:

從上圖可以看到,經過對引數的簡化,文章提出的材質模型用了11個引數即可非常真實地模擬出金屬、非金屬以及不同粗糙度的材質光照結果。

文章作者基於上述的5個原則以及對真實測量資料的觀察結果,對傳統的微表面材質模型中的各項函式進行修改。接下來我們首先介紹傳統的微表面模型的通用表示式,然後對其中的每一項函式進行說明,並介紹在文章中採用的各項函式的表示式。

其中,向量 l 和 v 分別表示入射光和視線方向,向量 h 表示 l 和 v 之間的中間向量,它們與法線方向的夾角分別用對應下標的 θ 表示, θd 表示 l 和 v 之間夾角的一半。diffuse 表示漫反射函式,d 表示微表面分布函式,f 表示菲涅爾係數, g 表示陰影係數。文章中模型的 diffuse 函式是:

其中,roughness 表示粗糙度。對於微表面分布函式 d,目前最好的分布函式是著名的 ggx 函式。但是,文章作者採用了比 ggx 更為通用的形式 gtr (generalized-trowbridge-reitz):

它與 ggx 的區別在於, ggx 為上式中 γ= 2 時的結果。文章作者採用了兩個不同的 gtr 函式來擬合高光項,分別採用 γ= 1 和 γ= 2 。α 的取值為 roughness 的平方,c 為乙個常數用於調節整體縮放。對於菲涅爾項 f,文章採用了 schlick 的公式:

其中, f0 為乙個常量,其值取決於材質的透射係數。對於陰影係數 g ,文章作者採用了 walter 在其**中根據 ggx 推導的 g 公式,並將公式中的 roughness 從 [0, 1] 縮放到[0.5, 1] 範圍。做這個縮放的原因是,根據與實際測量的資料對比以及美術設計者的反饋,高光在 roughness 值較小時顯得過於亮。雖然這個縮放的過程使得模型不再物理準確,但是它符合了美術設計者的需求,這也正是這篇文章最主要的設計原則。

其中,可以選擇看真實測量資料(imageslice),或者是渲染的資料(lit object/lit sphere)並進行對比。

根據文章作者對漫反射表面的觀察發現,在 lambert 模型的假設前提下,單純的漫反射並不帶有方向性,反射光在每乙個反射方向上都是相同的值,但是很少有物體表現出 lambert 模型的假設前提。特別是在視線與法線接近垂直的區域(grazingangle area),有的表現為快速衰減,有的表現為亮度增加,而這與物體表面的粗糙度有密切聯絡,如下圖所示:

從左到右是粗糙表面、光滑表面以及lambert 模型渲染的漫反射結果,可以看到在球的邊緣處,不同程度的粗糙度表現出不同的效果,而lambert 模型並不能很好的表現出這一特點。雖然前人提出的模型,如:oren nayer 以及 hanrahan-krueger,有對此現象作一定程度的模擬,但是並不足以表現這個現象。因此,文章作者在設計材質模型漫反射部分時將這一現象考慮在內。

根據文章作者對高光現象(對應於微表面分布函式)的觀察發現,真實採集的資料的高光拖尾比傳統的材質模型,如:beckmann、blinn phong、gaussian 等,都要長一些。在與實際測量結果的對比中,ggx的渲染效果最接近,如下圖所示:

左邊是真實測量的結果,中間是用 ggx 模型渲染的結果,右邊是用 beckmann 模型渲染的結果。因此,文章作者在提出的材質模型中採用 ggx(gtr γ= 2 時)與 gtr γ= 1 時函式混合作為高光項 d 。

根據文章作者對菲涅爾現象的觀察發現,所有的真實測量的材質,在入射光線與視線之間夾角接近180度時,都會出現高亮的現象。例如:上圖中,距離視點越遠的河面反射的角度越大,反射的光線的亮度就越亮(圖中1、2、3從遠到近,1最亮)。這一現象正是被 torrance-sparrow 微表面模型所觀察並在其模型中提出。雖然模型中的被除數項在 grazing angle 區域趨近於無限,但是由於g 項衰減抵消,不會出現問題。文章作者最終採用 schlick 以及walter 推導的結果來作為文章中材質模型的 f 和 g 函式。

下面是利用文章中演算法渲染的wreck-itralph動畫電影中的一些效果圖展示。

今天介紹的這篇**,通過真實測量的材質資料進行分析對比,對已有的微表面模型中的各項做了相應修改、簡化模型引數,提出新的材質模型。但是,提出這一模型的原則並非基於物理真實,而是對於美術設計者友好,並方便他們使用。雖然這篇文章中的材質模型能夠表現出更加廣泛的材質光照反射現象,但是它並不能模擬次表面散射的光照。因此,作者希望在未來工作中解決這一問題。

關於**作者

brent burley,2023年加入迪士尼公司,目前是迪士尼動畫工作室首席軟體工程師,負責產品中渲染軟體開發。主要成果有:開發了一款開源的、用於細分曲面的紋理對映系統ptex,將基於物理的材質模型用於產品的渲染。

基於物理的渲染 HDR Tone Mapping

若用l x,y 表示畫素 x,y 的光亮度,則log平均值可表示為 其中,n 表示畫素個數,是乙個用於避免奇異值的常數。縮放後的光亮度 l x,y 可用如下公式表示 其中,是乙個縮放引數,被稱為key value,不同的 值對應了不同的縮放程度,如下圖所示 其中,上排中太陽被樹枝遮擋住,因此不包含高...

Unity Shader 基於物理的渲染技術

光是一種電磁波,由光源發射出來,與物體相交,一部分被吸收轉化為其他能量,而另一些被散射,最後被感應器 如眼睛 吸收成像 吸收 改變光的能量,不改變光的方向 散射 不改變光的能量,改變光的方向 影響光的乙個重要的特質就是物體材質的折射率 drdf可以用f l,v 來表示,l是入射方向,v是觀察方向 乙...

第18章 基於物理的渲染

考慮pbr的話,考慮光到底物體是怎麼互動的.光打到物體上,一部分會被吸收,一部分會被散射最後到達我們的眼睛.影響光的乙個重要特性是材質的折射率.觀察物體表面可以發現,為什麼有些物體是粗糙的,有些物體是光滑的.光透過物體,進入物體內部,又彈射出來,叫做次表面散射.brdf 有兩種理解方式 給定入射角,...