專利名稱:基于毛筆和宣紙的水墨傳輸模型與仿真算法的制作方法
技術領域:
本發(fā)明涉及一種計算機藝術仿真技術領域,特別是模擬宣紙、及水墨的傳輸,通過對中國水墨畫的成畫機理進行計算機模擬,實現(xiàn)水墨畫特有藝術效果的計算機仿真。
背景技術:
隨著計算機圖形學和非真實感渲染技術的飛速發(fā)展,中國水墨畫藝術的計算機仿真也逐漸成為眾人關注的研究焦點。筆、墨、紙、硯是中國水墨畫的文房四寶,即四種基本的繪畫工具和材料,其中,筆和紙是表現(xiàn)出中國水墨畫藝術效果的兩大主要材料,它們產生出的擴散、滲化、筆痕等特殊效果,形成了中國畫與西方畫的主要形式區(qū)別,也形成了國畫的獨特藝術魅力。因此,在國畫藝術的計算機仿真中,除了對毛筆進行仿真模擬外,另一個重要的技術要點就是水墨傳輸模型的計算機仿真,進一步分為毛筆上的、筆與紙之間的和紙上的水墨傳輸模型(擴散、沉淀、蒸發(fā)等)。水墨傳輸模型的研究與毛筆仿真實現(xiàn)結合,就能實現(xiàn)完整的交互式國畫仿真繪制系統(tǒng),它在工藝包裝設計、廣告設計、形象識別設計、書籍裝幀、文字設計、影視制作、數(shù)字藝術創(chuàng)作甚至古代珍貴水墨畫的保護性修復研究和臨摹復制等領域都有較高的實際應用價值。
對水墨畫仿真的研究不少,但很少直接處理毛筆上的和筆與紙間的水墨傳輸,而更多地采用一種經驗的模型(比如紋理貼圖)來繪制筆道。紋理貼圖的方法,由于缺乏靈活性,所以能夠表現(xiàn)的藝術效果有限而且仿真效果也不真實、不自然。擴散算法是紙上的水墨傳輸模型的最重要的部分,關于它的技術更多,比如粒子系統(tǒng)、局部平衡模型(PDE)、lattice Boltzmann equation(LBE)等。但由于擴散與紙是分不開的,為了產生自然真實的擴散效果,必須構造紙模型。關于紙模型的技術比較典型的有將紙模型按功能分為表面層、吸收層、沉積層三層,但是由于沒有從物理纖維結構上對宣紙進行模擬,擴散算法缺乏隨機性,所以它們的最終仿真效果并不理想。
發(fā)明內容本發(fā)明的目的是解決現(xiàn)有計算機模擬繪畫中存在筆道呆板、不自然、靈活性差、表現(xiàn)力缺乏的問題,提供一種基于宣紙模型的水墨傳輸模型,模擬各種各樣典型的毛筆筆道,體現(xiàn)自然真實的仿真擴散效果;筆道繪制同時滿足交互式繪制的實時性要求。
本發(fā)明提供的基于毛筆和宣紙的水墨傳輸模型與仿真算法,分為三個部分水墨在虛擬毛筆上的傳輸、水墨在虛擬毛筆與虛擬宣紙之間的交換以及水墨在虛擬宣紙中的傳輸,具體包括第一、宣紙模型建立該宣紙模型采用三層結構,依次為接觸層——負責與毛筆的水墨交換;擴散層——完成水墨在紙中的擴散、沉積和水分揮發(fā)操作;沉積層——保存沉積下來的墨信息,并將其最終映射到屏幕上;每層宣紙模型為模擬纖維網結構,由纖維束連接起來的纖維團組成,纖維團是水墨的容器和載體,纖維束是水墨傳輸?shù)膶Ч?;其中,宣紙模型纖維網的構造規(guī)則a)纖維分布服從“全局一致,局部隨機”,所謂“全局一致”是指從整張宣紙平面來看,平面上每個象素區(qū)域所含的纖維量是“一致”的,“一致”是指把每個象素的纖維量看作一個隨機量,那么這些隨機量具有相同的均值,都服從正態(tài)分布,而“局部隨機”則是指在每個象素平面區(qū)域內的纖維分布是完全隨機的,這條規(guī)則是模擬宣紙纖維結構的不規(guī)則分布的關鍵;b)纖維束的數(shù)目、長度和方向均服從正態(tài)分布;c)正態(tài)分布隨機數(shù)的生成算法我們使用一種常用的隨機數(shù)生成方法“變換抽樣法”,基本流程Proc NRand(in u,in diff out result)//u為均值,diff為方差r1←Rand()r2←Rand()C←-21nr1×cos2πr1]]>//C服從標準正態(tài)分布result←u+diff×C//即為所求隨機數(shù)End Proc
宣紙纖維網構造算法每張纖維網在初始化的時候都需要由計算生成,且要使纖維分布服從“全局一致,局部隨機”,構造的步驟如下第一步、在“細胞矩陣”上分配纖維把每個象素進一步分割成n×n個“細胞”,我們稱細化后的紙平面矩陣為“細胞矩陣”,以宣紙致密度參數(shù)D*GMAX為均值,其中GMAX為最大纖維點數(shù),生成一個服從正態(tài)分布的隨機數(shù)Ng作為每個象素區(qū)域應該分配纖維的量,在各象素區(qū)域內隨機分配Ng個“纖維點”Ng=NRand(D*GMAX,diff),diff為常量第二步、組合纖維團根據“細胞矩陣”上“纖維點”的分布情況把相鄰的“纖維點”組合成一個纖維團;第三步、在“細胞矩陣”上分布纖維束對每個“細胞”位置,根據用戶指定的均值D*FMAX和方差diff生成一個正態(tài)隨機數(shù)Nf,再生成Nf根長度和方向都服從正態(tài)分布的纖維束Fxy(1,α)Nf=NRand(D*FMAX,diff),diff為常量第四步、連接纖維團計算每根纖維束所經過的纖維團,并用纖維束連接,構成模擬纖維網結構宣紙;第二、水墨在虛擬毛筆上的初始化分布虛擬3D毛筆模型該毛筆模型包括骨架和表面兩個部分,骨架由脊骨和輔助面組成,脊骨位于骨架的中軸線上,在脊骨上分布著n個節(jié)點——模型中稱之為關鍵節(jié)點,相鄰關鍵節(jié)點間的距離是一個等差數(shù)列,公差d=l·λ(n2-n),其中l(wèi)是毛筆筆刷長度,λ是調整因子;輔助面即以這些關鍵節(jié)點為中心,輔助面與中軸線垂直,輔助面上有m/2條過其中心的軸線,相鄰軸線夾角相等,這些軸線的端點在模型中稱為輔助節(jié)點;筆刷模型用拋物線模擬輔助面初始半徑的變化,在模型骨架上添加表面,完成筆刷幾何模型建立;初始化水墨分布每次蘸墨,用戶給出的是毛筆骨架的關鍵點上的墨粒子數(shù)Inkcenter,在毛筆模型豎直的情況下取其一個截面,即輔助面,水墨信息存儲在毛筆骨架的關鍵節(jié)點上,以關鍵節(jié)點的墨粒子數(shù)作為該輔助面所有點的墨量,或采用輻射型擴散和向量型擴散兩種墨擴散模式來計算毛筆截面其他部分的墨粒子數(shù)輻射型擴散,即中心點的墨色向外以一定的步長遞減(最小值為0),擴散公式如下Inkradio=Inkcenter*(1-Rstep*D)D為目標點與中心點的距離,Rstep為變化因子向量(方向)型擴散,即中心點的墨色以一定的步長沿著和x+軸成θ角的方向進行遞減(在負方向上增加),擴散公式如下Inkvector=Inkcenter*(1-Vstep*D)D表示目標點與輔助面上的關鍵點的連線在,Vstep為變化因子擴散方向上的投影長度(可以為負)最終的水墨分布是這兩種擴散模式的加權和Inkdest=Inkradio*WR+Inkvector*WVWR和WV分別為輻射分布和向量分布的權值第二、水墨在筆紙間的交換先計算毛筆的筆跡,即筆與紙的接觸區(qū)域,以筆關鍵節(jié)點為中心,當該截面與紙相交時,這個截面與紙的交接部分為一條直線,將這條交線定義為筆跡元素,它的兩個端點分別定義為上輔助點和下輔助點,將關鍵節(jié)點在這條交線上的投影定義為投影中心點,筆跡上的水墨信息通過投影中心點存儲。整個筆跡由若干個筆跡元素構成,各個筆跡元素的投影中心點的水墨信息共同決定了整個筆跡的水墨分布;
當虛擬毛筆與宣紙發(fā)生碰撞即接觸時,在筆跡區(qū)域內,筆和紙纖維團之間就會進行水墨交換,這種交換是雙向的,通過計算接觸瞬間毛筆的截面與紙的相應接觸面的水墨信息,可以判斷水墨的傳輸方向,當交換完成后,毛筆和紙上的水墨都需要重新分布;毛筆上的墨水的重新分配對于毛筆,通過計算毛筆上的各個部分距離毛筆與紙接觸面的距離以及水墨損失或獲得的最大值,得到各個部分的水墨變化幅度,進而得到整個毛筆上的水墨的均勻變化的效果;設毛筆與紙接觸的“原始筆跡”是S,則毛筆上不在原始筆跡上某一個關鍵節(jié)點/輔助點p的水墨信息用公式表示為Inkp’=Inkp-(1-Dp(S)/Dmax)*Inktran_avg*k其中Inkp’是傳輸后筆的墨粒子數(shù),Inkp是傳輸前的墨粒子數(shù),Dp(S)是點p到S的平均距離,Dmax是毛筆上的關鍵節(jié)點到S的最大距離,Inktran_avg是毛筆向原始筆跡傳輸?shù)钠骄W訑?shù),k是用來控制當毛筆上某一處水墨變化時對毛筆的影響范圍的,k取值0-1,k越小,影響范圍越?。煌瑯?,對于毛筆上水的傳輸,用公式表示為Waterp’=Waterp-(1-Dp(S)/Dmax)*Watertran_avg*k’由于宣紙上水墨傳輸比毛筆上要容易的多,所以k’大于k;第三、水墨在宣紙中的傳輸水墨在宣紙間的傳輸分為擴散、沉積、水分的揮發(fā)以及水墨疊加;擴散擴散在紙模型中的擴散層實現(xiàn),通過比較擴散層中各個纖維團的水墨濃度,確定擴散的方向以及擴散的量值,通過纖維束的傳遞將擴散實現(xiàn)為一個鏈式反應過程(見圖9)擴散過程具體步驟如下● 計算擴散條件,設虛擬宣紙的粘墨性和粘水性分別為Ink_Stick和Water_Stick,纖維團的墨粒子數(shù)和水粒子數(shù)為Ink和Water,則擴散條件為Ink>Ink_Stick且Water>Water_Stick將滿足上述條件的纖維團稱為“活動”纖維團;● 對每個“活動”纖維團,計算它的細胞平均含水量Water_Avg及平均含墨量Ink_Avg;● 對該纖維團,計算它的每個相鄰纖維團的細胞平均含水量Water_Avg’及平均含墨量Ink_Avg’,將其與中心纖維團的相應量值作比較,當①Water_Avg>Water_Avg’或②Water_Avg<Water_Avg’但Ink_Avg>Ink_Avg’時,擴散發(fā)生,由中心纖維團向其鄰近纖維團傳遞水墨,傳輸量由以下公式決定水傳輸量=(Water-Water’)/(Fibre_Avg+1)墨傳輸量=(Ink-Ink’)/(Fibre_Avg+1)其中Water和Water’分別表示中心纖維團和鄰近纖維團的水粒子數(shù),Ink和Ink’分別表示中心纖維團和鄰近纖維團的墨粒子數(shù),F(xiàn)ibre_Avg表示紙模型中每個纖維團平均連接的纖維束數(shù)量,在情況①下水墨同時傳輸,稱為“動水傳輸”,在情況②下只有墨傳輸,稱為“動墨傳輸”;
擴散采取持續(xù)模型,即擴散貫串整個繪制過程,擴散一旦開始(一般是從繪制第一個筆道開始),就連續(xù)不斷的進行直到各個纖維團之間的水墨濃度達到平衡(見圖10),達到平衡的過程完全由宣紙擴散層上的水墨信息決定,與用戶繪制筆道的過程無關,將擴散與接受用戶筆道分為兩個獨立的線程,它們的共享數(shù)據就是擴散層的水墨信息,用戶繪制新的筆道將會不斷改變擴散層上的水墨信息,使擴散的中間值發(fā)生改變,從而得到各種效果;沉積虛擬宣紙間的水墨沉積有兩種方式,一種是在毛筆與紙接觸并且接觸層上形成毛筆的筆跡后,從這個筆跡到沉積層的沉積,沉積量基于接觸層上形成筆跡的水墨信息以及預先設定的沉積比例;第二種沉積發(fā)生在擴散過程中,由擴散層向沉積層進行沉積,沉積隨擴散的不斷進行而不斷發(fā)生,沉積量取決于擴散層上的水墨信息;1)水的揮發(fā)水的揮發(fā)同樣發(fā)生在擴散層,隨時間的流逝,擴散層上的水以一定比例不斷進行揮發(fā)直至墨干;2)水墨疊加這里采用持續(xù)的擴散模型,使疊加與擴散得到統(tǒng)一;疊加實際上是改變了未擴散完成的擴散層的水墨量,疊加效果與水墨的擴散效果最終都由這個不斷改變初值的擴散過程實現(xiàn);第四、筆道的繪制筆道的繪制需要滿足實時的要求,當需要繪制筆道時,程序加載沉積在沉積層上的水墨信息并通過加載為OpenGL紋理或GDI位圖在屏幕上顯示出來;由于擴散是持續(xù)進行的,因此下一個要顯示的筆道實際上是這前一個筆道繼續(xù)擴散、或同時加入了新的筆道而形成疊加的效果。
本發(fā)明的優(yōu)點和積極效果1、更好的可控性,用戶可以通過控制水墨在虛擬毛筆上的初始化分布,來控制蘸墨過程,從而能夠繪制出多種墨色變化效果;用戶可以控制虛擬宣紙的結構參數(shù),達到模擬各種宣紙效果的目的,比如致密度D(見圖12),致密度越大,宣紙纖維越密,水墨擴散效果越細膩;反之,擴散效果越粗糙。用戶還可以通過控制宣紙的吸水力來控制擴散程度(見圖13),吸水力越大,擴散程度越大;反之,擴散程度越小。2、更自然逼真的擴散效果,由于使用了物理紙模型,仿真筆道具有非常自然逼真的擴散效果。3、更動態(tài)直觀的繪制過程,本發(fā)明中的水墨傳輸機制是可控制的,筆道繪制及擴散的全過程都是可見的,隨著用戶的繪制進程,筆道的擴散也在一步步地進行,見圖11和圖14。4、更高的實時性,本發(fā)明中采用的算法在保證效果逼真的前提下,還保證了交互式繪制所需要的實時性。
圖1是交互式筆道繪制流程圖;圖2是3D虛擬毛筆筆刷模型中骨架示意圖;圖3是毛筆截面示意圖;圖4是關鍵點墨色擴散示意圖;圖5是三層紙模型示意圖;圖6是紙模型的纖維網結構示意圖;圖7是纖維團生成示意圖;圖8是連接纖維團示意圖;圖9是擴散步驟示意圖;圖10是持續(xù)擴散流程示意圖;圖11是筆跡逐步顯現(xiàn)過程示意圖;圖12是不同宣紙(致密度不同)上的筆跡擴散效果示意圖;圖13是不同宣紙(吸水力不同)上的筆跡擴散效果示意圖;圖14是繪制筆道過程示意圖。
具體實施方式實施例1該水墨傳輸模型與已有的任何三維毛筆模型結合,就可以構成完整的交互式水墨畫仿真繪制系統(tǒng)。當用戶操作輸入設備(如鼠標)使毛筆模型與紙模型接觸時,水墨傳輸過程開始,同時擴散過程啟動,隨著時間的流逝,毛筆的筆道逐步擴散成形。這里用一個例子說明實施過程(如圖1和圖14所示)第一步、在“細胞矩陣”上分配纖維把每個象素進一步分割成n×n(系統(tǒng)默認n=4)個“細胞”,我們稱細化后的紙平面矩陣為“細胞矩陣”,以宣紙致密度參數(shù)D*GMAX為均值,其中GMAX為最大纖維點數(shù),生成一個服從正態(tài)分布的隨機數(shù)Ng,如Ng=9作為每個象素區(qū)域應該分配纖維的量,在各象素區(qū)域內隨機分配Ng個“纖維點”,見圖7所示。
Ng=NRand(D*GMAX,diff),diff為常量第二步、組合纖維團根據“細胞矩陣”上“纖維點”的分布情況把相鄰的“纖維點”組合成一個纖維團;第三步、在“細胞矩陣”上分布纖維束對每個“細胞”位置,根據用戶指定的均值D*FMAX和方差diff生成一個正態(tài)隨機數(shù)Nf,再生成Nf根長度和方向都服從正態(tài)分布的纖維束Fxy(l,α)Nf=NRand(D*FMAX,diff),diff為常量第四步、連接纖維團計算每根纖維束所經過的纖維團,并用纖維束連接,見圖8,構成模擬纖維網結構宣紙,見圖6;初始值中D、FMAX、GMAX和diff分別取初值D=0.4 GMAX=16 FMAX=4.0 Diff=1.0如圖8所示是連接纖維團的示意。
虛擬3D毛筆模型如圖2、3所示,該毛筆模型包括骨架和表面兩個部分,骨架由脊骨4和輔助面3組成,脊骨位于骨架的中軸線上,在脊骨上等差分布著n個(如20個)關鍵節(jié)點1,公差d=l·λ/(n2-n),其中l(wèi)是毛筆筆刷長度(系統(tǒng)默認為10.0),λ是調整因子(系統(tǒng)默認為2.0);輔助面即以這些關鍵節(jié)點為中心,輔助面與中軸線垂直,輔助面上有m/2條(如4條)過其中心的軸線,相鄰軸線夾角相等,這些軸線的端點在模型中稱為輔助節(jié)點2;筆刷模型用拋物線模擬輔助面初始半徑的變化,在模型骨架上添加表面,完成筆刷幾何模型建立;初始化水墨分布1)用戶先蘸墨,即設定毛筆骨架的關鍵節(jié)點上的墨量Inkcenter,=110.0。設定使用關鍵點上墨量作為所有點的墨量Inkdest=Inkcenter。
輻射型擴散,即中心點的墨色向外以一定的步長遞減(最小值為0),如圖4(a)所示,第一步擴散
Inkradio=Inkcenter*(1-Rstep*D)=110*(1-0.3*0.5)=93.5向量(方向)型擴散,即中心點的墨色以一定的步長沿著和x+軸成θ角的方向進行遞減(在負方向上增加),如圖4(b)所示,第一步擴散Inkvector=Inkcenter*(1-Vstep*D)=110*(1-0.2*0.5)=99最終的水墨分布是這兩種擴散模式的加權和,如圖4(c)所示Inkdest=Inkradio*WR+Inkvector*WV=93.5*0.6+99*0.4=95.7毛筆上的墨水的重新分配設毛筆與紙接觸的“原始筆跡”是S,則毛筆上不在原始筆跡上某一個關鍵節(jié)點/輔助點p的水墨信息用公式表示為Inkp”=Inkp-(1-Dp(S)/Dmax)*Inktran_avg*k其中Inkp’是傳輸后筆的墨信息,Inkp是傳輸前的墨粒子數(shù),Dp(S)是點p到S的平均距離,Dmax是毛筆上的關鍵節(jié)點到S的最大距離,Inktran_avg是毛筆向原始筆跡傳輸?shù)钠骄?,k是用來控制當毛筆上某一處水墨變化時對毛筆的影響范圍的,k取值0-1,k越小,影響范圍越小;同樣,對于毛筆上水的傳輸,用公式表示為Waterp’=Waterp-(1-Dp(S)/Dmax)*Watertran_avg*k’k’應該大于k;模型中k與k’分別取0.1和0.8。
2)用戶設定紙張參數(shù)致密度參數(shù)D=0.5,吸水力參數(shù)A=0.6。生成虛擬宣紙。如圖5所示,其中7接觸層,8擴散層,9沉積層。另外如圖6所示是紙模型的纖維網結構。圖12與13顯示了不同參數(shù)的紙模型的不同效果3)用戶移動三維毛筆模型,計算筆跡,筆上的墨傳到紙上,筆上的墨被重新分配,紙上的墨進行擴散、揮發(fā)、沉淀。于是可以看到毛筆的筆跡逐漸擴散開來,甚至當用戶停筆后,仍然可以看到筆道在多余水的驅動下持續(xù)的擴散。效果如圖7所示,圖9所示為擴散步驟,圖10所示為持續(xù)擴散流程。
權利要求
1.一種基于毛筆和宣紙的水墨傳輸模型與仿真算法,其特征是該水墨傳輸模型分為三個部分水墨在虛擬毛筆上的傳輸、水墨在虛擬毛筆與虛擬宣紙之間的交換以及水墨在虛擬宣紙中的傳輸,具體包括第一、宣紙模型建立該宣紙模型采用三層結構,依次為接觸層——負責與毛筆的水墨交換;擴散層——完成水墨在紙中的擴散、沉積和水分揮發(fā)操作;沉積層——保存沉積下來的墨信息,并將其最終映射到屏幕上;每層宣紙模型為模擬纖維網結構,由纖維束連接起來的纖維團組成,纖維團是水墨的容器和載體,纖維束是水墨傳輸?shù)膶Ч?;其中,宣紙模型纖維網的構造規(guī)則a)纖維分布服從“全局一致,局部隨機”,所謂“全局一致”是指從整張宣紙平面來看,平面上每個象素區(qū)域所含的纖維量是“一致”的,“一致”是指把每個象素的纖維量看作一個隨機量,那么這些隨機量具有相同的均值,都服從正態(tài)分布,而“局部隨機”則是指在每個象素平面區(qū)域內的纖維分布是完全隨機的,這條規(guī)則是模擬宣紙纖維結構的不規(guī)則分布的關鍵;b)纖維束的數(shù)目、長度和方向均服從正態(tài)分布;c)正態(tài)分布隨機數(shù)的生成算法我們使用一種常用的隨機數(shù)生成方法“變換抽樣法”,基本流程Proc NRand(in u,in diff,out result)//u為均值,diff為方差r1←Rand()r2←Rand()C←-2lnr1×cos2πr2]]>//C服從標準正態(tài)分布result←u+diff×C//即為所求隨機數(shù)End Proc宣紙纖維網構造算法每張纖維網在初始化的時候都需要由計算生成,且要使纖維分布服從“全局一致,局部隨機”,構造的步驟如下第一步、在“細胞矩陣”上分配纖維把每個象素進一步分割成n×n個“細胞”,我們稱細化后的紙平面矩陣為“細胞矩陣”,以宣紙致密度參數(shù)D*GMAX為均值,其中GMAX為最大纖維點數(shù),生成一個服從正態(tài)分布的隨機數(shù)Ng作為每個象素區(qū)域應該分配纖維的量,在各象素區(qū)域內隨機分配Ng個“纖維點”Ng=NRand(D*GMAX,diff),diff為常量第二步、組合纖維團根據“細胞矩陣”上“纖維點”的分布情況把相鄰的“纖維點”組合成一個纖維團;第三步、在“細胞矩陣”上分布纖維束對每個“細胞”位置,根據用戶指定的均值D*FMAX和方差diff生成一個正態(tài)隨機數(shù)Nf,再生成Nf根長度和方向都服從正態(tài)分布的纖維束Fxy(1,α)Nf=NRand(D*FMAX,diff),diff為常量第四步、連接纖維團計算每根纖維束所經過的纖維團,并用纖維束連接,構成模擬纖維網結構宣紙;第二、水墨在虛擬毛筆上的初始化分布虛擬3D毛筆模型該毛筆模型包括骨架和表面兩個部分,骨架由脊骨和輔助面組成,脊骨位于骨架的中軸線上,在脊骨上分布有n個節(jié)點——模型中稱之為關鍵節(jié)點,相鄰關鍵節(jié)點間的距離是一個等差數(shù)列,公差d=l·λ/(n2-n),其中l(wèi)是毛筆筆刷長度,λ是調整因子;輔助面即以這些關鍵節(jié)點為中心,輔助面與中軸線垂直,輔助面上有m/2條過其中心的軸線,相鄰軸線夾角相等,這些軸線的端點在模型中稱為輔助節(jié)點;筆刷模型用拋物線模擬輔助面初始半徑的變化,在模型骨架上添加表面,完成筆刷幾何模型建立;初始化水墨分布水墨的量采用粒子數(shù)表示,即以水粒子數(shù)表示水的多少,以墨粒子數(shù)表示墨的多少;每次蘸墨,用戶給出的是毛筆骨架的關鍵點上的墨粒子數(shù)Inkcenter,在毛筆模型豎直的情況下取其一個截面,即輔助面,水墨信息存儲在毛筆骨架的關鍵節(jié)點上,以關鍵節(jié)點的墨粒子數(shù)作為該輔助面所有點的墨量,或采用輻射型擴散和向量型擴散兩種墨擴散模式來計算毛筆截面其他部分的墨粒子數(shù)輻射型擴散,即中心點的墨色向外以一定的步長遞減,最小值為0,擴散公式如下Inkradio=Inkcenter*(1-Rstep*D)D為目標點與中心點的距離,Rstep為變化因子向量型擴散,即中心點的墨色以一定的步長沿著和x+軸成θ角的方向進行遞減,或在負方向上增加,擴散公式如下Inkvector=Inkcenter*(1-Vstep*D)D表示目標點與輔助面上的關鍵點的連線在,Vstep為變化因子擴散方向上的投影長度(可以為負)最終的水墨分布是這兩種擴散模式的加權和Inkdest=Inkradio*WR+Inkvector*WVWR和WV分別為輻射分布和向量分布的權值第三、水墨在筆紙間的交換先計算毛筆的筆跡,即筆與紙的接觸區(qū)域,以筆關鍵節(jié)點為中心,當輔助面與紙相交時,這個截面與紙的交接部分為一條直線,將這條交線定義為筆跡元素,它的兩個端點分別定義為上輔助點和下輔助點,將關鍵節(jié)點在這條交線上的投影定義為投影中心點,筆跡上的水墨信息通過投影中心點存儲;整個筆跡由若干個筆跡元素構成,各個筆跡元素的投影中心點的水墨信息共同決定了整個筆跡的水墨分布;當虛擬毛筆與宣紙發(fā)生碰撞即接觸時,在筆跡區(qū)域內,筆和紙纖維團之間就會進行水墨交換,這種交換是雙向的,通過計算接觸瞬間毛筆的截面與紙的相應接觸面的水墨信息,可以判斷水墨的傳輸方向,當交換完成后,毛筆和紙上的水墨都需要重新分布;毛筆上的墨水的重新分配對于毛筆,通過計算毛筆上的各個部分距離毛筆與紙接觸面的距離以及水墨損失或獲得的最大值,得到各個部分的水墨變化幅度,進而得到整個毛筆上的水墨的均勻變化的效果;設毛筆與紙接觸的“原始筆跡”是S,則毛筆上不在原始筆跡上某一個關鍵節(jié)點/輔助點p的水墨信息用公式表示為Inkp’=Inkp-(1-Dp(S)/Dmax)*Inktran_avg*k其中Inkp’是傳輸后筆的墨粒子數(shù),Inkp是傳輸前的墨粒子數(shù),Dp(S)是點p到S的平均距離,Dmax是毛筆上的關鍵節(jié)點到S的最大距離,Inktran_avg是毛筆向原始筆跡傳輸?shù)钠骄W訑?shù),k是用來控制當毛筆上某一處水墨變化時對毛筆的影響范圍的,k取值0-1,k越小,影響范圍越小;同樣,對于毛筆上水的傳輸,用公式表示為Waterp’=Waterp-(1-Dp(S)/Dmax)*Watertran_avg*k’k’應該大于k;第四、水墨在宣紙中的傳輸水墨在宣紙間的傳輸分為擴散、沉積、水分的揮發(fā)以及水墨疊加;擴散擴散在紙模型中的擴散層實現(xiàn),通過比較擴散層中各個纖維團的水墨濃度,確定擴散的方向以及擴散的量值,通過纖維束的傳遞將擴散實現(xiàn)為一個鏈式反應過程(見圖9)擴散過程具體步驟如下●計算擴散條件,設虛擬宣紙的粘墨性和粘水性分別為Ink_Stick和Water_Stick,纖維團的墨粒子數(shù)和水粒子數(shù)為Ink和Water,則擴散條件為Ink>Ink_Stick且Water>Water_Stick將滿足上述條件的纖維團稱為“活動”纖維團;●對每個“活動”纖維團,計算它的細胞平均含水量Water_Avg及平均含墨量Ink_Avg;●對該纖維團,計算它的每個相鄰纖維團的細胞平均含水量Water_Avg’及平均含墨量Ink_Avg’,將其與中心纖維團的相應量值作比較,當①Water_Avg>Water_Avg’或②Water_Avg<Water_Avg’但Ink_Avg>Ink_Avg’時,擴散發(fā)生,由中心纖維團向其鄰近纖維團傳遞水墨,傳輸量由以下公式決定水傳輸量=(Water-Water’)/(Fibre_Avg+1)墨傳輸量=(Ink-Ink’)/(Fibre_Avg+1)其中Water和Water’分別表示中心纖維團和鄰近纖維團的水粒子數(shù),Ink和Ink’分別表示中心纖維團和鄰近纖維團的墨粒子數(shù),F(xiàn)ibre_Avg表示紙模型中每個纖維團平均連接的纖維束數(shù)量,在情況①下水墨同時傳輸,稱為“動水傳輸”,在情況②下只有墨傳輸,稱為“動墨傳輸”;擴散采取持續(xù)模型,即擴散貫串整個繪制過程,擴散一旦開始(一般是從繪制第一個筆道開始),就連續(xù)不斷的進行直到各個纖維團之間的水墨濃度達到平衡(見圖10),達到平衡的過程完全由宣紙擴散層上的水墨信息決定,與用戶繪制筆道的過程無關,將擴散與接受用戶筆道分為兩個獨立的線程,它們的共享數(shù)據就是擴散層的水墨信息,用戶繪制新的筆道將會不斷改變擴散層上的水墨信息,使擴散的中間值發(fā)生改變,從而得到各種效果;沉積虛擬宣紙間的水墨沉積有兩種方式,一種是在毛筆與紙接觸并且接觸層上形成毛筆的筆跡后,從這個筆跡到沉積層的沉積,沉積量基于接觸層上形成筆跡的水墨信息以及預先設定的沉積比例;第二種沉積發(fā)生在擴散過程中,由擴散層向沉積層進行沉積,沉積隨擴散的不斷進行而不斷發(fā)生,沉積量取決于擴散層上的水墨信息;1)水的揮發(fā)水的揮發(fā)同樣發(fā)生在擴散層,隨時間的流逝,擴散層上的水以一定比例不斷進行揮發(fā)直至墨干;2)水墨疊加這里采用持續(xù)的擴散模型,使疊加與擴散得到統(tǒng)一;疊加實際上是改變了未擴散完成的擴散層的水墨量,疊加效果與水墨的擴散效果最終都由這個不斷改變初值的擴散過程實現(xiàn);第五、筆道的繪制筆道的繪制需要滿足實時的要求,當需要繪制筆道時,程序加載沉積在沉積層上的水墨信息并通過加載為OpenGL紋理或GDI的位圖在屏幕上顯示出來;由于擴散是持續(xù)進行的,因此下一個要顯示的筆道實際上是這前一個筆道繼續(xù)擴散、或同時加入了新的筆道而形成疊加的效果。
全文摘要
基于毛筆和宣紙的水墨傳輸模型與仿真算法。屬于計算機藝術仿真技術領域,特別是模擬宣紙、及水墨的傳輸實現(xiàn)水墨畫特有藝術效果的計算機仿真。該模型包括毛筆模型和宣紙模型,宣紙模型為模擬纖維網結構,由纖維束連接起來的纖維團組成,纖維團是水墨的容器和載體,纖維束是水墨傳輸?shù)膶Ч?;其仿真算法分為水墨在虛擬毛筆上的傳輸、水墨在虛擬毛筆與虛擬宣紙之間的交換以及水墨在虛擬宣紙中的傳輸。本發(fā)明具有更好的可控性,更自然逼真的擴散效果,更動態(tài)直觀的繪制過程、更高的實時性。本發(fā)明中的水墨傳輸機制是可控制的,筆道繪制及擴散的全過程都是可見的,本發(fā)明中采用的算法在保證效果逼真的前提下,還保證了交互式繪制所需要的實時性。
文檔編號G06T1/00GK1773516SQ20051011518
公開日2006年5月17日 申請日期2005年11月15日 優(yōu)先權日2005年7月8日
發(fā)明者孫濟洲, 孫美君, 王秀錦, 于斌, 王征 申請人:天津大學