紋理技術是計算機圖形學的重要組成部分,它對於表現物體的色彩、質感有著關鍵性的作用。根據生成方法的不同可以把紋理分成表面紋理和實體紋理兩種。
基本介紹
- 中文名:實體紋理
- 外文名:Solid texture
- 套用:計算機圖形學
- 關鍵字:實體紋理、紋理合成
技術介紹,數據結構,紋理屬性,結構組織,系統實現,
技術介紹
紋理技術是計算機圖形學的重要組成部分,它對於表現物體的色彩、質感有著關鍵性的作用。根據生成方法的不同可以把紋理分成表面紋理和實體紋理兩種。
表面紋理是通過紋理映射的方法生成的,從數學上講,它是一種從二維圖像到空間曲面的映射,即把帶有材質紋路特點的平面圖像“包裹”到三維物體表面上。紋理映射技術已經發展的很成熟,套用非誠廣泛,但是它存在幾個難以克服的缺點:一是紋理拼接問題,在邊界處難以處理;二是由於平面圖像的離散性,放縮時有馬賽克現象,需要單獨處理。
實體紋理的概念最早是由於Darwyn R Peachey 和Ken Pelin 提出的。它的思路是:定義一個三維紋理空間,在其中對每種紋理的 直接建模,空間任意曲面的紋理就可以通過計算它在紋理空間的顏色來得到,就像雕刻家一樣從紋理空間中雕刻出需要的任意形狀。為了增強真實性,還用噪聲方法對紋理空間進行了擾動,使得紋理更為自然。以木頭為例,木紋石一圈圈的年輪形成的。建模時使用一組顏色深淺相間的同心圓柱作為木紋的紋理空間。與表面紋理不同,實體紋理中的紋路不是從平面圖像中得到的。而是直接由算法生成的,因此也被稱為過程性紋理。
隨著實體紋理的技術的發展,新的模型函式越來多,技巧也越來越複雜,做出的物體的紋路和質感栩栩如生,幾乎使人難以相信是計算機畫出來的。實體紋理的原理雖然簡單,但要實現一個效果豐富、易於擴展和編程的實體紋理一般採用光線追蹤算法,現有的系統有的非常龐大,實現了許多實體紋理以外的許多複雜的功能;有的採用描述場景的腳本語言作為輸入,沒有採用所見即所得的互動方式,使用很不方便;有的系統雖然簡單,但功能相對弱小。
數據結構
紋理屬性
可以按照函式的類型分為下面四中屬性。
模型屬性:描述模型函式的類型和參數,由於函式的算法已經做到程式中去了,所以模型函式類型可以用一個標識符(ID)來表示它。
變換屬性:主要包括平移、方所、旋轉參數和擾動參數。此外,如果 還有其他自定義的對空間點的位置進行變換的函式,其參數也屬於變換屬性。注意,通常都要對點做一系列的連續的變換,並且這些變換是有序的,同樣,由於變換函式的算法已經做到程式中,變換類型時也可以用一個ID來描述。
顏色映射屬性:顏色映射函式的參數是不定長的。
材質光學屬性:真實材質對光的反應主要有三種:漫反射、鏡面反射、折射。上面的方法實際上只是得到了實體紋理的固有顏色,而最終的視覺效果是在環境和燈光等因素的綜合影響下得到的。因此還需要描述這些光學因素的參數。常見的光學參數有:環境光強度、漫反射亮度、高光曲反射係數、鏡面反射光、投射參數、漫反射、鏡面反射實際上是描述材質表面的光滑程度的,通過調整可以得到金屬、塑膠等效果。
結構組織
觀察基本紋理的屬性可以看到,除了材質光學屬性是固定長度以外,其他屬性都是變長的,因此在數據結構的組織上使用了鍊表,其中第一個欄位是一個標誌欄位,用於區別不同的紋理類型。目前有三種類型:基本紋理、分層紋理和平均紋理。