桂 彥, 王培玉, 李 峰, 劉 楊
(1. 長沙理工大學 綜合交通運輸大數(shù)據(jù)智能處理湖南省重點實驗室, 湖南 長沙 410114;2. 長沙理工大學 計算機與通信工程學院, 湖南 長沙 410114)
表1 幾何紋理合成耗時統(tǒng)計
表2 幾何紋理合成各階段的耗時統(tǒng)計
?
基于GPU加速的幾何紋理合成方法
桂 彥1,2, 王培玉1,2, 李 峰1,2, 劉 楊1,2
(1. 長沙理工大學 綜合交通運輸大數(shù)據(jù)智能處理湖南省重點實驗室, 湖南 長沙 410114;2. 長沙理工大學 計算機與通信工程學院, 湖南 長沙 410114)
提出了一種基于GPU加速的幾何紋理合成方法,以解決幾何紋理合成過程中高計算量、高存儲占用和高耗時等問題.首先,對樣本幾何紋理數(shù)據(jù)進行子塊劃分,并根據(jù)子塊在樣本中的位置關系設計可重用樣本頂點數(shù)據(jù)的數(shù)據(jù)結構,優(yōu)化存儲以降低內(nèi)存的占用率;然后,采用GPU多線程并發(fā)技術設計并行加速算法,將串行的幾何紋理合成過程并行化,從而實現(xiàn)快速生成任意尺寸的新的幾何紋理.實驗結果表明,該算法不僅占用存儲較少,而且在保證合成質量的同時極大地降低了幾何紋理的合成耗時.
紋理合成;幾何紋理合成;虛擬現(xiàn)實;GPU加速;并行運算
紋理合成和紋理映射是計算機虛擬現(xiàn)實的主要技術,能夠模擬物體表面的顏色細節(jié)或幾何細節(jié),從而大幅度增強場景的真實感.基于樣圖的紋理合成技術[1-6],合成速度較快,內(nèi)存占用小,但其效率的提升是以降低繪制精度為代價的,且圖像紋理不支持遮擋、陰影、輪廓等重要的效果.近幾年,研究者們提出了采用幾何紋理代替圖像紋理來表示物體的表面細節(jié),從而進一步提高了繪制的精度.幾何紋理具有更豐富、細致的表現(xiàn)能力,隨著顯卡硬件的提升,幾何紋理在虛擬現(xiàn)實技術中得到了廣泛應用.幾何紋理和圖像紋理一樣都具有自相似性,但幾何紋理是由不規(guī)則拓撲連接的網(wǎng)格構成的,因此其數(shù)據(jù)結構比圖像紋理更為復雜,所以在合成過程中往往需要大量人工交互才能得到較理想的合成結果.同時,基于全局鄰域搜索的幾何紋理合成方式,使得幾何紋理合成過程中普遍存在高計算量、高存儲占用等問題.因而,自動、快速和高效的幾何紋理合成成為幾何紋理是否能夠得到廣泛應用的關鍵.
近年來,隨著計算機硬件技術的飛速發(fā)展,圖形處理單元GPU的計算能力呈幾何級數(shù)增長,促使通用工程計算軟件由CPU中央處理向CPU/GPU協(xié)同處理的方向發(fā)展.GPU具有出色的圖元運算能力、浮點計算能力、低能耗高帶寬、可靠的并行架構以及靈活的可編程性,為解決幾何紋理合成中的計算瓶頸提供了可靠的現(xiàn)實基礎.本文提出了一種新的基于GPU加速的幾何紋理合成方法,該方法基于塊的幾何紋理合成方法,引入GPU多線程并發(fā)技術,通過將最佳幾何子塊匹配和幾何子塊拼接等移植到GPU上執(zhí)行,從而加快幾何紋理合成速度,高效合成大尺寸的新的幾何紋理.本文方法不僅內(nèi)存占用更少,而且在保證合成質量的同時,可顯著提高幾何紋理的合成速度.
2007年QIN等[7]提出了一種歐拉3D紋理的合成方法.通過構建輸入樣本的歐拉矩陣,將輸入樣本按照矩陣中元素的順序排列,以生成體紋理,亦作歐拉3D紋理.該方法在進行紋理合成時無須人工干預,是一種全自動的體紋理合成方法,但由于無法很好地解決歐拉矩陣中體素的色彩更新問題,容易產(chǎn)生比較明顯的縫隙.2008年,嚴志程等[8]提出了一種基于方向場的體紋理合成方法.在輸入的體素樣本中搜索鄰域,優(yōu)化鄰域匹配算法逐個合成體素;在匹配體素樣本像素鄰域和體素鄰域時,通過考慮各體素上的方向能夠生成各向異性體紋理.2010年,PIETRONI等[9]提出了在三維模型表面上合成體數(shù)據(jù)的方法.同年,WANG等[10]提出了新的體紋理合成方法,即采用一個隨機向量表示體素與體素之間具有平滑顏色過渡的混合重疊區(qū)域,并對此向量按照待合成體紋理的體積進行分區(qū),通過定義分區(qū)之間的顏色距離公式,以合成新的體紋理.2011年,江巨浪等[11]提出了一種基于二維樣圖的體紋理快速生成算法,根據(jù)紋理的空間分布特征,設計二維樣圖在三維空間中的運動路徑,然后使樣圖中的像素通過其運動軌跡對三維空間著色生成體紋理空間,最終合成體紋理.該方法僅對大理石和木材紋理有著較好的合成效果,無法通用.上述方法[7-11]的合成速度較快,但由于大多體素結構過于簡單且內(nèi)容單一,合成結果缺乏豐富和細致的表現(xiàn)力,因此研究者們提出了采用幾何體代替體素合成幾何紋理.
2004年,BHAT等[12]首次提出了一種基于幾何體的幾何紋理合成方法.該方法主要借鑒三維模型表面上二維紋理合成的方法,采用幾何體取代二維紋理中的像素單位,通過相鄰區(qū)域局部體素的三維空間坐標值構建相鄰關系,結合網(wǎng)格編輯技術生成新的幾何紋理.該方法需要大量的人工交互,且耗時較長.2006年,ZHOU等[13]提出了基于網(wǎng)格縫合(Mesh Quilting)在曲面上合成幾何紋理的方法.該方法是Image Quilting在三維上的拓展,通過距離能量公式標定幾何紋理塊之間的相似度,作為鄰域匹配的度量單位,以此找到最佳匹配輸出;最后采用Graph Cut方法在幾何紋理塊之間找到一條最佳分割路徑,并結合網(wǎng)格編輯技術合成新的幾何紋理.該方法具有很好的適用性,但是在模型表面進行合成時耗時較長.2009年,韓建偉等[14]提出了三維曲面上基于Wang Tiles的幾何紋理合成方法.該方法根據(jù)給定的幾何紋理預計算一組Wang Tiles,然后在不同的Polycube化的目標物體上用其即時生成新的幾何紋理.該方法生成的幾何紋理中,Wang Tiles可以重用到不同的目標物體上,同時占用的存儲空間及計算量更小,速度更快.但是模型參數(shù)化和幾何紋理映射到模型表面上亦需要大量的人工交互,而且,該方法不適用于結構不規(guī)整的幾何紋理.2011年,MA等[15]提出一種基于離散元素的幾何紋理合成方法,該方法是由幾何紋理數(shù)據(jù)驅動的.通過對幾何紋理樣本中每個元素的位置、大小、形狀、方向等信息進行編碼,對于給定的幾何紋理合成空間,該方法采用基于樣本的鄰域相似性度量和能量優(yōu)化求解器來合成所需的輸出.2012年,MA等[16]提出了另一種動態(tài)元素紋理的幾何紋理合成方法,用于合成具有運動效果的幾何紋理.由于該類方法是由幾何紋理數(shù)據(jù)驅動的,所以只能針對特定幾何紋理合成到特定的輸出空間上,具有一定的局限性.2013年,ALMERAJ等[17]提出了基于塊的幾何紋理合成方法,該方法僅適用于樣本中元素是離散排列的幾何紋理合成,并且合成結果容易出現(xiàn)較大裂縫.
上述紋理合成方法均無法避免合成過程中的高計算量、高內(nèi)存占用和高耗時等問題,因此,有學者提出使用GPU加速幾何紋理合成過程,以解決合成過程中產(chǎn)生的海量計算問題,文獻[18]提出了一種采用GPU加速網(wǎng)格節(jié)點著色合成肝臟體紋理的合成方法.然而,現(xiàn)有幾何紋理合成算法都比較復雜,無法很好地將算法并行化,使得目前基于GPU的相關研究仍較少.本文結合文獻[13]和[17]的基本思想,提出了一種基于GPU的幾何紋理合成算法.GPU并行多線程技術可加速幾何紋理的合成,同時該方法適用于處理多種類型的樣本幾何紋理,具有較好的通用性.
現(xiàn)有的基于塊的幾何紋理合成方法將整個樣本幾何紋理作為輸入,通過求得相似度量能量公式最優(yōu)解獲得紋理塊之間的最佳放置位置,進而采用網(wǎng)格編輯技術將紋理塊進行融合拼接,以合成大尺寸的幾何紋理.其核心是對樣本塊之間重疊區(qū)域的幾何相似進行全局搜索,得到最優(yōu)匹配,但是全局搜索范圍受限于樣本幾何紋理的尺寸.因此,合成結果會存在較大的空隙(離散型幾何紋理),或者出現(xiàn)局部無法對齊(連通型幾何紋理)等問題.
本文提出了一種基于GPU的幾何紋理合成算法,見圖1,該算法以光柵掃描的方式進行幾何紋理合成.通過網(wǎng)格化樣本幾何紋理進行子塊劃分,此時樣本子塊作為合成的基本單位,擴充了搜索匹配的全局空間,進而能夠得到更好的合成結果.其子塊劃分雖然能夠得到較好的合成結果,但鄰域搜索匹配過程中的計算量將急劇增加,使得幾何紋理合成過程耗時更長.因此,引入GPU并行處理技術,將計算量最大的最佳幾何子塊匹配和幾何子塊拼接進行并行處理,通過采用多線程并發(fā)技術處理這兩部分產(chǎn)生的海量計算,從而大幅提高幾何紋理的合成速率.
圖1 基于GPU的幾何紋理合成算法流程圖Fig.1 An algorithm flow chart for GPU-based geometry texture synthesis
2.1 樣本幾何紋理預處理
給定一個包圍盒大小為lin×win×hin的樣本幾何紋理Min={Vin,Fin},其中Vin是頂點集合;Fin是面片集合;lin,win和hin分別表示Min的長度、寬度和高度(厚度).輸出的是一個大小為lout×wout×hout的新的幾何紋理Mout,其中l(wèi)out,wout和hout分別為合成幾何紋理的長度、寬度和高度.按輸入樣本的lin和win將樣本幾何紋理Min等分為m×n的網(wǎng)格Gridin={Xin,Yin,Cell},在幾何紋理合成過程中就可以不考慮樣本幾何紋理的高度(厚度,hin),其中Xin,Yin為Cell在Gridin的位置;Cell={V,F}為網(wǎng)格單元內(nèi)頂點數(shù)據(jù)和面片的集合,即包含所有樣本幾何子塊.類似地,合成結果Mout劃分為Gridout={Xout,Yout,Cell},并要求Min與Mout是具有相同大小的Cell.需要指出的是,本文算法要求事先指定Mout的尺寸.
由于對樣本幾何紋理進行了網(wǎng)格化處理,因此,本文算法只需通過訪問Cell的位置坐標即可快速讀取樣本幾何紋理中任意位置的幾何子塊數(shù)據(jù),加快數(shù)據(jù)存取的速度.另外,根據(jù)幾何子塊分別在Gridin和Gridout中的相對空間關系,算得將Gridin中的Cell平移到Gridout中指定位置的平移向量T,平移后的Cell表示為Cell′=Cell{Vin·T,Fin}.雖然Cell與Cell′的主要區(qū)別在于空間位置,但是Cell′可以和Cell共享頂點、面片和材質等數(shù)據(jù),因而不需要給Cell′分配額外的空間保存頂點、面片和材質等數(shù)據(jù).同樣,可對Gridout中所有已填充的Cell做相同的處理.通過建立Gridin和Gridout之間的頂點、面片和材質等數(shù)據(jù)的共享機制,將樣本數(shù)據(jù)拷貝至GPU顯存后進行數(shù)據(jù)共享,因此不再需要額外的CPU和GPU的數(shù)據(jù)交換,從而有效地減少了CPU與GPU之間的數(shù)據(jù)交互量.
2.2 最佳匹配幾何子塊查找
以光柵掃描的方式進行幾何紋理合成,在樣本紋理中首先隨機選取一個子塊填充到合成輸出空間的初始位置,而與其相鄰的未填充Cell(即當前待合成區(qū)域)定義為種子區(qū)域Seed.然后取與Seed相鄰的已合成Cell的邊界區(qū)域作為后續(xù)幾何結構相似性度量的匹配區(qū)域Pout,Pout的寬度在本文所有實驗中設置為Cell寬度的10%.將Pout沿水平方向或垂直方向,以Pout的寬度為單位在Min中進行平移,在樣本幾何紋理中進行最佳匹配幾何子塊查找,Pout每次平移后與Min重疊的區(qū)域標記為Pin(t).此時,Pin(t)是與Pout具有相同大小的區(qū)域.由于本文僅將Pout的移動范圍限定在Min內(nèi),因此需要在Min中找到具有最優(yōu)相似度匹配的平移量t,此時的Pin(t)即為最佳匹配的幾何子塊.在本文方法中,度量Pout與Pin(t)之間幾何結構相似程度的公式定義如下:
(1)
(2)
(3)
當Pout與Pin(t)之間的相似度誤差E(t)為最小時,認為該重疊區(qū)域中的幾何結構是最相似的.然后在樣本幾何紋理中取包含Pin(t)的幾何子塊mout(除重疊區(qū)域且與當前所選Cell相同的部分)放到Seed所在的位置,合成區(qū)域順延至下一個Cell.
2.3 幾何子塊拼接
(4)
(5)
(6)
(7)
(8)
圖2 幾何子塊拼接Fig. 2 Geometric patches merging
2.4 GPU并行設計與實現(xiàn)
在進行GPU并行程序設計之前,首先需要明確在串行算法中可被并行化的部分,即原始算法中具有并發(fā)性的步驟.判斷是否具有并發(fā)性的主要依據(jù):多個計算步驟之間互不干擾、沒有共享數(shù)據(jù)操作.
根據(jù)上述準則對合成過程進行分析,發(fā)現(xiàn)最佳幾何子塊查找和幾何子塊拼接的內(nèi)部步驟可以進行并行化處理,但是最佳子塊查找和幾何子塊拼接存在順序依賴,因此僅分別對上述2個步驟進行并行化.為方便程序實現(xiàn),本文將算法中可并行的部分進行分解,分解后的操作簡單地采用矩陣表示,其中矩陣中元素的個數(shù)即為線程并發(fā)量的數(shù)目,即為矩陣中每個元素都申請一個線程處理其中的操作.本文對計算量進行了預估,線程并發(fā)量以萬為單位,下文將進行具體描述.
2.4.1 并行的最佳幾何子塊查找
(9)
實際上,每次平移后幾何結構相似性度量的計算都是互不依賴的.因此,對幾何紋理合成過程中窮盡的最佳匹配幾何子塊查找,同樣可進行并行化處理,并行矩陣M描述為:
(10)
其中:h為Min網(wǎng)格化后Cell的行數(shù);k為Min網(wǎng)格化后Cell的列數(shù);M中第i行第j列元素M(i,j)=E(ti,j)為Pout與Min中第i行第j列Pin(ti,j)的相似度誤差.經(jīng)并行計算后,M中具有最小值的元素即為最小相似誤差,其下標為Min中對應Pin(ti,j)的下標,以此Pin(ti,j)為起始邊界的樣本幾何子塊,即從Min中找到的最佳匹配幾何子塊mout.
2.4.2 并行的幾何子塊拼接
在2.3節(jié)中,幾何結構對齊關系集S的優(yōu)化過程實質是進行對齊關系判別,這種關系判別相互之間互不影響,因此亦能采用GPU技術進行并行化處理.在相似度誤差矩陣ME的基礎上構建幾何結構對齊矩陣MS:
(11)
2.3節(jié)中幾何子塊對齊區(qū)域變形過程中形變坐標計算時互不依賴,因此式(4)和(5)同樣可采用GPU技術進行并行化處理,從而快速計算Pout和Pin(t)∈mout各個頂點的形變坐標.需要指出的是,在進行變形之前需要先計算每個點的拉普拉斯坐標.另外,Pout和Pin(t)∈mout的形變坐標并行計算過程完全一致,主要區(qū)別在于式(6)和(7)用于計算變形誤差值.并行化的變形矩陣Mw描述為:
(12)
最后,通過并行的Graph Cut[21]在Pout和mout之間找到最優(yōu)拼接路徑,并采用YU等[20]的方法將Pout和mout拼接成一個整體,以此保持幾何紋理合成結果結構的完整性和連續(xù)性.
在Windows8.1下用VS2013、OpenGL、CUDA6.5實現(xiàn)了本文的算法,運行環(huán)境是2.5 GHz的Intel(R)Core(TM)I5-3230M CPU、4G內(nèi)存,顯卡NVIDIA GT750M,384個流處理器,2 G顯存,0.97 GHz GPU,計算能力3.0.分別從幾何紋理的合成效果和合成耗時上驗證算法的可行性.
圖3給出的是本文方法與現(xiàn)有幾何紋理合成方法的比較.其中,第1列為樣本幾何紋理;第2列為所比較方法合成的幾何紋理結果;最后1列為使用本文方法合成的幾何紋理結果.由圖3(b1),文獻[17]的合成結果在去除重疊區(qū)之后,需要對紋理中的元素進行旋轉,這將導致紋理內(nèi)部元素分布不均勻,元素排列不緊湊,出現(xiàn)比較大的縫隙和空洞,并且局部破壞了樣本的幾何結構.本文方法元素排列緊湊有致,很好地保存了樣本幾何的結構特征,合成結果更飽滿.文獻[16]的合成結果排列緊湊有序,但破壞了樣本的結構特征,與樣本不具有自相似性;本算法元素的排列亦緊湊有序,并且保存了樣本的幾何特征.需要指出的是,文獻[16-17]僅適用于內(nèi)部元素離散排列的幾何紋理,具有較大的局限性.相較于文獻[16-17],本算法對內(nèi)部元素離散排列的幾何紋理具有更好的合成效果.
圖3中(b3)、(c3)為本文算法和文獻[13]合成結果對比圖,文獻[13]的合成結果中縫合拼接處產(chǎn)生了比較明顯的變形,使得合成結果不自然,這主要是因為文獻[13]的方法以樣本塊作為拼接單位,使得全局搜索范圍相對較小,同時塊與塊之間在較大區(qū)域范圍內(nèi)進行對齊,在進行樣本塊對齊和變形時無法取得較好的變形效果,令合成結果不理想.另外,該方法對內(nèi)部元素排列不規(guī)則的樣本(楓葉)無法取得較好的合成結果.而本文方法通過對樣本幾何紋理進行幾何子塊細分,并以幾何子塊作為合成的基本單元,擴大了最佳幾何子塊匹配全局搜索范圍,縮小了幾何結構對齊的區(qū)域范圍,從而取得了較好的變形結果,使得合成結果更加平滑自然,合成效果更好.圖4給出了更多的幾何紋理合成結果.
圖3 幾何紋理合成效果比較Fig. 3 Comparisons on the results of geometric texture synthesis
圖4 更多幾何紋理合成效果Fig. 4 More results for geometric texture synthesis
表1對本文方法和文獻[13,16-17]中的方法在合成耗時上進行了統(tǒng)計.由表1可知,上述方法合成一個2倍大小的幾何紋理所花的時間基本相當,約為5 min,而本算法合成同樣大小的幾何紋理只需約20 s,合成速度提高了近20倍.如果采用更高性能的硬件,合成速度將會進一步提高.同時,實驗發(fā)現(xiàn),幾何元素離散分布且排列規(guī)則有序的樣本幾何紋理,其合成速度要明顯快于結構復雜、元素排列無規(guī)則的編織網(wǎng)樣本幾何紋理.表1給出了楓葉樣本的合成時間,其面片數(shù)和頂點數(shù)明顯多于編織網(wǎng)樣本,但花費的時間卻要少于編織網(wǎng)樣本.這是因為在進行樣本塊拼接時,花費了大量時間對結構復雜、元素排列無規(guī)則的編織網(wǎng)樣本進行幾何塊或幾何子塊變形.為了驗證上述結論,對幾何紋理合成過程各個階段的耗時進行了統(tǒng)計(見表2).
表1 幾何紋理合成耗時統(tǒng)計
Table 1 Running time statistics for the methods of geometric texture synthesis
從表2中給出的統(tǒng)計數(shù)據(jù)可以看出,對于頂點和面片數(shù)據(jù)較多的樣本(楓葉),在幾何子塊匹配階段耗時較多;內(nèi)部元素具有連通性的幾何紋理樣本(編織環(huán)、編織網(wǎng))在幾何子塊拼接階段的耗時要大于內(nèi)部元素離散分布的幾何紋理樣本(楓葉);內(nèi)部元素連通且排序不規(guī)則的幾何樣本紋理(編織網(wǎng))的幾何拼接耗時要大于內(nèi)部元素連通且規(guī)則排列的樣本幾何紋理(編織環(huán)).由此可見,在合成過程中,合成結果和樣本幾何紋理共享樣本的頂點數(shù)據(jù),因不需要增加保存頂點數(shù)據(jù)的額外內(nèi)存,不僅降低了內(nèi)存占用,而且降低了CPU并加快了GPU的數(shù)據(jù)交互量.另外,GPU并行處理可有效加快幾何紋理合成過程,提高合成速度.因此,相較于現(xiàn)有的基于塊的幾何紋理合成方法,本算法在保證合成質量的同時,大幅度提高了幾何紋理的合成速度.
表2 幾何紋理合成各階段的耗時統(tǒng)計
Table 2 The running time statistics for two main phases of our method
現(xiàn)有方法在幾何紋理合成過程中存在高計算量、高存儲占用和高耗時等問題.本文提出了一種基于GPU加速的幾何紋理合成方法.該算法可重用樣本頂點數(shù)據(jù)的數(shù)據(jù)結構,優(yōu)化存儲以降低內(nèi)存的占用率.通過對樣本幾何紋理進行子塊劃分,增大了鄰域全局搜索匹配的范圍;通過采用GPU多線程并發(fā)技術,設計了GPU并行加速算法,以加快幾何紋理合成速度,最終能夠快速高效生成新的且任意大尺寸的幾何紋理.本文主要研究由小尺寸幾何紋理樣本生成大尺寸的幾何紋理,將生成的大尺寸幾何紋理快速高效地映射到具體的模型表面,有待進一步討論.
[1] EFROS A A, LEUNG T K. Texture synthesis by non-parametric sampling[J]. IEEE International Conference on Computer Vision,1999:1033-1038.
[2] WEI L Y, LEVOY M. Fast texture synthesis using tree-structured vector quantization[C]// Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques.New York: ACM Press, 2000:479-488.
[3] EFROS A A, FREEMAN W T. Image quilting for texture synthesis and transfer[J]. Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques, 2001:341-346.
[4] KWATRA V, SCH?DL A, ESSA I, et al. Graphcut textures: Image and video synthesis using graph cuts[J]. ACM Transactions on Graphics,2003,22(3):277-286.
[5] COHEN M F, SHADE J, HILLER S, et al. Wang tiles for image and texture generation[J]. ACM Transactions on Graphics,2003,22(3):287-294.
[6] 張軍,朱為,黃偉強.一種新的結構自適應紋理合成算法[J].小型微型計算機系統(tǒng),2011,32(2):351-355. ZHANG Jun, ZHU Wei, HUANG Weiqiang. Novel structure adaptive algorithm for texture synthesis[J]. Journal of Chinese Computer Systems,2011,32(2):351-355.
[7] QIN X, YANG Y H. Aura 3D textures[J]. IEEE Transactions on Visualization & Computer Graphics,2007,13(2):379-389.
[8] 嚴志程,陳為.基于二維紋理樣本的方向場引導的體紋理合成[J].計算機輔助設計與圖形學學報,2008,20(9):1104-1109. YAN Zhicheng, CHEN Wei. Vector field guided solid texture synthesis from 2D example[J]. Journal of Computer-Aided Design & Computer Graphics,2008,20(9):1104-1109.
[9] PIETRONI N, CIGNONI P, OTADUY M, et al. Solid-texture synthesis: A survey[J]. IEEE Engineering in Medicine & Biology Magazine the Quarterly Magazine of the Engineering in Medicine & Biology Society,2010,30(4):74-89.
[10] WANG L, ZHOU K, YU Y, et al. Vector solid textures[J]. ACM Transactions on Graphics,2010,29(4):1-8.
[11] 江巨浪,薛峰,鄭江云,等.一種基于樣圖的體紋理快速生成算法[J].計算機輔助設計與圖形學學報,2011,23(8):1311-1318. JIANG Julang, XUE Feng, ZHENG Jiangyun, et al. A fast algorithm for solid texture generation from 2D sample[J]. Journal of Computer-Aided Design & Computer Graphics,2011,23(8):1311-1318.
[12] BHAT P, INGRAM S, TURK G. Geometric texture synthesis by example[J]. Eurographics Symposium on Geometry Processing,2004:43-46.
[13] ZHOU K, HUANG X, WANG X, et al. Mesh quilting for geometric texture synthesis [J]. ACM Transactions on Graphics, 2006,25(3):690-697.
[14] 韓建偉,王青,周昆,等.基于WangTiles的幾何紋理合成[J].軟件學報,2009,20(12):3254-3264. HAN Jianwei, WANG Qing, ZHOU Kun, et al. Wang Tiles based geometric texture synthesis[J]. Journal of Software,2009,20(12):3254-3264.
[15] MA C, WEI L Y, TONG X. Discrete element textures[J]. ACM Transactions on Graphics,2011,30(4):76-79.
[16] MA C, WEI L Y, LEFEBVRE S, et al. Dynamic element textures[J]. ACM Transactions on Graphics,2013,32(4):96.
[17] ALMERAJ Z, KAPLAN C S, ASENTE P. Patch-based geometric texture synthesis[C]// Proceedings of the Symposium on Computational Aesthetics. New York:ACM,2013:15-19.
[18] 陳國棟,何漢鑫.CUDA加速的肝臟體紋理合成與映射方法研究[J].系統(tǒng)仿真學報,2015,27(6):1280-1287. CHEN Guodong, HE Hanxin. Research of liver solid texture synthesis and mapping method with CUDA acceleration[J]. Journal of System Simulation,2015,27(6):1280-1287.
[19] KWATRA V, SCH?DL A, ESSA I, et al. Graphcut textures: Image and video synthesis using graph cuts[J]. ACM Transactions on Graphics,2003,22(3):277-286.
[20] YU Y, ZHOU K, XU D, et al. Mesh editing with poisson-based gradient field manipulation[J]. ACM Transactions on Graphics,2004,23(3):641-648.
[21] VINEET V, NARAYANAN P J. CUDA cuts: Fast graph cuts on the GPU[C]// IEEE Computer Society Conference on Computer Vision & Pattern Recognition Workshops. Anchorage:IEEE Computer Society,2008:1-8.
GUI Yan1,2, WANG Peiyu1,2, LI Feng1,2, LIU Yang1,2
(1.HunanProvincialKeyLaboratoryofIntelligentProcessingofBigDataonTransportation,ChangshaUniversityofScienceandTechnology,Changsha410114,China; 2.SchoolofComputerandCommunicationEngineering,ChangshaUniversityofScienceandTechnology,Changsha410114,China)
GPU-based geometry texture synthesis. Journal of Zhejiang University(Science Edition), 2016,43(6):638-646
A geometry texture synthesis method based on GPU technique is proposed to solve the problems of high computation, high memory occupancy, and high time consuming in synthesis process. Firstly, the geometry texture sample can be divided into sub-blocks, and the data structure reusing the vertex data of the geometry texture sample is designed according to the positions of these sub-blocks in the geometry texture sample, in that the storage optimization can reduce the memory occupancy rate. Then, based on multithreaded GPU technique, we design parallel acceleration algorithm, and develop the sequential geometry texture synthesis in parallel, which can generate a new synthesized geometry texture with arbitrary sizes fastly and efficiently. The experimental results show that our algorithm not only can use less memory, but also can greatly reduce the time consuming for geometric texture synthesis and guarantee the quality of the synthesize geometry texture.
texture synthesis; geometry texture synthesis; virtual reality; GPU acceleration; parallel operation
2016-07-15.
國家自然科學基金青年科學基金資助項目(61402053).
桂 彥(1985-),ORCID:http://orcid.org/0000-0001-8323-4571,女,博士,講師,主要從事計算機圖形學、計算機視覺、可視媒體編輯與處理等研究,E-mail:guiyan122@163.com.
10.3785/j.issn.1008-9497.2016.06.003
TP 391.41
A
1008-9497(2016)06-638-09