紋素
![一組紋素組成的沃羅諾伊多邊形。](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/VoronoiPolygons.jpg/220px-VoronoiPolygons.jpg)
![兩種不同的投射方式。](http://upload.wikimedia.org/wikipedia/commons/thumb/8/81/ProjectorFunc1.png/220px-ProjectorFunc1.png)
紋素(英語:Texel,即texture element或texture pixel的合成字)是紋理元素的簡稱,它是計算機圖形紋理空間中的基本單元[1]。如同圖像是由像素排列而成,紋理是由紋素排列表示的。
紋素可以由圖像範圍來定義,其範圍可以通過一些簡單的方法來獲取,比如閾值。沃羅諾伊分布可以用來描述紋素之間的空間關係。這就意味著我們可以通過將紋素與其周圍的紋素圖心的連線的垂直平分線將整個紋理分割成連續的多邊形。結果就是每一個紋素圖心都會有一個沃羅諾伊多邊形將其圈起來。
在對三維表面鋪設紋理的時候,通過紋理映射技術將紋素映射到恰當的輸出圖像像素上。在當今的計算機上,這個過程主要是由GPU完成的。
紋理工序起始於空間中的某一位置。這個位置可以是在世界坐標系中,但是一般情況下會設定在物體坐標系中。這樣紋理會隨著物體運動。然後通過投射的方式將其位置(坐標)從三維矢量值轉化為0到1範圍的二維矢量值(即UV映射。再將這個二維矢量值與紋理的解析度相乘從而獲得紋素的位置。當所需紋素的位置不是整數的時候,需要使用材質過濾進行處理。
夾緊和包裝
「紋素」也可以通過通過簡單的過程(例如閾值)獲得的圖像區域來描述。沃羅諾伊鑲嵌可以用來定義其空間關係-部門被在由中點之間質心每一紋理像素的和用於整個紋理每周圍紋理像素的質心。這將導致每個texel質心周圍都有一個Voronoi多邊形,該多邊形由所有比其質心更近的texel質心組成。
當所需紋素位於紋理之外的時候,需要使用兩種技術的組合。「包裝」(Clamping) 將紋素限制在紋理的尺寸,當超出紋理尺寸的時候將它移到最近的位置。「夾緊」(Wrapping)將紋素移回紋理。
當請求紋理外的紋理像素時,將使用以下兩種技術之一:夾緊或包裹。夾緊將紋理像素限制為紋理大小,如果紋理紋理大於紋理大小,則將其移動到最近的邊緣。包裹將以紋理的大小為單位移動紋理像素,以使其重新回到紋理中。包裝會導致紋理重複;夾緊使它只能處於一個位置。
參見
參考文獻
- ^ Andrew Glassner, An Introduction to Ray Tracing, San Francisco: Morgan–Kaufmann, 1989