許雯
【摘 要】紋理映射是真實感圖形繪制過程中重要的組成部分,本文就是對圖形學(xué)中的紋理映射的原理和紋理的分類進行了說明,并淺談了紋理映射中的關(guān)鍵技術(shù)。
【關(guān)鍵詞】圖形繪制;圖形學(xué);紋理映射
Analyses of the Texture Mapping in Graphics
XU Wen
(Xian Aeronautical University,Xian Shaanxi 710077,China)
【Abstract】Texture mapping is an important part of realistic rendering.In this paper,we introduced the principle of texture mapping and the classification of texture and discussed the key technology of texture mapping.
【Key words】Graphics rendering;Graphics;Texture mapping
0 引言
紋理映射技術(shù)是計算機圖形學(xué)的重要組成部分,它能真實地反映圖形的真實感。在現(xiàn)代生產(chǎn)中,紋理映射技術(shù)的使用范圍越來越廣,特別是在計算機制作、動畫設(shè)計、三維游戲和廣告設(shè)計領(lǐng)域上。紋理映射[1]是通過將已經(jīng)存在的紋理圖像映射到物體表面,從而實現(xiàn)為物體表面則增加表面細節(jié)的過程。
1 紋理映射
1.1 紋理映射原理
紋理映射可以分為一維、二維和三維紋理映射,其中一維紋理映射是最簡單的紋理映射,即線的映射,二維紋理映射就是對一副二維圖形的映射,三維紋理映射是將定義在二維空間的紋理映射到三維物體表面上。其中應(yīng)用最為廣泛的是二維紋理映射,下面我們將重點介紹二維紋理映射。
紋理映射的過程中涉及到各個頂點的對應(yīng)關(guān)系[2],我們相應(yīng)的建立物體坐標(biāo)系、紋理坐標(biāo)系和紋理圖像坐標(biāo)系,其中紋理坐標(biāo)的取值范圍在0.0~1.0之間。
1.2 紋理濾波技術(shù)
不同的過濾方式,它的計算復(fù)雜度和計算方式都有所不同,圖形出來的效果也有所不同。常用的簡單濾波技術(shù)有兩種,一種是Nearest Point Sampling(最近點采樣法),另外一種是Bilinear(雙線性濾波)。
最近點采樣法是速度快但是濾波效果比較差的采樣方式,它的做法是選中一個點P,這個點P不一定剛好對應(yīng)紋理的一個采樣點texel,所以它就會選擇對應(yīng)區(qū)域中最接近的texel進行采樣,也就是說它會選取橫坐標(biāo)和縱坐標(biāo)都比較靠近P點的texel作為采樣點。
雙線性過濾以pixel對應(yīng)的紋理坐標(biāo)為中心,取該紋理坐標(biāo)周圍4個texel的像素來計算該坐標(biāo)點的顏色,最簡單的方法是取其周圍4 個坐標(biāo)顏色的平均值作為采樣值,也就是會對靠近像素中心的一塊2×2的紋理單元取加權(quán)平均值。通常的方法是根據(jù)面積作為4個坐標(biāo)顏色的權(quán)重來計算該點的像素值(即紋理顏色值)。
2 紋理映射處理
2.1 對紋理坐標(biāo)的處理
對于一個二維紋理圖像來說,它的紋理坐標(biāo)值一般被限制在區(qū)間0.0~1.0之間,每個圖像的尺寸都有一個界限,對于圖像查找來說,就必須將它們的坐標(biāo)轉(zhuǎn)換到區(qū)間0.0~1.0之間。也就是說,紋理坐標(biāo)可以不用僅僅設(shè)置在區(qū)間0.0~1.0,r如果坐標(biāo)值超過這個范圍,則要對紋理坐標(biāo)超出這個范圍的值進行處理,在紋理映射中,有不同的處理方式,對S和T坐標(biāo)的處理方式如下:
1)如果選擇的處理方式為GL_REPEAT,對超過1.0的值則只取小數(shù)部分的值,整數(shù)部分的值將被忽略掉。
2)如果選擇的處理方式為GL_CLAMP,對超過1.0的值讓其等于1.0,小于0.0的值讓其等于0.0,其余的不作處理。
3)如果選擇的處理方式為GL_CLAMP_TO_BORDER,則紋理坐標(biāo)值的范圍限制在[,1-]之間,大于1-的值讓其等于1-,小于的讓其等于,其余的不作處理。
4)如果選擇的處理方式為CLAMP_TO_EDGE,則不同的濾波方式其處理方式不同,如果濾波方式為GL_LINEAR,則其處理方式和CLAMP的處理方式相同,如果濾波方式為GL_NEAREST,則紋理坐標(biāo)值的范圍限制在[,1-]之間,大于1-的值讓其等于1-,小于的讓其等于,其余的不作處理。
其中,N是這樣定義的,如果處理的是S坐標(biāo),則N就是圖像的寬度值,如果處理的是T坐標(biāo),則N就是圖像的高度值。
2.2 紋理貼圖方式的選擇
紋理貼圖方式(也就是紋理與要貼圖的物體的原頂點顏色的混合方式)有多種,分別為GL_REPLACE、GL_MODULATE、GL_BLEND、GL_DECAL、GL_ADD和GL_COMBINE(替換、調(diào)整、混合、貼花、添加和組合)。
3 結(jié)束語
本文對紋理映射算法及紋理濾波技術(shù)進行了簡要的介紹,通過對紋理坐標(biāo)的處理及貼圖方式的選擇,實現(xiàn)了紋理映射的處理。在研究圖形真實感的處理時,紋理映射處理是相當(dāng)重要的。
【參考文獻】
[1]E.A.Bier,K.R.Sloan. Two-Part TexTure Mapping[J].IEEE Computer Graphics Application,1986(6):40-5.
[2]董梁,劉海,韓俊剛.圖形處理器中光照和紋理映射的設(shè)計與仿真實現(xiàn)[J].計算機科學(xué),2011.
[3]和克智,等著.OpenGL編程技術(shù)詳解[M].化學(xué)工業(yè)出版社,2010.
[4]Donald Hearn,M.Pauline Baker,著.計算機圖形學(xué)[M].蔡士杰,宋繼強,蔡敏,譯.電子工業(yè)出版社,2010.
[5]Crow.T he Aliasing Problem in Comput er Generat ed Shaded Images[J]. CACM,1977,20(11):799-805.
[責(zé)任編輯:田吉捷]