Image Based Lighting
實現的方法之一就是首先捕獲一張環境貼圖,這張圖可以是去真實世界中拿相機拍的(為了更好的效果,推薦使用HDR).也可以是遊戲內相機實時渲染出來的.關於真實世界中拍環境圖,可以參考Debevec的Blog中的信息.這張圖拿到後,需要用諸如HDRShop或者其他商業與非商業類似功能軟體處理,如果你的場景和光照是相對來說"非常靜態地",可以把這個處理好的圖,塞進cmftstudio處理成現成的數據貼圖方便runtime時候直接使用.
關於演算法方面,可以看看GPU Gems的第19章。主要思想就是,我們可以認為在封閉環境下(比如房間),環境貼圖中包含了"空間內的GI"信息,所以我們可以很方便的使用cubemap計算出某個像素周邊的GI權重並應用於計算結果.
這個是我在UE3中用自定義材質做的demo:

參考:
GPU Gems, Chapter19
Schlick, Christophe. 1994. "An Inexpensive BRDF Model for Physically-Based Rendering." Computer Graphics Forum 13(3), pp. 233–246.
Paul Debevec provides a number of useful IBL tools and papers at Paul Debevec Home Page
Ramamoorthi, Ravi, and Pat Hanrahan. 2001. "An Efficient Representation for Irradiance Environment Maps." In Proceedings of SIGGRAPH 2001. This article on diffuse convolution using spherical harmonics is available online atAn Efficient Representation for Irradiance Environment Maps
推薦閱讀:
※用Atlas實現多張貼圖混合的地形及注意事項
※為了忘卻的紀念:析OpenGL史上第二偉大的擴展,DSA
※OpenGL+FreeType 模仿黑客帝國數碼雨 V2.0
※卡通渲染及其相關技術
