摘要:在游戲制作中,著色器是實(shí)時(shí)處理圖形效果的小程序,文章重點(diǎn)介紹了針對(duì)美術(shù)設(shè)計(jì)師的著色器技術(shù)應(yīng)用。
關(guān)鍵詞:著色器;美術(shù)設(shè)計(jì)師;應(yīng)用
中圖分類號(hào):TP37 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)05-1038-02
著色器是一個(gè)充滿概念和技術(shù)要求的龐大而復(fù)雜的話題。每個(gè)游戲引擎和游戲項(xiàng)目都有自身流程和著色器處理上的微妙差別。著色處理的最常見(jiàn)的應(yīng)用是為美術(shù)設(shè)計(jì)師提供各種各樣的表面材料,不僅包括金屬、塑料和天然材料的表面,還有像水、霧、熔巖以及其它的動(dòng)態(tài)表面。
1 著色器的分類
在游戲制作中,著色器是實(shí)時(shí)處理圖形效果的小程序。在現(xiàn)代圖形處理器(GPUs)上有兩種主要類型的著色器:像素和頂點(diǎn)著色器。
頂點(diǎn)著色器是一組指令代碼,這組指令代碼在頂點(diǎn)被渲染時(shí)執(zhí)行,同一時(shí)間內(nèi),只能激活一個(gè)頂點(diǎn)著色器。頂點(diǎn)著色器可以提高渲染場(chǎng)景速度,可以做布類仿真,高級(jí)別動(dòng)畫(huà),實(shí)時(shí)修改透視效果(比如水底效果),高級(jí)光亮(需要像素著色器支持)。
像素著色器的編寫(xiě)、使用和頂點(diǎn)著色器大同小異,像素著色器是對(duì)每個(gè)像素進(jìn)行光柵化處理期間在圖形卡的GPU上執(zhí)行的程序,可以實(shí)時(shí)處理像素,創(chuàng)建各種圖形效果。
實(shí)時(shí)處理像素的能力使著色器變得強(qiáng)大。著色器可用于許多復(fù)雜材質(zhì)外觀和圖像效果:頭發(fā)、火、陰影、水、反射等等。它很靈活,幾乎是無(wú)止境的,著色器程序員可以編寫(xiě)幾乎任何你能想象的效果。
2 著色器工作原理
著色器,從美術(shù)設(shè)計(jì)師的角度來(lái)看,往往有點(diǎn)兒像黑匣子。美術(shù)設(shè)計(jì)師的作用主要是創(chuàng)建輸入和判斷著色器的輸出,即設(shè)置參數(shù)或指定貼圖,生成預(yù)先存在的著色器,然后查看最終的結(jié)果。在某些情況下,著色器代碼是由美術(shù)設(shè)計(jì)師編寫(xiě)或編輯的,但在Max和Maya中,大多數(shù)較新的著色器創(chuàng)建工具更像是材質(zhì)系統(tǒng),沒(méi)有要求編程知識(shí)。
圖 1 顯示從美術(shù)設(shè)計(jì)師的角度來(lái)看材料著色器的工作原理示意圖。
圖1
這是著色器如何工作的簡(jiǎn)單流程。在游戲世界窗戶本身是黑的,我們可以使用著色器告訴游戲引擎基于灰度圖像的哪些部分變亮,哪些部分變暗。你可以看到框架是暗的而玻璃是亮的。圖像的右邊是黑的和亮著的窗戶的特寫(xiě)。
3 著色器的應(yīng)用
著色器通常需要使用二維資產(chǎn)作為輸入,并且美術(shù)設(shè)計(jì)師的任務(wù)通常不只創(chuàng)建這些資產(chǎn),而且在某種程度上還需要深入了解、創(chuàng)建和執(zhí)行著色器。所以,盡管著色器可以替代美術(shù)設(shè)計(jì)師做許多工作,但同時(shí)也會(huì)增加我們的工作量。目前,在游戲中對(duì)美術(shù)設(shè)計(jì)師有影響的不再是畫(huà)一個(gè)獨(dú)立的實(shí)體的貼圖,而是創(chuàng)建一系列為獲得所需效果必須共同作用的貼圖。使用著色器需要更多的規(guī)劃、不同的藝術(shù)創(chuàng)作思維方式和更多的組織。美術(shù)設(shè)計(jì)師需要學(xué)習(xí)著色器工具、組織更多資產(chǎn) (可能會(huì)彼此鏈接,因此著色器到位后,它們的移動(dòng)性更嚴(yán)格),并且還要具備這樣的心理素質(zhì),那就是創(chuàng)建資產(chǎn)并不是最終結(jié)果而是最終結(jié)果的組成部分。
我們習(xí)慣了在Photoshop中繪制那些沒(méi)有實(shí)時(shí)顯示某些屬性的貼圖,但實(shí)際上是需要從平面創(chuàng)建貼圖,構(gòu)建一個(gè)復(fù)雜圖像和效果的組織樹(shù)去創(chuàng)建最終表面(很像我們?cè)?D 程序已經(jīng)做的以及部分貼圖生成工具工作的)。因此美術(shù)設(shè)計(jì)師要了解光影基礎(chǔ)或發(fā)展技能去觀察場(chǎng)景背后所有污物、反射和其他表面屬性的基礎(chǔ)材質(zhì)。例如,不要在 Photoshop 中繪制鉻表面反射高光——既要讓高光點(diǎn)看起來(lái)不錯(cuò),但又不要太明顯—— 你現(xiàn)在要離開(kāi)Photoshop,給材質(zhì)指定一個(gè)著色器,這樣將會(huì)實(shí)時(shí)準(zhǔn)確模擬鉻的高光點(diǎn)(圖2)。盡管著色器在某些方面可以讓我們的工作更容易,而且肯定可以使我們的游戲看起來(lái)更好,但它們可能在理解上有點(diǎn)復(fù)雜,需要更大程度的組織。
圖2
在上面示圖中,在頂行的窗戶玻璃很假,高光點(diǎn)是不動(dòng)的。中間行的圖像的高光點(diǎn)會(huì)隨著你移動(dòng),像真實(shí)的反映效果 (看最底行窗玻璃的亮點(diǎn))。示圖的底部是非常明顯的鉻黃效果,同它旁邊質(zhì)樸貼圖的相同模型相比較,你可以更容易看到光點(diǎn)在表面移動(dòng)。
圖像著色器可以將任何基礎(chǔ)圖像轉(zhuǎn)換為三維拼貼馬賽克,如圖3所示。
圖3
在轉(zhuǎn)換過(guò)程中,圖像可以自由動(dòng)畫(huà)和重新渲染,速度相當(dāng)快。無(wú)論是地板拼貼或復(fù)雜的暗視覺(jué),圖像處理可以給出幾乎任何游戲的圖像或呈現(xiàn)獨(dú)特的聲音和情感;如果你能想像用一系列步驟去更改圖像,那它就是著色器。
將一個(gè)場(chǎng)景分解成基本貼圖的能力有足夠的挑戰(zhàn)性,但將一個(gè)貼圖分解成其基本組件的能力則是更深層的挑戰(zhàn)。當(dāng)游戲中藝術(shù)變成貼圖、濾鏡和程序的復(fù)雜結(jié)合體時(shí),美術(shù)設(shè)計(jì)師將變得更加重要和更具挑戰(zhàn)性。有人預(yù)言著色器將會(huì)替代美術(shù)設(shè)計(jì)師,但我認(rèn)為不會(huì)發(fā)生,總會(huì)有需求要美術(shù)設(shè)計(jì)師做出的東西看上去更好、更獨(dú)特(至少我們可以更改著色器的默認(rèn)設(shè)置)。
記住,著色器僅是美術(shù)設(shè)計(jì)師使用的另一個(gè)工具。
參考文獻(xiàn):
[1] 3D Game Textures ,luke Ahearn, Focal Press,2006.