梯度體紋理合成方法
2023-09-21 21:27:55 1
專利名稱:梯度體紋理合成方法
技術領域:
本發明涉及紋理合成技術領域,特別涉及一種梯度體紋理合成方法。
背景技術:
在體紋理合成領域,一個體紋理通常用三維圖像來表示,其基本單位是像素。這種表示的優點是簡單,是二維圖像的簡單推廣。但是,這種方法的缺點是數據量大,例如IOM3 的體紋理相當於IOM張10242的圖片,其合成和處理非常困難。近年來,體紋理獲得了廣泛的應用。相對於面紋理來說,體紋理能夠表示物體的內部,對於一些需要將物體模型切開的應用(例如遊戲),體紋理往往是必不可少的。但是,正如前面所說,體紋理的合成與存儲開銷非常大,以至於大家往往只使用1283的紋理塊,將其重複堆砌得到複雜的效果。這種方法的缺點是紋理的數據量大、重複度非常高,在很多例子中能觀察到重複的模板,使得視覺效果大打折扣,因而合成困難,存儲開銷大。
發明內容
(一 )要解決的技術問題本發明要解決的技術問題是如何減小體紋理的數據量,從而減小存儲開銷,使合成更容易。( 二 )技術方案為解決上述技術問題,本發明提供了一種梯度體紋理合成方法,包括以下步驟Sl 建立三維空間均勻網格結構,根據事先輸入的2D紋理圖為所述網格的頂點設置顏色和顏色梯度;S2 在所述網格的每個格子中選擇至少一個採樣點,在每個採樣點處選擇至少兩個採樣平面,採樣平面上任一點的顏色由所述採樣點所在格子的頂點的顏色和顏色梯度通過三次插值得出;S3 在所述2D紋理圖中找到與所述採樣平面最相近的紋理塊,並將所述紋理塊的像素點拷貝到相應的格子中,兩個紋理塊對應位置的像素點的顏色相減,之後計算Ll或者 L2範數,範數值越小兩個紋理塊越接近;S4 根據所述網格的各個格子中的像素點更新網格頂點的顏色和顏色梯度;S5 重複S2 S4的過程若干次,以合成梯度體紋理。其中,所述步驟Sl中,從所述輸入的2D紋理圖中隨機選擇一個顏色作為該網格的頂點的顏色。其中,所述步驟Sl中顏色梯度設置為較小的隨機數。其中,在選擇所述採樣平面前還包括輸入向量場的步驟,所述採樣平面的方向與所述向量場的方向一致。其中,所述步驟S4中更新的方式為對每個格子中的像素點按照其位置在格子的頂點處進行線性擬合,得到該頂點處的顏色值和顏色梯度。
其中,在線性擬合前對格子中的像素點進行聚類,擬合時選擇包含像素點最多的一類中的像素點進行擬合。其中,步驟S5之後還包括存儲所述體紋理的步驟,存儲時對所述網格頂點處的顏色值和顏色梯度值進行量化,且只存儲所述梯度體紋理的頂點的顏色和顏色梯度。其中,所述網格的每個格子對應d3的像素點,d為大於1的整數。其中,所述d等於4。其中,該方法進一步包括利用所述梯度體紋理進行渲染的步驟Al 將待渲染三維模型中的點對應到所述梯度體紋理的格子中;A2:根據所述格子的頂點處的顏色值和顏色梯度,通過三次插值得到三維模型中每個點的顏色。(三)有益效果本發明的方法通過建立三維均勻網格,在網格的每個格子中選擇格子總像素點數的採樣點來計算格子頂點的顏色及顏色梯度以合成體紋理,由於採樣點個數遠小于格子中對應的像素點個數且只存儲頂點的顏色及顏色梯度,因此能夠快速地合成梯度體紋理,且減小了體紋理的數據量和存儲開銷。
圖1是本發明實施例的一種梯度體紋理合成方法流程圖;圖2是採用圖1中方法合成的梯度體紋理的結果示意圖。
具體實施例方式下面結合附圖和實施例,對本發明的具體實施方式
作進一步詳細描述。以下實施例用於說明本發明,但不用來限制本發明的範圍。如圖1所示,本發明的梯度體紋理合成方法包括步驟S101,建立三維空間均勻網格結構,根據事先輸入的2D紋理圖為網格的頂點設置顏色和顏色梯度,並對格子內的點著色。均勻網格的每個格子對應d3的像素點,d為大於1的整數,優選d = 4。建立網格結構以後,需要給網格的頂點一個初始值。本實施例中, 對於每個網格頂點,從輸入的2D紋理圖中隨機選擇一個顏色作為該網格的頂點的顏色,由於梯度過大可能會出來一些奇怪的顏色,因此該網格的頂點的顏色梯度則設置為0 1之間的一個隨機數。步驟S102,在上述建立的網格的每個格子中隨機選擇至少3個採樣點,在每個採樣點處選擇至少2個採樣平面。其中,採樣平面的大小通常為11X11的像素塊。為了使合成出的三維紋理在2 3個切面上都能和原2D紋理圖保持一致,效果較好,優選地,用戶事先輸入向量場,採樣平面的法線方向與該向量場一致。採樣平面上每個點處的顏色根據採樣點所在格子頂點的顏色值和顏色梯度通過三次插值給出,一個格子的頂點是8個,具體採用三維埃爾米特插值。採樣點的位置是稀疏的,隨機分布在均勻網格中,遠少於網格所對應像素點的個數,因此加快了合成速度。步驟S103,在原2D紋理圖中找到與採樣平面最相近的紋理塊,並將該紋理塊的像素點拷貝到相應的格子中。將兩個紋理塊對應位置的像素點的顏色相減,然後計算Ll或L2範數,範數值越小兩個紋理塊越接近。步驟S104,根據網格的各個格子中的像素點更新網格頂點的顏色和顏色梯度。更新過程如下對每個格子中的像素點按照其位置在格子的頂點處進行線性擬合,得到該頂點處的顏色值和顏色梯度,並存儲頂點處的顏色值和顏色梯度。如果格點附近的像素點很多,為了防止過擬合,則需要對這些像素點進行聚類(如mean shift聚類方法或者簡單地按顏色將像素點放到η個桶中,然後取像素點最多的那個桶),選擇最大的一類進行擬合,而丟棄其它的像素點,通過這種方法,可以防止顏色過於平均。在獲得頂點處地顏色和梯度後, 這些像素點就可以丟棄,以節省合成過程中的內存空間。重複步驟執行S102 S104若干次,一般來說,次數重複越多,獲得的梯度體紋理的效果越好,但是速度也會慢一些。優選地,需要重複2 3次即可,以獲得良好的效果,而且速度也不會慢。在存儲梯度體紋理時,只存儲網格頂點處的顏色和顏色梯度,且對網格頂點處的顏色和顏色梯度值進行量化,例如顏色範圍是在0 1之間,就用一個0 255的數來表達,i表示i/255. 0,0 ^ i ^ 255表示,以減少顯存的佔用。圖2是採用圖1中方法合成的梯度體紋理的結果示意圖,左邊是輸入的紋理圖,右邊是輸出的梯度體紋理。本發明還提供了應用上述梯度體紋理進行渲染的方法。在獲得梯度體紋理後,可以將其用於渲染。例如要渲染一個三維模型,將待渲染三維模型中的點對應到梯度體紋理的格子中,具體將該三維模型放入梯度體紋理對應的三維空間,那麼三維模型中的點就會分布在梯度體紋理的每個格子中。根據所述格子的頂點處的顏色值和顏色梯度,通過三維埃爾米特插值得到三維模型中每個點的顏色。以上實施方式僅用於說明本發明,而並非對本發明的限制,有關技術領域的普通技術人員,在不脫離本發明的精神和範圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬於本發明的範疇,本發明的專利保護範圍應由權利要求限定。
權利要求
1.一種梯度體紋理合成方法,其特徵在於,包括以下步驟Sl 建立三維空間均勻網格結構,根據事先輸入的2D紋理圖為所述網格的頂點設置顏色和顏色梯度;S2:在所述網格的每個格子中選擇至少一個採樣點,在每個採樣點處選擇至少兩個採樣平面,採樣平面上任一點的顏色由所述採樣點所在格子的頂點的顏色和顏色梯度通過三次插值得出;53在所述2D紋理圖中找到與所述採樣平面最相近的紋理塊,並將所述紋理塊的像素點拷貝到相應的格子中,兩個紋理塊對應位置的像素點的顏色相減,之後計算Ll或者L2範數,範數值越小兩個紋理塊越接近;54根據所述網格的各個格子中的像素點更新網格頂點的顏色和顏色梯度;55重複S2 S4的過程若干次,以合成梯度體紋理。
2.如權利要求1所述的梯度體紋理合成方法,其特徵在於,所述步驟Sl中,從所述輸入的2D紋理圖中隨機選擇一個顏色作為該網格的頂點的顏色。
3.如權利要求1所述的梯度體紋理合成方法,其特徵在於,所述步驟Sl中顏色梯度設置為較小的隨機數。
4.如權利要求1所述的梯度體紋理合成方法,其特徵在於,在選擇所述採樣平面前還包括輸入向量場的步驟,所述採樣平面的方向與所述向量場的方向一致。
5.如權利要求1所述的梯度體紋理合成方法,其特徵在於,所述步驟S4中更新的方式為對每個格子中的像素點按照其位置在格子的頂點處進行線性擬合,得到該頂點處的顏色值和顏色梯度。
6.如權利要求5所述的梯度體紋理合成方法,其特徵在於,在線性擬合前對格子中的像素點進行聚類,擬合時選擇包含像素點最多的一類中的像素點進行擬合。
7.如權利要求1所述的梯度體紋理合成方法,其特徵在於,步驟S5之後還包括存儲所述體紋理的步驟,存儲時對所述網格頂點處的顏色值和顏色梯度值進行量化,且只存儲所述梯度體紋理的頂點的顏色和顏色梯度。
8.如權利要求7所述的梯度體紋理合成方法,其特徵在於,所述網格的每個格子對應 d3的像素點,d為大於1的整數。
9.如權利要求8所述的梯度體紋理合成方法,其特徵在於,所述d等於4。
10.如權利要求1 9中任一項所述的梯度體紋理合成方法,其特徵在於,該方法進一步包括利用所述梯度體紋理進行渲染的步驟Al 將待渲染三維模型中的點對應到所述梯度體紋理的格子中;A2 根據所述格子的頂點處的顏色值和顏色梯度,通過三次插值得到三維模型中每個點的顏色。
全文摘要
本發明公開了一種梯度體紋理合成方法,涉及紋理合成技術領域,該方法包括S1建立三維空間均勻網格結構,根據事先輸入的2D紋理圖為網格的頂點設置顏色和顏色梯度;S2在網格的每個格子中選擇至少一個採樣點,在每個採樣點處選擇至少兩個採樣平面,採樣平面上任一點的顏色由採樣點所在格子的頂點的顏色和顏色梯度通過三次插值得出;S3在2D紋理圖中找到與採樣平面最相近的紋理塊,並將紋理塊的像素點拷貝到相應的格子中;S4根據網格的各個格子中的像素點更新網格頂點的顏色和顏色梯度;S5重複S2~S4的過程若干次,以合成梯度體紋理。採用本發明的方法合成體紋理,能夠快速地合成梯度體紋理,且減小了體紋理的數據量和存儲開銷。
文檔編號G06T15/04GK102298791SQ201110289079
公開日2011年12月28日 申請日期2011年9月26日 優先權日2011年9月26日
發明者張國鑫, 胡事民 申請人:清華大學