全景光照在遊戲中的應用
全景光照簡單的講就是用全景圖模擬相應環境來對物件進行照明。
全景圖指的是包含了360度範圍場景的圖象,它可以是JPG格式、BMP格式、TGA格式等LDRI(Low-Dynamic RangeRadiance Image),也可以是HDR格式的HDRI(High-Dynamic RangeRadiance Image)。
全景光照在電影CG製作中被廣泛使用,因為在合成CG素材到真實場景中往往需要適配真實場景的光照以保證效果擬真。然而單靠手工布光的方式難以還原整個環境的真實光照,所以在拍攝現場往往需要採集當時環境的光照製作成全景光照圖供CG素材照明,以達到和真實場景更好的融合。
我做了一個簡單的合成和全景光照案例:首先在停車場拍攝了一段短片,用全景相機記錄了現場並製作成全景光照圖和反射貼圖(由於所使用的全景相機只能拍攝低精度的JPG格式,所以在燈光模擬的效果上要差些。我所模擬的場景是個純室內環境,所以沒在PS裡用不同曝光值的全景圖來合成HDR格式圖),然後在BLENDER裡面用RoboRecall的兩個角色資源進行合成(合成過程中使用了攝像機捕捉來計算出攝像機的運動軌跡)。
整個流程中主要是用skylight作為全景圖的光照載體來對角色照明,並未用到除skylight以外的其他燈光。
所拍攝的視訊(單幀):
用GEAR360拍攝的全景圖:
[GEAR360作為一個低門檻的全景拍攝裝置,coms感光器面積非常小,色彩和層次還原效果有限,有更高的需求建議使用單反結合雲臺拍攝多角度圖片,再通過軟體合成全景圖或者使用更好的全景拍攝裝置]
使用了RoboRecall的角色和動畫資源:
合成後使用所拍攝的全景圖對角色進行照明、渲染輸出、校色後得到以下結果(單幀):
從視訊中可以看出因為拍攝場景和光源資訊是一致的,所以受光源影響的角色能夠和場景高度融合,而不需要依賴手動布光還原整個真實場景的光照。
那現在我們談一下全景光照在遊戲中的應用。3A級主機遊戲常使用全景圖來進行光照,例如《戰地》,《極品飛車》等遊戲在製作中對光源擬真要求很高,也不可能完全靠人工製作所有帶有豐富光照資訊的環境。
下面我在UE4裡會詳細說明遊戲引擎中全景圖光照的優缺點。
我用了《Paragon》的角色來做燈光範例,這個角色素材可以在引擎商店裡免費下載。我先是以手動布光的方式用一個Spotlight和Pointlight來製作我想要的燈光效果,但是因為希望角色能夠被均勻地照亮,但是又不希望受光太平,所以反覆調整了燈光的位置、顏色以及強度等。但是看來要達到我想要的效果,需要更多的燈光和更多的微調,因為很多地方仍未被照亮,如果我開大燈光的範圍,那離燈光近的地方就會爆光過度;但如果我需要布很多光,調整起各個燈光之間的強弱和顏色引數會比較花時間。
那我換個思路,嘗試用全景圖光照來達到我想要的效果。我往引擎裡匯入了些可以在網上下載到的HDR格式全景圖片。在專案工程設定裡我關閉了自動曝光,因為這個會影響到我對明暗的精確調整。我用skylight對角色進行照明,因為skylight可以作為全景圖的光照載體。這個場景除了角色沒有其他資源,沒有可反射的資訊,但是我需要反射源來渲染材質的質感,所以我把反射球設定成用全景圖作為反射源。這麼做有兩個好處:第一是可以快速創造一個資訊豐富的反射源;第二是可以保證和燈光色調一致,這樣更合理。
幾個簡單設定後,得到以下結果:
這樣還可以迅速嘗試更多的燈光方案:
為什麼手動布光很難做到全景光照的資訊豐富度?可以看下下面的示意圖。
全景圖光照可以模擬環境每個角度的明暗和顏色來對物體進行照明,這個用手動布光是很難做到的。但是目前在遊戲引擎裡實現的全景圖光照在資訊取樣上做過優化,也不能產生動態的陰影,所以還是需要配合手動布光一起才能應對遊戲場景對燈光的各種需求。
我用手動布光和全景圖光照相結合,在unreal4裡做了個範例。場景資源是可以在unreal商店裡免費下載的。整個燈光環境只用一個Direct Light來產生主光源投影,其他照明交給全景圖光照。
得到以下結果:
可以看到skybox自始至終,都沒有顏色變化,因為skybox是使用了發光材質,不受光照影響,但是所有受光的物件都會因為全景圖的不同而產生相應的變化。
以前我在一個多人FPS遊戲的開發中,負責整個遊戲的燈光和氣氛,當時需要製作繁多的星球大氣環境,用這個方式能非常高效地產出。
來源:正奕
原地址:騰訊遊戲學院
原地址:https://mp.weixin.qq.com/s/6fPHmWqVxAjXgYhr6Evd9A
相關文章
- 全景中的包圍曝光和HDR應用
- 光纖在資料中心網路中的應用前景如何
- 遊戲伺服器中JAVA的應用遊戲伺服器Java
- AI在視訊遊戲中的應用AI遊戲
- Flutter應用整合極光推送Flutter
- 因果推斷在騰訊遊戲中的應用遊戲
- 人工智慧(AI)在遊戲中的應用(下)人工智慧AI遊戲
- 視訊在H5遊戲中的應用H5遊戲
- ESP8266和雙向可控矽在調速調光中的應用
- 開發者談音效在遊戲中的8種基本應用遊戲
- 微分方程在遊戲經濟建模中的應用遊戲
- TGDC | 向陽而生 —— 光線追蹤的專案應用
- 機器學習將在遊戲開發中的6種應用機器學習遊戲開發
- 多人聯機射擊遊戲中的設計模式應用(二)遊戲設計模式
- 多人聯機射擊遊戲中的設計模式應用(一)遊戲設計模式
- 使用 eBPF 零程式碼修改繪製全景應用拓撲eBPF
- 應用執行時 Layotto 進入 CNCF 雲原生全景圖
- 當VR和工業應用碰撞,火柴全景VR用科技變革生活VR
- 工業交換機在光伏發電站監控系統中的具體應用
- VR全景圖在教育行業有什麼樣的應用和前景VR行業
- 線性蒙皮分解演算法及其在遊戲中的應用演算法遊戲
- Azure OpenAI在遊戲NPC和製作場景中的應用OpenAI遊戲
- 雅達利遊戲的最後時光遊戲
- 體驗引擎:遊戲設計全景探秘遊戲設計
- 2.3 應用程式容器中的應用程式概述
- JavaScript中AOP的應用JavaScript
- unix中dmesg的應用
- WORD中域的應用
- State模式在J2ME遊戲設計中的應用(轉)模式遊戲設計
- 遊戲設計製作中對鎖定設定的應用(轉)遊戲設計
- 為電子遊戲添“彩” ——色彩原理在電子遊戲中的應用與發展遊戲
- 物件導向的方法在遊戲中的應用的一個例子(上)(轉)物件遊戲
- 物件導向的方法在遊戲中的應用的一個例子(下)(轉)物件遊戲
- 光流法應用——自適應檢測視訊火車速度
- 活體生物發光成像技術原理及應用
- K8s技術全景:架構、應用與最佳化K8S架構
- 騰訊無人機諜照在這裡,或許是能上天的自拍神器無人機
- Unity中的Light燈光Unity