一種通過二維樹冠輪廓生成三維樹木的方法
【專利摘要】一種通過二維樹冠輪廓生成三維樹木的方法,用于自然界三維樹木的計(jì)算機(jī)模擬。根據(jù)用戶輸入的二維樹冠輪廓,按照枝條“倒生長”的方式,生成三維樹木。枝條“倒生長”的方式,是本發(fā)明最重要的區(qū)別于其他相近技術(shù)的特征。用戶輸入任一樹木的二維輪廓,由二維輪廓線上的點(diǎn)推算三維輪廓面上的點(diǎn),最后以三維輪廓面上的點(diǎn)為樹枝開始生長點(diǎn),以一定范圍內(nèi)的角度和最短生長長度為限制條件,尋找在上級(jí)枝條上的結(jié)束生長點(diǎn),在開始生長點(diǎn)和結(jié)束生長點(diǎn)間繪制枝條。該發(fā)明克服了現(xiàn)有計(jì)算機(jī)生成樹木方法中的輸入復(fù)雜、形態(tài)隨機(jī)的缺點(diǎn),能夠嚴(yán)格按照用戶的輸入構(gòu)造各種形態(tài)的樹木。生成速度快,生成樹木的視覺效果好,適合在大規(guī)模場景中構(gòu)造樹木時(shí)使用。
【專利說明】一種通過二維樹冠輪廓生成三維樹木的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種通過計(jì)算機(jī)生成自然界三維真實(shí)感樹木的新方法,其特征是:只需要用戶通過鼠標(biāo)輸入一個(gè)樹木的二維樹冠輪廓,然后利用本發(fā)明中的方法生成相應(yīng)樹冠形態(tài)的三維樹木,生成速度快,適合各種由計(jì)算機(jī)生成的大規(guī)模場景中樹木的三維建模,例如游戲娛樂、虛擬場景、戰(zhàn)場等領(lǐng)域。
【背景技術(shù)】
[0002]目前,三維真實(shí)感樹木的繪制方法主要有參數(shù)法,基于圖像的樹木繪制和基于草圖的樹木建模等。Oppenheimer利用分形算法來進(jìn)行樹的建模[I],缺點(diǎn)是:在建模的過程中,需要輸入較多的參數(shù),如設(shè)置樹枝間的夾角、樹枝與樹主干的大小比例、樹主干的錐形比率、彎曲度、樹枝分叉位置等參數(shù),但是最終生成的樹木在形態(tài)上也具有隨機(jī)性,樹形不可完全控制。Reeves和Blau提出利用粒子系統(tǒng)來對(duì)樹和草進(jìn)行建模[2],他們重點(diǎn)在于強(qiáng)調(diào)樹林總體的環(huán)境而不是去關(guān)注單棵樹的結(jié)構(gòu)細(xì)節(jié)。De RefTye等人提出嚴(yán)格按照樹木本身的特征規(guī)律來進(jìn)行建模[3],并在模擬樹生長方面取得了較好的效果,缺點(diǎn)是:要實(shí)現(xiàn)對(duì)樹的建模必須具有對(duì)數(shù)和樹模型相當(dāng)多的知識(shí)和了解才能實(shí)現(xiàn)真實(shí)自然樹的建模。Weber和Penn使用了幾何規(guī)則來實(shí)現(xiàn)樹的建模[4],其重點(diǎn)在于實(shí)現(xiàn)整棵樹的幾何結(jié)構(gòu)。Reche-Martinez等,Neubert提出基于圖像的樹建模方法[5,6],雖然非常精確但很復(fù)雜。Okabe等人提出了基于草圖的樹的建模[7],但是Okabe的方法要求用戶給出樹枝的結(jié)構(gòu)。Wither等人提出了通過繪制二維的樹的邊緣輪廓,根據(jù)輪廓生成三維幾何樹的草圖建模樹的新方法[8],取得了比較好的效果,但是所生成樹木的細(xì)節(jié)太多,不適合在大規(guī)模場景中使用。
[0003]在各種大規(guī)模場景的構(gòu)造中,用戶關(guān)心的是加入其中的樹木的整體形態(tài),需要根據(jù)場景設(shè)計(jì)的需要加入特定形態(tài)、繪制速度快的樹木,而不必要去關(guān)注樹冠內(nèi)部枝條生成的細(xì)節(jié)。本發(fā)明就是適合大規(guī)模場景中樹木構(gòu)造的方法,能夠生成形態(tài)可控,細(xì)節(jié)較少,輸入簡單的三維真實(shí)感樹木。
[0004][I] Oppenheimer P.Real time design and animation of fractal plants andtrees [ J].Computer Graphics (SIGGRAPH,86 Conf.Proc.), 1986, 20:55-64
[2]Reeves ff, Blau R.Approximate and probabilistic algorithms for shadingand rendering structured particle systems [J].Computer Graphics(SIGGRAPH’ 85Conf.Proc.),1985,19:313-322
[3]De Reffye P, Edelin C, Francon J, et al.Plant models faithful tobotanical structure and development [J].0mputer Graphics(SIGGRAPH’88 Conf.Proc.), 1988,22:151-158
[4]Weber J,Penn J.Creation and rendering of realistic trees [J].Proceedings of SIGGRAPH’ 95, 1995:119-128
[5]Reche-Mart inez A, Martin I, Drettakis G.Volumetric recon-structionand interactive rendering of trees from hotographs [J].ACM Trans, onGraphics(Proceedings of SIGGRAPH,04),2004, 23(3):720-727
[6]Neubert B,Franken T,Deussen 0.Approximate image-based tree modelingusing particle flows [J].ACM Transactions on Graphics(Proceedings ofSIGGRAPH’ 07),2007,26 (3): 88
[7]Okabe M, Owada S, Igarash1.1nteractive design of otanical treesusing freehand sketches and example-based editing [J].Computer GraphicsForum, Proceedings of urographies, 2005, 24(3):487-496
[8]Wither J, Boudon F, Cani M-P, et al.Structure from ilhouettes:a newparadigm for fast sketch-based design of trees [J].Com-puter Graphics Forum,Proceedings of Eurographics, 2009, 28 (2):541-550。
【發(fā)明內(nèi)容】
[0005]一種生成三維真實(shí)感樹木的方法,用戶輸入一個(gè)樹木樹冠的二維輪廓,根據(jù)該二維輪廓按照枝條“倒生長”的方式,生成具有該二維輪廓特征的三維真實(shí)感樹木。用戶輸入二維樹冠輪廓可通過計(jì)算機(jī)鼠標(biāo)在一軟件的輸入界面上完成。枝條“倒生長”的方式中需要首先通過輸入的樹冠二維輪廓生成三維樹冠面上的點(diǎn),從三維樹冠面上的點(diǎn)開始,以一定的角度和最短生長長度的條件尋找另一個(gè)點(diǎn),在兩點(diǎn)之間生成一根樹枝。
[0006]該發(fā)明克服了現(xiàn)有計(jì)算機(jī)生成樹木方法中的輸入復(fù)雜、形態(tài)隨機(jī)(樹木形態(tài)不能完全控制)的缺點(diǎn),而且輸入簡單,不要求使用者對(duì)樹木結(jié)構(gòu)很熟悉,也不要求使用者有繪畫基礎(chǔ),能夠嚴(yán)格按照用戶的設(shè)計(jì)構(gòu)造各種形態(tài)的樹木。生成速度快,不過多關(guān)注細(xì)節(jié),注重生成樹木的視覺效果,適合在大規(guī)模場景中構(gòu)造樹木時(shí)使用。
【專利附圖】
【附圖說明】
[0007]圖1輸入二維樹冠輪廓軟件界面圖。
[0008]圖2三維樹冠面上點(diǎn)的生成過程圖。
[0009]圖3三維枝條的生成過程模擬圖。
[0010]圖4枝條形態(tài)控制圖。
[0011]圖5添加樹葉后的樹木圖。
[0012]技術(shù)方案
下面結(jié)合說明書附圖對(duì)本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案詳細(xì)說明。本發(fā)明涉及要生成真實(shí)感樹木,所以根據(jù)樹木的組成需要分為二維樹冠的輸入、三維樹冠面點(diǎn)的生成、三維枝條的生成、枝條形態(tài)的控制和樹葉的添加5部分來說明,其中第4部分,三維枝條的生成是本發(fā)明區(qū)別于其他樹木構(gòu)造方法的最重要特征。
[0013]1.二維樹冠的輸入
根據(jù)本發(fā)明中的方法,我們開發(fā)了“冠形構(gòu)樹軟件”,如說明書附圖2。用戶可根據(jù)自己的需要、喜好在圖2右側(cè)的樹冠輸入?yún)^(qū)通過鼠標(biāo)拖動(dòng)繪出樹冠的一個(gè)輪廓線草圖,軟件獲取輪廓草圖線上的點(diǎn)后生成三維樹冠面上的點(diǎn),圖2左上顯示圖像為三維樹冠面上的點(diǎn)相互連接形成三維網(wǎng)狀樹冠,圖2左下為以上面的冠型生成的三維樹木樹冠。[0014]2.三維樹冠面點(diǎn)的生成
我們采用旋轉(zhuǎn)取點(diǎn)的簡單方法生成三維樹冠,保證使樹冠前后兩個(gè)側(cè)面的視圖相似。首先以主干為分界線將圖2左側(cè)樹冠輪廓線分為左右兩部分,如說明書附圖2 Ca),以主干為旋轉(zhuǎn)軸,左側(cè)輪廓線上的點(diǎn)順時(shí)針旋轉(zhuǎn)90度得到左側(cè)四分之一樹冠面上的點(diǎn),如圖2(b)是將樹冠面上的點(diǎn)相連后的結(jié)果,左側(cè)輪廓線上的點(diǎn)再順逆針旋轉(zhuǎn)90度得到左側(cè)另一個(gè)四分之一樹冠面上的點(diǎn),如圖2 (b),樹干右側(cè)輪廓線也作類似變化后(如圖2 (c)),將得到圖2 (d)所示的三維樹冠面圖。
[0015]3.三維枝條的生成
樹木枝條生長有其層次性,即由主干分生第一層側(cè)枝,再由第一層側(cè)枝分生第二層側(cè)枝,我們的枝條生成算法中也是按照這樣的順序來生成各個(gè)層次的枝條。如說明書附圖3Ca)為樹冠的一個(gè)平行并過主干的剖面,圖3 (b)中為分生第一層枝條的模擬,枝條由冠面的一點(diǎn)按照箭頭方向以一定的角度a尋找最短到達(dá)主干上的點(diǎn),即分支點(diǎn)。角度a為新生成枝條與上級(jí)枝條在分支點(diǎn)處的夾角,具體角度用戶可以通過菜單進(jìn)行輸入,默認(rèn)角度為單軸分支樹木的夾角35°~40°,且各層枝條生成時(shí)枝間的夾角都在這個(gè)范圍。圖3 (c)為第二層枝條的生成模擬,與第一層枝條生成的區(qū)別在于每個(gè)新生樹枝分支點(diǎn)只能在圖3(b)中所示的第一層枝條上尋找,按照這樣的規(guī)則,第三層枝條生成只能在第二層枝條上尋找分支點(diǎn),如圖3 (d),以此類推來生成多層枝條。
[0016]4.枝條形態(tài)的控制
枝條的彎曲形態(tài)通過Bezier曲線繪制,主干、第一層次和第二層次枝條的直徑大小與枝條的長度成正比,并且每一個(gè)枝條的直徑由底端(分支點(diǎn))到頂端逐漸變小,如說明書附圖4。每個(gè)枝條的直徑大小D=(LXf)/La.,其中L是樹枝的長度,f是直徑系數(shù)(f e [O, I]),La是枝條所在層的層數(shù)(La e {1,2,3,4,…})。
[0017]5.樹葉的添加
可以根據(jù)枝條的層級(jí)來添加樹葉,可只在高層級(jí)的枝條上添加樹葉,形成樹葉稀疏的樹木,如說明書附圖5 (a),或者所有枝條上都添加樹葉,形成茂密的樹木,如圖5 (C)。具體的樹葉添加方法為:在添加樹葉的枝條上取若干點(diǎn)作為樹葉的生長點(diǎn),一個(gè)生長點(diǎn)可添加一片或者二片樹葉,樹葉的形狀可選擇,圖5中樹葉形狀為菱形。
【權(quán)利要求】
1.一種生成三維真實(shí)感樹木的方法,其特征為:根據(jù)用戶輸入任一樹木的二維樹冠輪廓,按照枝條“倒生長”的方式,生成用戶給定輪廓形狀的三維樹木。
2.根據(jù)權(quán)利要求1中所述的需要用戶輸入任一樹木的二維輪廓,可通過計(jì)算機(jī)鼠標(biāo)在相應(yīng)軟件給出的界面上的輸入來完成。
3.根據(jù)權(quán)利要求1中枝條“倒生長”的方式,是本發(fā)明的最重要的區(qū)別如其他相近技術(shù)的特征,該方式需要通過權(quán)利要求2中的方式輸入二維樹冠輪廓后,由二維輪廓線上的點(diǎn)推算三維輪廓面上的點(diǎn),然后從三維輪廓面上的點(diǎn)為樹枝開始生長點(diǎn),以一定的角度和最短生長長度為限制條件尋找在上級(jí)先生枝條上的結(jié)束生長點(diǎn),如果能找到滿足條件的點(diǎn),就在開始生長點(diǎn)和結(jié)束生長點(diǎn)間繪制一個(gè)枝條。
4.根據(jù)權(quán)利要求1中“倒生長”的方式,本發(fā)明中樹木枝條按層生成。
【文檔編號(hào)】G06T17/00GK103914867SQ201310639598
【公開日】2014年7月9日 申請(qǐng)日期:2013年12月4日 優(yōu)先權(quán)日:2013年12月4日
【發(fā)明者】仲蘭芬, 王文忠 申請(qǐng)人:仲蘭芬