基于gpu的實(shí)時毛筆墨水?dāng)U散模型并行實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開了一種基于GPU的實(shí)時毛筆墨水?dāng)U散模型并行實(shí)現(xiàn)方法,用于解決現(xiàn)有毛筆墨水?dāng)U散模型實(shí)時性差的技術(shù)問題。技術(shù)方案是通過網(wǎng)格化受墨區(qū)域含墨頂點(diǎn)集合,建立受墨區(qū)域墨水量數(shù)據(jù)CPU-GPU數(shù)據(jù)映射關(guān)系;利用一對紋理內(nèi)存組交替讀寫的模式完成受墨區(qū)域墨水量求和,實(shí)現(xiàn)GPU并行運(yùn)算的求和純并行規(guī)約運(yùn)算;采用基于Box-Muller變換的方法生成高斯隨機(jī)數(shù),避免分支與循環(huán)操作干擾隨機(jī)數(shù)生成流的效率;利用混合線性同余數(shù)周期擴(kuò)展算法對生成的偽隨機(jī)數(shù)進(jìn)行周期擴(kuò)展,解決同余數(shù)偽隨機(jī)數(shù)周期受制于余數(shù)的問題。由于利用GPU對虛擬紙張受墨區(qū)域墨水?dāng)U散過程進(jìn)行并行處理,提高了毛筆墨水?dāng)U散模型的實(shí)時性。
【專利說明】基于GPU的實(shí)時毛筆墨水?dāng)U散模型并行實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種實(shí)時毛筆墨水?dāng)U散模型并行實(shí)現(xiàn)方法,特別是涉及一種基于GPU的實(shí)時毛筆墨水?dāng)U散模型并行實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]墨水渲染本質(zhì)上屬于流體可視化范疇,包括云、可變形表面體(如布)、水分子流動等可視化模擬。墨水渲染的關(guān)鍵在于模擬復(fù)雜無序的墨水分子在紙張上的擴(kuò)散,這種擴(kuò)散現(xiàn)象在整個紙張的受墨區(qū)域并發(fā)、隨機(jī)的進(jìn)行,并且隨著毛筆筆劃在已受墨區(qū)域的重復(fù)、交錯而愈加復(fù)雜?;谖锢淼牧黧w模擬方法可以產(chǎn)生逼真的可視化效果,單從效果上講,采用基于物理的流體模擬方法應(yīng)該是最佳選擇。但是,繪畫系統(tǒng)中的墨水?dāng)U散要求實(shí)時實(shí)現(xiàn),如果不能夠?qū)崟r,對于繪畫系統(tǒng)這樣的交互創(chuàng)作平臺就失去了意義。而常規(guī)的基于物理流體模擬手段由于計算復(fù)雜性高,其渲染實(shí)現(xiàn)大多都是非實(shí)時、離線的,因此并不適用于實(shí)時系統(tǒng)需要。采用分子系統(tǒng)模型可以實(shí)現(xiàn)基于物理的墨水實(shí)時渲染,但是分子系統(tǒng)通常需要分子速度分量數(shù)據(jù),在基于GPU的渲染實(shí)現(xiàn)中,分子系統(tǒng)中的速度分量信息處理以基于幾何點(diǎn)的標(biāo)準(zhǔn)光柵化GPU渲染流方式處理,本質(zhì)上并不易于實(shí)現(xiàn)。
【發(fā)明內(nèi)容】
[0003]為了克服現(xiàn)有毛筆墨水?dāng)U散模型實(shí)時性差的不足,本發(fā)明提供一種基于GPU的實(shí)時毛筆墨水?dāng)U散模型并行實(shí)現(xiàn)方法。該方法通過網(wǎng)格化受墨區(qū)域含墨頂點(diǎn)集合,使得GPU以類似于CPU訪問數(shù)組的方法訪問紋理內(nèi)存,建立受墨區(qū)域墨水量數(shù)據(jù)CPU-GPU數(shù)據(jù)映射關(guān)系,解決CPU-GPU數(shù)據(jù)交換問題;利用一對紋理內(nèi)存組交替讀寫的模式完成受墨區(qū)域墨水量求和,實(shí)現(xiàn)GPU并行運(yùn)算的求和純并行規(guī)約運(yùn)算問題;采用基于Box-Muller變換的方法生成高斯隨機(jī)數(shù),避免分支與循環(huán)操作干擾隨機(jī)數(shù)生成流的效率;利用混合線性同余數(shù)周期擴(kuò)展算法對生成的偽隨機(jī)數(shù)進(jìn)行周期擴(kuò)展,解決傳統(tǒng)同余數(shù)偽隨機(jī)數(shù)周期受制于余數(shù)的問題。由于利用GPU對虛擬紙張受墨區(qū)域墨水?dāng)U散過程進(jìn)行并行處理,使得毛筆繪畫系統(tǒng)中最耗時、計算量最復(fù)雜的模塊得以加速,可以提高毛筆墨水?dāng)U散模型的實(shí)時性。
[0004]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種基于GPU的實(shí)時毛筆墨水?dāng)U散模型并行實(shí)現(xiàn)方法,其特點(diǎn)是采用以下步驟:
[0005]步驟一、以紙張受墨區(qū)域點(diǎn)的集合作為GPU處理的輸入。將虛擬紙張以紋理的方式加載至紋理內(nèi)存,紋理上的每一個紋素對應(yīng)虛擬紙張的一個像素。紋理內(nèi)存的每個紋素具有三個分量,分別對應(yīng)虛擬紙張點(diǎn)的坐標(biāo)、當(dāng)前墨水量、當(dāng)前連通性,形成虛擬紙張與紋理的映射關(guān)系。然后進(jìn)入第一個頂點(diǎn)處理程序核Vertex program,對虛擬紙張受墨區(qū)域進(jìn)行墨水量求和。
[0006]步驟二、求和處理結(jié)束后進(jìn)入生成受墨區(qū)域漫步所需的高斯隨機(jī)數(shù)集合頂點(diǎn)處理程序核。隨機(jī)數(shù)生成運(yùn)算核采用基于傳統(tǒng)均勻分布隨機(jī)數(shù)到高斯隨機(jī)數(shù)的Box-Muller變換方法。Box-Muller變換如下式所示
【權(quán)利要求】
1.一種基于GPU的實(shí)時毛筆墨水?dāng)U散模型并行實(shí)現(xiàn)方法,其特征在于包括以下步驟:步驟一、以紙張受墨區(qū)域點(diǎn)的集合作為GPU處理的輸入;將虛擬紙張以紋理的方式加載至紋理內(nèi)存,紋理上的每一個紋素對應(yīng)虛擬紙張的一個像素;紋理內(nèi)存的每個紋素具有三個分量,分別對應(yīng)虛擬紙張點(diǎn)的坐標(biāo)、當(dāng)前墨水量、當(dāng)前連通性,形成虛擬紙張與紋理的映射關(guān)系;然后進(jìn)入第一個頂點(diǎn)處理程序核Vertex program,對虛擬紙張受墨區(qū)域進(jìn)行墨水量求和; 步驟二、求和處理結(jié)束后進(jìn)入生成受墨區(qū)域漫步所需的高斯隨機(jī)數(shù)集合頂點(diǎn)處理程序核;隨機(jī)數(shù)生成運(yùn)算核采用基于傳統(tǒng)均勻分布隨機(jī)數(shù)到高斯隨機(jī)數(shù)的Box-Muller變換方法;Box-Muller變換如下式所示
【文檔編號】G06T1/00GK103473123SQ201310379037
【公開日】2013年12月25日 申請日期:2013年8月27日 優(yōu)先權(quán)日:2013年8月27日
【發(fā)明者】白本督, 張艷寧, 李映, 范九倫 申請人:西安郵電大學(xué), 西北工業(yè)大學(xué)