光照技術在圖像合成中的應用
光照是萬物生命之源,沒有光照,也就沒有地球上的一切生命,關于光照的研究也一直沒有停止,諸如光量子記錄儀,光量子計,光電自動數粒儀,光照培養箱,這些都是直接或者間接利用光照原理和其他電子技術,研制成的與光照有關的儀器,今天為大家介紹一下光照技術在圖像合成中的應用。
一、基于圖像的光照技術
在計算機圖形領域,人們一直在使用很多種方法來增強數字合成圖像的真實性,而其中真實感渲染是多數研究的課題,特別是應用于實景合成的真實感渲染。這種需求首先體現在電影行業。在這個領域,數字技術的應用從 20 世紀 70 年代已經開始,到了90 年代,隨著計算機技術的發展,越來越多的電影場景中出現了虛擬場景和虛擬角色,例如,在《黑客帝國》、《魔戒》等好萊塢電影的制作中,演員的表演、拍攝大部分在藍幕前完成,而場景和虛擬角色的設計則由電腦制作并渲染生成,最后再通過電腦進行特效和后期合成。決定真實場景、角色同虛擬場景、角色合成效果真實感的關鍵則是光照效果的渲染,可以說它是電影數字化制作中一個極為重要的環節。在早期,光照效果的解決方案多是三維布光和后期調整,這種方法只能提供一種近似的逼真感,無法做到物理層面的逼真,并且這種方法需要花費大量的后期制作時間和精力,如果更換了環境,則需要對場景進行重新布光和調整。現在,計算機技術的發展為實現真實感渲染提供了另外一種途徑,這便是使用來自真實環境的圖像為場景和物體照明的技術,即“基于圖像的光照”。這種技術不再局限于使用三維布光,而是利用現實世界的光照圖像來照明現實的或計算機生成的場景及物體的一種方法。基于圖像的光照技術由反射映射技術發展而來。反射映射技術在1986 年迪斯尼公司出品的電影《飛碟領航員》中首先使用,而到了1991年,在由工業光魔公司擔綱特效的電影《終結者2》中,觀眾從虛擬角色———液態金屬機器人身上,更加感受到使用反射映射技術制作的光影效果的魅力。
在1997年的SIGGRAPH 年會上,Paul Debevec提交了題為《從照片中恢復高動態范圍輻射圖》的論文。這篇論文描述了按照不同的曝光設置對同一個場景進行拍照,然后將這些采用不同曝光的照片組合成高動態范圍圖像。這種高動態范圍圖像可以捕捉從黑暗的陰影到亮光源或者高反光的更大動態范圍的場景。在一年之后的 SIGGRAPH 年會,Paul Debevec又提交了一篇論文《將人造物體渲染成真實場景: 溝通基于圖像的傳統圖形與全局照明以及高動態范圍照片》。在這篇論文中,他使用以前的技術對光滑的鉻球照相以生成他所稱作的“light probe”( 光探測器) ,即本質上的高動態范圍環境圖。然后將這個 light probe 用于合成場景的渲染。與普通的反射映射技術不同的是,lightprobe 還提供了場景中的照明信息。
在計算機圖形領域,生成真實感圖像的大多數算法是通過模擬光在各類媒介上的傳播方式來實現,這就要求光源是指定的。基于圖像的光照技術理論可以將一幅圖像作為光源,例如,可以使用一幅天空的圖像作為光源來模擬這種環境中虛擬物體的照明。通過這種方法可以實現一種前所未有的真實感效果,為虛擬場景和角色提供了真實世界的照明數據。數字合成技術領域“基于圖像的光照”技術的廣泛應用,為實現數字圖像高質量的渲染輸出提供了另外一種途徑。
二、高動態范圍圖像的概念
基于圖像的光照技術主要是通過HDRI 文件來實現的。什么是HDRI 呢? HDRI 是一種的特殊圖形文件格式。HDRI 是 High-Dynamic RangeImage( 高動態范圍圖像) 的縮寫。簡單說,HDRI是一種亮度范圍非常廣的圖像,它比其他格式的圖像有著更大亮度的數據貯存,而且它記錄亮度的方式與傳統的圖片不同,不是用非線性的方式將亮度信息壓縮到8bit 或16bit 的顏色空間內,而是用直接對應的方式記錄亮度信息。HDRI 文件的每一個像素除了普通的 RGB 信息,還有該點的實際亮度信息。普通的圖形文件每個像素只有0 ~255的灰度范圍,實際是不夠的。想象一下太陽的發光強度和一個純黑的物體之間的灰度范圍或者說亮度范圍的差別,遠遠超過了256 個級別。因此,一張普通的白天風景照片,看上去白云和太陽可能都呈現是同樣的灰度/亮度,都是純白色,但實際上白云和太陽之間實際的亮度不可能一樣,它們之間的亮度差別是巨大的。因此,普通的圖形文件格式是很不精確的,遠遠沒有紀錄到現實世界的實際狀況。HDRI 就是為了解決這個問題而發明出來的。可以說它記錄了圖片環境中的照明信息,因此可以使用這種圖像來“照亮”場景。有很多 HDRI 文件是以全景圖的形式表現的,也可以用它做環境背景來產生反射與折射。需要強調的是,HDRI 與全景圖有本質的區別: 全景圖指的是包含了360 度范圍場景的普通圖像,可以是JPG 格式,BMP 格式,TGA 格式,等等,屬于Low-Dynamic Range Radiance Image( 低動態范圍輻射圖像) ,它并不帶有光照信息。
獲取高動態范圍圖像的方式有以下幾種。一種方式是使用Paul Debevec 的“light probe”( 光探測器) 。光探測器實際上就是一個固定在桿子上的鏡面球體。把這個球放置在想要記錄照明和反射信息的點,然后用普通相機來拍攝一系列的照片,生成高動態范圍圖像。另外一種方式是拍攝多幅從不同方向觀看的圖像照片,然后使用圖像拼合技術把它們結合起來,每次拍攝較大覆蓋區域的一個好辦法是使用魚眼鏡頭,可以使用最少兩幅圖像來覆蓋全部區域,由此來生成高動態范圍圖像。還有一種方式是使用專用的掃描全景相機,將其在一個旋轉支架上,使得縱向行進360°視域掃描來獲得圖像,生成高動態范圍圖像。有賴于高動態范圍圖像技術,基于圖像的照明方式已經日趨完善并廣泛應用在視覺效果行業。通過新的照明和合成工具,視覺效果藝術家在與真實場景進行合成時,能夠使建筑、機械等虛擬場景更加逼真,使虛擬角色栩栩如生。這樣的例子在《X 戰警》、《黑客帝國》、《蜘蛛俠》等影片中比比皆是。
三、基于圖像光照效果的實現方法
基于圖像的光照同基于圖像的建模、基于圖像的繪制技術一樣,都是計算機圖形學、計算機圖像以及計算機視覺相結合的產物。目前,三維軟件中主流的渲染器像 Maya 中的Mentalray、Turtle渲染器,3ds max 中的Brazil、Finalrender、Vray 渲染器,XSI 等等,都已經對HDRI 提供了完美的支持,使得基于圖像的光照技術在三維領域已經被廣泛的應用。本文使用了Maya 軟件中的Mentalray渲染器來實現這一過程,基本步驟如下:第一步: 構建三維場景。導入三維模型,模型的各個部分應賦予相應的材質節點。第二步: 將 HDRI 圖像映射在代表環境的幾何體上。在 Maya 中創建一個 IBL 節點后,場景中會生成一個虛擬的球體“環境”。該球體節點同攝影機節點相連接。在最終渲染時,這個球體“環境”不一定可見,它只是用來達到理想光照效果的工具。這樣,HDRI 圖像的紋理顏色信息將被Mental-ray渲染器采集,在渲染時對場景表面產生照明,影響到場景中物體的反射、折射和輻照度等。第三步: 在進行測試渲染前,確定Mentalray中的最終聚集光線渲染全局變量為開啟狀態,而Ma-ya 中默認燈光為關閉狀態。由于場景中沒有三維燈光參與照明,渲染結果會有以下問題: 一是由于HDRI 圖像中的照明信息只是用來進行環境間接照明,所以場景中缺少關鍵光源。二是缺少高光和直射陰影。第四步: 為了使渲染結果更加真實,有兩種解決方法: 一種是創建三維燈光參與照明,另一種是將 IBL 模式設置為光線發射,也可以兩種方法結合使用。第一種方法自如、靈活,并且渲染速度比較快,但是這種燈光與 HDRI 環境光源的強度與比例沒有關聯,需要自行設置各項參數。第二種方法是使用 IBL 節點作為光發射器,設置很簡單,然而它會通過對紋理的簡化和解析自動創建燈光陣列,并且每個燈光都計算陰影和發射光子,因而需要較長時間的渲染。第五步: 全部設置完成后進行渲染,將會得到基于圖像的光照效果的圖像,可以在后期用來與真實場景進行合成。
四、結 語
隨著計算機軟、硬件技術的發展,基于圖像的光照技術的出現極大地增強了三維渲染、實時光照以及后期合成環節中的真實感,使得虛擬影像同真實影像得以完美融合,并且已經在數字藝術、電影、虛擬現實、游戲等各個領域中都有著廣泛的應用。除此之外,基于圖像的光照技術還能夠做什么,將完全取決于人們的想象力。