姚 超 (南通大學(xué) 藝術(shù)學(xué)院 動(dòng)畫教研室 226000)
淺談切線空間法線貼圖在三維建模中的應(yīng)用
姚 超 (南通大學(xué) 藝術(shù)學(xué)院 動(dòng)畫教研室 226000)
在三維制作中,性能的損耗與高細(xì)節(jié)的模型之間長期以來一直存在著難以兼顧的矛盾。隨著計(jì)算機(jī)硬件技術(shù)的發(fā)展,法線貼圖技術(shù)在三維建模領(lǐng)域開始為人們所重視。切線空間法線貼圖是目前應(yīng)用較為廣泛的一種法線貼圖技術(shù),其利用切線空間的數(shù)學(xué)方法將模型凹凸的高度信息存儲(chǔ)在了法線貼圖的RGB通道中。這一技術(shù)突破了以往凹凸貼圖的局限,使得三維模型在多邊形數(shù)量不變且性能損失較小的情況下能顯示出更多的凹凸細(xì)節(jié)。法線貼圖技術(shù)的出現(xiàn)極大提升了用戶在三維制作中的流暢性,在三維制作中也得到了廣泛的應(yīng)用。
法線貼圖;向量;高模;低模
隨著時(shí)代科技的進(jìn)步,計(jì)算機(jī)硬件和軟件技術(shù)在最近二十年間得到了突飛猛進(jìn)的發(fā)展。以往,計(jì)算機(jī)硬件性能的局限使得三維制作人員為了提高制作速度和軟件運(yùn)行效率不得不降低三維模型的多邊形數(shù)量,從而造成模型細(xì)節(jié)的損失。早期的三維CG作品和三維游戲的畫面的細(xì)節(jié)效果并不能夠讓人滿意。2001年初,支持微軟DirectX 8.0的GeForce3顯卡的上市,可編程的著色管線概念被引入到GPU中,新的Shader數(shù)據(jù)處理方式使得法線貼圖能夠被更好地支持和體現(xiàn)。今天,法線貼圖已經(jīng)在次世代游戲、CG藝術(shù)作品、影視作品等領(lǐng)域起著不可或缺的作用,如電影《阿凡達(dá)》,游戲《古墓麗影10》《戰(zhàn)地4》等諸多作品中均大量使用了法線貼圖。上億多邊形的高精度模型的細(xì)節(jié)通過法線貼圖可以流暢運(yùn)行于計(jì)算機(jī)上,法線貼圖對(duì)于三維制作的發(fā)展有著極為深遠(yuǎn)的意義。
三維模型實(shí)現(xiàn)凹凸效果的傳統(tǒng)方式一般都是在對(duì)象的材質(zhì)的凹凸通道中加載一張?zhí)幚磉^的黑白圖像或直接使用一張紋理貼圖,利用圖像中的灰度信息實(shí)現(xiàn)模型表面起伏的效果,但是這一做法在光源位置發(fā)生變化時(shí)并不能夠讓凹凸處的陰影和高光隨著光源位置的變化而變化,作為凹凸貼圖的延伸,法線貼圖在這一方面則顯得更加優(yōu)秀。
法線指的是始終垂直于面的直線,在三維制作軟件中,可以用于定義多邊形的朝向。法線貼圖是一種含有24位RGB色彩的圖片,通過計(jì)算光線與法線的角度就可以知道光線與面的角度,進(jìn)而可以計(jì)算出面應(yīng)得到的顏色值,也就是說,法線貼圖的RGB實(shí)際上是儲(chǔ)存了模型各頂點(diǎn)在切線空間中的法線映射值,而在獲得了對(duì)象物體的每個(gè)頂點(diǎn)的法線后,就能實(shí)現(xiàn)對(duì)這個(gè)物體進(jìn)行光線照明渲染。
法線貼圖有三種:world space normal map、object space normal map和tangent space normal map,其中tangent space normal map在三維制作中最為常用?!皌angent space normal map”是指切線空間法線貼圖,由一個(gè)原點(diǎn)和三個(gè)基向量構(gòu)成,其中原點(diǎn)是指多邊形的頂點(diǎn),三個(gè)基向量則分別是:切線、法線和副法線(T、N、B)。相比起凹凸貼圖,法線貼圖使用RGB通道來儲(chǔ)存法線信息,而RGB在空間中對(duì)應(yīng)的是x、y、z三個(gè)坐標(biāo)軸(圖1.1)。在法線貼圖技術(shù)中,像素的明暗程度依靠它們各自的法線來決定。如果在即時(shí)渲染中,把每個(gè)像素的法向量都轉(zhuǎn)換成世界空間里與光線進(jìn)行角度的計(jì)算會(huì)極大地降低渲染效率,因此,法線貼圖技術(shù)則是將光向量引入法線所在的切線空間里進(jìn)行計(jì)算。在切線空間中,法線可以看作高度且與z軸對(duì)應(yīng),始終垂直于頂點(diǎn);而切線則對(duì)應(yīng)x軸,是需要平行于法向量所在的平面(圖1.2);副法線則可以通過另外兩個(gè)向量的差乘得出,簡(jiǎn)單地利用公式表達(dá),就是N=T×B。二維紋理空間的坐標(biāo)是以U和V來表示,切線和副法線既分別對(duì)應(yīng)x和y軸,同時(shí)也對(duì)應(yīng)了二維紋理空間中的U和V。
圖1.1
圖1.2
使用法線貼圖的目的通常是為了在較少的多邊形模型上產(chǎn)生更多的凹凸細(xì)節(jié),所以用戶在生成法線貼圖前需要準(zhǔn)備好高精度模型(高模)和低精度模型(低模)。高模的作用是為低模提供更多的細(xì)節(jié)內(nèi)容,不需要進(jìn)行UV展開;低模則是承載法線貼圖的主體,在賦予法線貼圖前需要對(duì)其進(jìn)行展平UV。通常用戶會(huì)先行制作低模,在確保模型外形正確后再在低模的基礎(chǔ)上制作擁有更多細(xì)節(jié)的高模,這樣可以保證高模與低模的外觀形態(tài)基本一致。用戶也可以利用Zbrush或Mudbox等數(shù)字雕刻軟件制作高模,然后使用Topogun一類的拓?fù)滠浖?duì)高模進(jìn)行拓?fù)涠玫降湍#@種做法的好處在于可以根據(jù)高模合理調(diào)整低精度模型的布線從而為低模UV的展平提供便利。
以3ds Max為例,如果需要生成法線貼圖,需要按照如下的步驟:(1)先準(zhǔn)備好低模和與之對(duì)應(yīng)的高模并將兩個(gè)模型都導(dǎo)入進(jìn)同一個(gè)場(chǎng)景中,高模和低模的位置要進(jìn)行對(duì)齊。(2)在Rendering菜單下選擇Render To Texture,之后在Projection Mapping下按Pick按鈕選擇高模,將高模讀取。為了讓烘焙出的貼圖質(zhì)量更佳,我們需要為烘焙貼圖設(shè)置“Hammersley”類型的抗鋸齒并把質(zhì)量設(shè)置為“1”,同時(shí)設(shè)置其貼圖坐標(biāo)為“1”。(3)在Output卷展欄下,添加“法線貼圖”。為了確保烘焙出的法線貼圖擁有足夠的分辨率,尺寸值需要設(shè)置得大一些,系統(tǒng)默認(rèn)的256×256是遠(yuǎn)遠(yuǎn)不夠的。此外,在修改堆棧中的映射一欄下,設(shè)置合理的值并作適當(dāng)?shù)恼{(diào)整,讓映射的范圍適當(dāng)?shù)匕〉湍?,以確保法線貼圖生成的正確性。(4)最后,在Render To Texture面板中點(diǎn)擊Render按鈕進(jìn)行貼圖的渲染生成。這時(shí),需要將生成好的法線貼圖賦予到凹凸貼圖通道中并把凹凸貼圖通道的強(qiáng)度值設(shè)置成“100”。在完成了以上的步驟之后,我們即可在低模上看見高模所具備的各處細(xì)節(jié)。
在三維制作過程中,常見的能實(shí)現(xiàn)模型凹凸效果的貼圖并不止法線貼圖一種,凹凸貼圖、置換貼圖等均能夠?qū)崿F(xiàn)模型表面的凹凸效果。
相比起法線貼圖,傳統(tǒng)的凹凸貼圖出現(xiàn)年代較早,但它只是利用灰度信息對(duì)原始圖像進(jìn)行復(fù)制、平移操作,從而實(shí)現(xiàn)凹凸效果,當(dāng)然也可以利用Alpha通道來實(shí)現(xiàn)凹凸效果。這種貼圖的局限性很大,無法很好地產(chǎn)生鏡面高光,也不能針對(duì)光源位置的變化在凹凸處產(chǎn)生正確的投影和高光。法線貼圖很好地彌補(bǔ)這一缺陷,除了具備傳統(tǒng)凹凸貼圖的優(yōu)點(diǎn)外,凹凸處的鏡面高光也能很好地體現(xiàn),并且能夠根據(jù)光源的位置產(chǎn)生正確的投影,從而得到更逼真的凹凸效果。而置換貼圖在實(shí)現(xiàn)模型凹凸效果時(shí),整體效果優(yōu)秀,這是一種真正可以改變對(duì)象物體表面幾何形狀的貼圖方式。由于置換貼圖會(huì)明顯增加模型的幾何形信息,這種貼圖方式對(duì)于系統(tǒng)資源的損耗也非常大,而法線貼圖在不增加對(duì)象物體多邊形數(shù)量的前提下就能實(shí)現(xiàn)正確且效果較好的凹凸感,從而很好地在性能損耗和畫面效果之間取得了合理的平衡。
和凹凸貼圖類似,法線貼圖也只是產(chǎn)生模型表面凹凸的假象,實(shí)際上并不能改變模型的外形。在入視角度接近水平時(shí),法線貼圖所起到的效果就會(huì)大幅度削弱。此外,法線貼圖不能很好地體現(xiàn)較大的凹凸效果,也不能實(shí)現(xiàn)自身內(nèi)部的遮擋,這也是法線貼圖的缺點(diǎn)所在。盡管自身具有一定的缺陷,但由于能夠在有限的多邊形面數(shù)上實(shí)現(xiàn)上億多邊形的高模效果,尤其是切線空間法線貼圖具備更大的自由度并能夠?qū)崿F(xiàn)UV動(dòng)畫,法線貼圖技術(shù)在三維建模中依然是目前較為流行和科學(xué)的技術(shù)手段,配以合理的環(huán)境光遮蔽貼圖,可以讓法線貼圖的細(xì)節(jié)感得到更大的增強(qiáng)。另一方面,作為法線貼圖的增強(qiáng)技術(shù),視差貼圖技術(shù)也已經(jīng)越來越多地被使用。法線貼圖技術(shù)在追求畫面細(xì)節(jié)的今天,已被廣泛地應(yīng)用于影視制作、次世代游戲開發(fā)等諸多領(lǐng)域,對(duì)于畫面效果的提升起著非常重要的作用,在未來的一段時(shí)期內(nèi),法線貼圖技術(shù)依然會(huì)作為三維模型制作的一種主流技術(shù)被繼續(xù)應(yīng)用在各個(gè)領(lǐng)域。
在計(jì)算機(jī)硬件和三維制作技術(shù)飛速發(fā)展的今天,簡(jiǎn)單地對(duì)模型進(jìn)行貼圖顯然已經(jīng)不能滿足觀眾的視覺需求,法線貼圖在大型三維游戲、影視作品和藝術(shù)創(chuàng)作等諸多領(lǐng)域中扮演著越來越重要的角色。法線貼圖使三維建模得到了飛躍性的發(fā)展,為創(chuàng)作更加優(yōu)秀的三維數(shù)字畫面提供了極其重要的前提條件。在未來也會(huì)更加地為人們所重視并得到進(jìn)一步地發(fā)展。
[1]尚冰. 淺談中國高校的三維動(dòng)畫教學(xué)模式[J]. 科技傳播,2014(8).
[2]張?jiān)圃? 3D游戲中法線貼圖技術(shù)的數(shù)學(xué)方法[J]. 電腦知識(shí)與技術(shù),2011(7).
[3]周飛. 法線貼圖技術(shù)在次世代游戲圖像中的原理及應(yīng)用[J]. 湖北經(jīng)濟(jì)學(xué)院學(xué)報(bào),2012(9).