天天看點

基于實體的渲染-用真實的環境光照亮物體

目前,在遊戲引擎中用于照亮物體的光源非常豐富。其中,比較常用的有:平行方向光、點光源、聚光燈以及體積光等,但它們都是對真實光源的近似,并不能很好地模拟真實世界中的複雜光照情況。為了增加光照效果的真實感,我們常用的一種光照計算方法是基于圖像的光照計算(Image-based Lighting)。例如:天空盒(Sky Box)作為環境光貼圖,或者是用Reflection Probe作為反射貼圖等。而在最近比較流行的基于實體的渲染管線(Physically-based Rendering)中,IBL成為了必不可少的一部分。

今天我們介紹的一篇論文是Paul Debevec在1998年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、以及阿凡達等。

原文出處:侑虎科技

本文作者:admin

轉載請與作者聯系,同時請務必标明文章原始出處和原文連結及本聲明。

繼續閱讀