王者歸來(lái)性能翻番 GeForce6技術(shù)解析
置換貼圖(Displacement Mapping)這個(gè)名詞我們也已經(jīng)比較熟悉,它早已不是第一次出現(xiàn)在我們的文章中。這種技術(shù)在業(yè)界通常有兩種叫法:CG美工通常稱之為置換貼圖,而游戲程序員通常稱之為位移貼圖。
我們知道,在游戲或者其他應(yīng)用到3D圖形技術(shù)的地方,建模的時(shí)候通常為了節(jié)省資源,并不能夠?qū)?D模型建得非常細(xì)致。一是建模的時(shí)候投入的精力會(huì)太多,二來(lái)更重要的是過(guò)多的多邊形雖然使效果更細(xì)膩,但也會(huì)嚴(yán)重影響速度。
但是,享受3D圖形的用戶卻是非常貪婪,因?yàn)樗麄儾幌朊鎸?duì)一些直棱直角的方塊來(lái)“享受”他們的3D游戲,而希望在電腦屏幕上見(jiàn)到真實(shí)生活中的拱頂,見(jiàn)到恐龍的皮膚是粗糙而多毛,他們更希望水面波光粼粼……那么如何形成更為細(xì)致的3D效果呢?這就需要使用貼圖來(lái)實(shí)現(xiàn)。
我們這里要額外討論置換貼圖就是基于上述這些應(yīng)用。那么置換貼圖究竟是如何實(shí)現(xiàn)凹凸的感覺(jué)的呢?
置換貼圖的過(guò)程就是按照一張灰度圖(表示表面凹凸的高度)來(lái)給頂點(diǎn)沿著垂直表面的方向一個(gè)位移,產(chǎn)生真正的凹凸。這要求模型比較細(xì)致。某些情況下,這還需要結(jié)合N-Pach曲面等技術(shù),實(shí)時(shí)把模型細(xì)化,然后再用貼圖的方法將物體的貼圖補(bǔ)上。
我們以一個(gè)恐龍的頭部來(lái)作為例子給大家介紹。
僅僅有模型和貼圖的恐龍
首先,我們看恐龍的頭部。恐龍頭部的3D模型并不是很復(fù)雜,整個(gè)頭部圓滾滾的,簡(jiǎn)直就不像是恐龍,倒是有些像海豹的頭部——特別是皮膚非常光滑。這樣的效果自然是不能讓消費(fèi)者滿意的,我們就需要找出一種巧妙的方法“騙過(guò)”您的眼睛,讓您感覺(jué)到這就是一頭實(shí)實(shí)在在的恐龍。
現(xiàn)在根據(jù)恐龍頭部的細(xì)節(jié)生成一個(gè)凹凸細(xì)節(jié)的數(shù)據(jù)表,這個(gè)表僅僅是一個(gè)矩陣類型的數(shù)據(jù),所以就要比真正的復(fù)雜的3D模型的數(shù)據(jù)量小的多得多。
接下來(lái),我們把這個(gè)數(shù)據(jù)傳給圖形芯片。圖形芯片內(nèi)部的引擎將這個(gè)數(shù)據(jù)附加在恐龍頭部的表面。根據(jù)矩陣中的每個(gè)元素置決定每個(gè)點(diǎn)的高度,實(shí)現(xiàn)3D效果。注意,這是3D模型中的點(diǎn),而不是最后顯示成為2D的像素
使用置換貼圖的恐龍
最后,我們?cè)侔炎畛醯目铸堫^部貼圖貼上,就成為一個(gè)栩栩如生的恐龍頭了。
以往實(shí)現(xiàn)這樣的效果并不是采用針對(duì)頂點(diǎn)實(shí)現(xiàn)的,而是通過(guò)每個(gè)像素來(lái)完成——這就是我們熟悉的凹凸貼圖技術(shù)。
大家可能還記得在Matrox當(dāng)初推出G400的時(shí)候,其中有一項(xiàng)技術(shù)就是凹凸貼圖。這種技術(shù)和剛剛介紹的置換貼圖不同,它不改變模型,而是靠按照凹凸參數(shù)和光源方向來(lái)計(jì)算表面的亮度,從而最終模擬出凹凸的效果。<
關(guān)注我們


