目前,在遊戲引擎中用於照亮物體的光源非常豐富。其中,比較常用的有:平行方向光、點光源、聚光燈以及體積光等,但它們都是對真實光源的近似,並不能很好地模擬真實世界中的複雜光照情況。為了增加光照效果的真實感,我們常用的一種光照計算方法是基於影象的光照計算(image-based lighting)。例如:天空盒(sky box)作為環境光貼圖,或者是用reflection probe作為反射貼圖等。而在最近比較流行的基於物理的渲染管線(physically-based rendering)中,ibl成為了必不可少的一部分。
今天我們介紹的一篇**是paul debevec在2023年siggraph會議上發表的一篇文章。這篇**主要解決的問題是:如何利用hdr(high dynamic range)圖以及全域性光照明技術,將虛擬的物體融合到真實**中。它實現的效果類似於今天我們常說的ar(augmented reality)技術。在渲染虛擬物體的時候,文章作者採用的方法是用hdr圖作為環境光貼圖來計算光照結果。該方法是最早使用ibl進行光照計算的方法之一。我們先來看看他的渲染結果,如下圖所示。
其中,左圖是真實拍攝的,右邊是將虛擬物體合成到真實拍攝的結果。可以看到,虛擬物體中的金屬材質對周圍環境的反射以及高光,都能和真實物體形成一致的光照結果。
**將場景中的物體分成三類分別進行處理。下圖是這篇**的演算法框架圖。
這三類分別是:遠處的場景、近處的區域性場景、以及虛擬場景。在渲染遠處場景的時候,**作者用真實拍攝的以及簡單的幾何來渲染,其光照資訊全部來**攝的影象。在渲染近處區域性場景的時候,由於需要模擬真實場景對虛擬場景的影響,所以**作者還對物體的材質進行了近似估計。最後,在渲染虛擬物體的時候,利用環境光照的入射光來計算光照。其演算法過程示意圖如下圖所示。
首先,**作者對真實場景進行拍攝。然後,利用反射探針對場景中的環境光進行獲取。在獲取環境光貼圖時,作者採用的是hdr的表示方式。接著,利用獲取的環境光照貼圖對遠處場景進行建模。最後,用全域性光照軟體渲染虛擬物體以及與虛擬物體有光照影響的近處區域性物體,並融合到拍攝的真實影象中。接下來我們將對**的演算法進行詳細介紹。
文章作者採用了hdr圖作為環境光照貼圖。為了說明用hdr圖比普通的ldr圖更能表現實際光照環境,**作者分別採用hdr和ldr環境貼圖進行渲染,並對兩者結果進行了比較,結果如下圖所示。
第一排是用hdr渲染的結果,第二排是用ldr渲染結果。其中,右邊三列結果中,ldr的渲染結果在計算時,作者將光照強度增大了6倍,從而使得ldr的入射光的強度能夠與hdr的一致。但是從渲染結果中可以看到,採用hdr環境光圖渲染的結果能夠表現出更多的細節,而ldr的渲染結果顯得比較平坦。因此,作者在其接下來的實驗中全部採用了hdr作為環境光照入射光。
文章作者提出了一種基於光照的建模方法(light based model)來對遠處的物體進行建模。這種方法其實類似於我們今天常用的天空盒。它的做法是將hdr光照圖對映到乙個方盒上,作為遠處的背景,如下圖所示。
這張圖不僅用於顯示無限遠處的場景,並且用於對虛擬物體渲染的入射光。
為了模擬近處區域性真實場景與虛擬場景之間的光照互動,不僅需要對近處區域性場景進行幾何建模,而且需要獲取其材質資訊。雖然可以採用材質獲取工具對真實場景材質進行測量,但是文章作者採用了迭代的方法來對其進行估計。該方法的過程如下:
首先對區域性真實場景的幾何進行建模,然後對其材質進行估計,如:diffuse,diffuse加specular,或者是任意的brdf模型,甚至是隨空間變化的;
對估計的材質模型選擇初始引數;
用全域性光照演算法對區域性場景進行渲染;
採用不同的視角,比較渲染結果和真實拍攝結果;
如果渲染結果與真實拍攝結果不一致,則調整模型引數,並返回第3步繼續迭代。
在渲染近處的虛擬場景時,需要將拍攝的多張環境光貼圖合成一張完整的貼圖作為入射環境光。因為,當採用light probe採集環境光照時,處於probe球背面的場景無法被採集到。同時,正對著相機方向的場景由於球面邊緣反射的拉伸,取樣率低,容易出現瑕疵。因此,**作者在多個不同的角度對probe球進行拍攝,然後將多張拍攝的結果進行合成,最後形成一張完整的貼圖。下圖展示了**作者採集的三張環境光貼圖以及對虛擬場景的渲染結果。
在上方的中,上圖是利用light probe拍攝的三張貼圖,下圖是用合成的環境光貼圖渲染的虛擬場景。在渲染時,**作者採用了全域性光照渲染引擎radiance進行全域性光照渲染。與我們目前在遊戲引擎中採用的實時演算法不同的是,radiance並不是實時計算完成的。由於當時的硬體條件限制,支援離線渲染。
**作者將遠處場景、近處場景、以及虛擬場景進行融合,得出最終結果,如下圖所示。
其中,圖(a)是真實拍攝的結果。圖(b)顯示了用light probe拍攝環境光貼圖的設定。圖(c)至圖(f)顯示了採用迭代對區域性場景(地板)進行估計的過程。為了表現出虛擬物體和地面之間的陰影遮擋以及多次反射,**作者用一張純diffuse的紙板對地面進行幾何近似,並通過第三節中的迭代演算法對地面的材質引數進行估計。圖(g)顯示了將虛擬物體融合到真實場景的結果。
這篇**提出了一種利用真實拍攝光照貼圖對虛擬物體進行渲染並融合的演算法。該演算法可以很好地將虛擬物體融合到真實拍攝的場景中。其主要原因是,渲染虛擬物體的環境光照貼圖是從真實拍攝的hdr中獲取,所以虛擬物體的渲染結果的光照能夠與真實拍攝場景一致。其次是**作者在渲染時,對與虛擬物體有相互影響的真實場景進行幾何和材質的估計。然後,根據估計結果進行全域性光照的渲染。最終能夠捕獲真實場景與虛擬物體之間相互反射以及陰影遮擋的效果。
作者資訊:
paul debevec,南加州大學兼職研究員,googlevr專案主要成員,著名計算機視覺、圖形學學者。他的研究成果包括,利用light stage獲取bsdf,如人臉的反射模型,以及將高動態圖用於基於影象的建模與渲染。他的研究成果被用於許多著名電影渲染,包括黑客帝國、蜘蛛俠2、金剛、超人歸來、蜘蛛俠3、以及阿凡達等。
基於物理的光照模型實現
隨著計算機效能的提公升和3d技術的發展,現代3d遊戲不斷追求對現實世界的真實模擬。在這種背景下,原來被廣泛使用的blinn phong光照模型由於其模擬度不夠,已經不適應新一代遊戲的需要。採用新的基於物理的光照模型,可以更好的模擬高光反射,大幅提公升畫面質量 光照模型使用了微表面brdf,環境高光的...
基於物理的渲染 HDR Tone Mapping
若用l x,y 表示畫素 x,y 的光亮度,則log平均值可表示為 其中,n 表示畫素個數,是乙個用於避免奇異值的常數。縮放後的光亮度 l x,y 可用如下公式表示 其中,是乙個縮放引數,被稱為key value,不同的 值對應了不同的縮放程度,如下圖所示 其中,上排中太陽被樹枝遮擋住,因此不包含高...
基於物理的渲染 迪士尼的渲染模型
今天給大家介紹的是一篇關於基於物理渲染 physically based rendering 的技術 該篇 是在2012年siggraph圖形大會上,由迪士尼公司分享的關於pbr技術的報告。pbr是最近遊戲渲染領域中比較高階的渲染管線。相比於傳統基於lambert以及phong模型的渲染管線,pbr...