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