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


