在现代引擎游戏中使用正确的渲染打光流程
這是一篇給美術寫的文章,之所以要寫這篇文章呢,是因為在團隊開發的過程中,不難發現一部分美術缺乏對現代渲染流程的理解,導致給場景做光照的過程中步驟完全錯誤,無法完成目標,那么在這篇文章中我們將完整講解在有了場景和材質素材以后,該怎么把場景制作出最終的效果樣式。
第0步,確保引擎著色本身是“正確的”。
這一點其實應該是由負責圖形渲染的TA來解決。但是作為美術在這個過程也要負責叮囑和監督圖形TA。什么是“正確的”?簡而言之就是在使用同樣物理參數(金屬度,粗糙度,表面色彩等)時進行渲染,渲染結果與參照物(可以是DCC如Substance Designer或Vray等離線渲染器)的結果達到相近的程度,當然由于性能限制,要達到100%相同是幾乎是不可能的,那么要達到什么程度則需要美術和TA進行漫長的溝通(為什么漫長?請不要問我是怎么知道的,謝謝),比方說我們這里給出一個MPipeline與Substance Designer的效果對比:
?
完成這個步驟后,我們就基本可以確定不會“后庭失火”,也就是自家引擎不會給自己使絆子,因為確定自己使用的引擎是可靠的這一點總是最先要完成的工作。
?
第1步,導入素材,確定場景元素正確。
素材從DCC軟件導入引擎這個過程也是需要特別留意的,因為你既不知道DCC的導入格式會不會有什么問題,也不知道引擎會不會做什么妖(引擎開發:喵喵喵???),所以確定自己的場景正確無誤是很重要的,這里在準備好場景后對場景進行排查,可以確定場景的Geometry信息正確無誤:
?
第2步,關掉所有的后處理,并開始調整光照屬性。
后處理無疑會嚴重影響打光師對實際效果的影響,游戲賬號轉讓尤其是Bloom,Auto Exposure等,所以我們要把所有的后處理都關掉,除了Tonemap以外,至于為什么我們馬上會講到。
燈光除了角度位置等物理,還有本身的強度和顏色。角度與位置擺放的核心思想在于,一定要“在有光的地方打光”,這一點很重要,在游戲開發的遠古時期因為對間接光照的處理有限,因此經常在暗處打一些補光來烘托整個場景效果,這本是沒辦法的替代方案,然而現在部分美術人員依然留著這樣的“壞習慣”。這是正常的情況,因為在影視制作中也常通過各種假燈光來烘焙效果,比如《冰雪奇緣》中的這個鏡頭燈光就明顯不“正確”:
可以看到姐姐是背陰面,而妹妹則是在受光面,而兩人明明是面朝同一個方向,兩人也明明都在一個比較廣闊的宮殿內。這樣藝術的處理方法脫離現實但高于現實,立刻就能表現出姐姐和妹妹的心情,雖然不正確,但是用在這里是有理有據的。
然而,在游戲中如果使用這樣的操作,則會導致情況完全與想象的背道而馳,這是因為游戲比起電影具有可互動性,玩家的視角是隨時變化的,所以如果我們生搬硬套電影制作的方法,會導致效果非常假,這是應該格外注意并避免的。
以打光要往正確的地方打,這一點詳細解釋在我們的專業美術的文章中有詳細的解釋:
說完燈光位置角度問題,就是燈光的強度和顏色。首先是強度,在調整強度時一定要先關掉Tonemap,因為Tonemap會對高強度和低強度的HDR結果產生一個壓制的效果,這會嚴重削弱對強度的判斷,很多時候就會因為這樣的情況導致實際燈光比看起來亮很多,烘焙出來的結果就會過曝,我們當然不希望這樣的事情發生:
?
可以看到,如果開著Tonemap,光照的強度會被嚴重影響,顯然這是不應該的。
在強度調整的接近以后,就可以開始改變顏色,燈光默認是白色的,而我們在強度調整階段也不應該改變默認值。開始調整顏色之前就需要開啟Tonemap了,因為剛才講過,Tonemap會對顏色表現帶來影響,所以整個打光的過程可以理解成:關Tonemap->確定燈光是默認的白色->調整亮度(如果燈光強度過曝應該拉低整個屏幕亮度來監視燈光強度與周圍暗處的對比)->開啟Tonemap->調整色彩。
第3步,準備烘焙。
完成燈光調整后就進入烘焙準備階段,除了檢查模型UV2,檢查模型之間有無貼面,破面等基本情況,還應該做一些特殊處理,比如在制作室內場景時可能為了室內受光完整,在窗口打一個面光源。這些特殊處理是否要用,怎么用,具體要看概念設計人員提出的要求。比方說我們這里的場景想要表現暖色調的教室,而室外天空球則是藍色的,因此我們就在每個窗口打上暖色調的面光源實現效果。
第一次烘焙很大可能不理想,如果不理想則應該重復第2步的步驟,直到打光效果理想,并開啟后處理檢查最后結果。
打光結束后效果大致如此:(程序猿審美,請各位不要噴,因為我玻璃心,謝謝)
?
第4步,調整后期特效:
色彩的要素基本有了,在體積感上還有比較大的缺陷,體積不夠,霧效來湊,我們這里直接使用MPipeline自帶的體積霧組件來實現。直接在場景中擺塊并調整霧效濃度和顏色:
?
調整體積霧塊的位置大小和濃度色彩后體積感有了很大的改善:
?
在有了這么一個較為完整的渲染效果后,可以進行一些藝術化的調色,讓效果符合游戲劇情想要表現的氛圍:
?
到此為止,單個場景的打光基本算完成了,至于自動曝光和運動模糊這些需要在攝像機的運動過程中表現的效果則需要聯系游戲邏輯進行制作,在此處就不多闡述了。
最后,作為MPipeline渲染管線的作者,本人衷心希望可以讓管線的工具流程更加專業高效,并能為從事游戲制作的美術人員提供幫助,謝謝。
總結
以上是生活随笔為你收集整理的在现代引擎游戏中使用正确的渲染打光流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Roguelike游戏的视野算法
- 下一篇: 真实感皮肤渲染技术总结