目前,在游戲引擎中用于照亮物體的光源非常豐富。其中,比較常用的有:平行方向光、點光源、聚光燈以及體積光等,但它們都是對真實光源的近似,并不能很好地模擬真實世界中的復雜光照情況。為了增加光照效果的真實感,我們常用的一種光照計算方法是基于圖像的光照計算(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
轉載請與作者聯系,同時請務必標明文章原始出處和原文鏈接及本聲明。