谷香麗 魏威 楊欣
摘要:為了實(shí)現(xiàn)消費(fèi)級(jí)非專業(yè)設(shè)計(jì)者,能在自由創(chuàng)意建模過(guò)程中實(shí)現(xiàn)創(chuàng)新創(chuàng)意的自由表達(dá)。本文通過(guò)研究三維點(diǎn)云結(jié)構(gòu)、網(wǎng)格變形技術(shù)和細(xì)分算法,提出了新的基于自適應(yīng)細(xì)分的創(chuàng)意變形技術(shù),通過(guò)交互實(shí)現(xiàn)對(duì)三維模型的局部變形和細(xì)分,達(dá)到模型形變的精細(xì)級(jí)控制,使得非專業(yè)用戶可以像“捏橡皮泥”一樣自由地通過(guò)雕刻、拖拽等功能進(jìn)行創(chuàng)意設(shè)計(jì)。
關(guān)鍵詞:自由變形;創(chuàng)意設(shè)計(jì);局部自適應(yīng)細(xì)分
1 引言①
隨著三維打印技術(shù)的普及,消費(fèi)級(jí)三維打印在家具家電、智能可穿戴設(shè)備和文化創(chuàng)意(珠寶、玩具和動(dòng)漫手辦)等個(gè)性化較強(qiáng)的領(lǐng)域,開(kāi)始被廣大用戶關(guān)注并體驗(yàn),越來(lái)越多的大眾都有親手建模的需求,面對(duì)龐大人口基數(shù)的消費(fèi)者市場(chǎng),三維打印技術(shù)的市場(chǎng)潛力巨大。而目前大部分三維建模系統(tǒng)門(mén)檻高、難度大,且消費(fèi)級(jí)用戶的專業(yè)設(shè)計(jì)能力較弱。如何簡(jiǎn)單并直接地讓設(shè)計(jì)者的創(chuàng)意發(fā)揮出來(lái)一直是三維建模技術(shù)中的主要難題。針對(duì)該問(wèn)題,需提出新的創(chuàng)意變形建模方法,用于創(chuàng)意設(shè)計(jì)。讓用戶像“捏橡皮泥”一樣自由地通過(guò)雕刻、拖拽等功能進(jìn)行創(chuàng)意設(shè)計(jì)。
而目前大部分建模系統(tǒng)采用非均勻有理B樣條(NURBS)進(jìn)行建模,一方面,采用NURBS曲面造型系統(tǒng),使得建模門(mén)檻過(guò)高、學(xué)習(xí)難度大;另一方面,雖然NURBS在航空、汽車和航海上得以應(yīng)用,但是NURBS在表達(dá)復(fù)雜自然形狀方面會(huì)遭遇拓?fù)鋯?wèn)題,NURBS很難表達(dá)復(fù)雜的拓?fù)?。因此人們提出曲面?xì)分方法,該方法是基于網(wǎng)格細(xì)化的離散曲面表現(xiàn)形式,實(shí)現(xiàn)從任意拓?fù)渚W(wǎng)格構(gòu)建光滑曲面。讓用戶在創(chuàng)意建模時(shí),具有更高的靈活性,而不需要考慮復(fù)雜的技術(shù)細(xì)節(jié)。目前已有很多經(jīng)典的細(xì)分變形方法,包括基于四邊形網(wǎng)格細(xì)分的Catmull-clark模式,基于三角形網(wǎng)格細(xì)分變形的Loop模式,基于任意多邊形網(wǎng)格細(xì)分變形的Doo-Sabin模型等。其中文獻(xiàn)[1]、文獻(xiàn)[2]和文獻(xiàn)[3]均基于Catmull-clark細(xì)分變形規(guī)則,提出基于四邊形網(wǎng)格的可調(diào)自適應(yīng)細(xì)分方法,改善了傳統(tǒng)Catmull-clark均勻細(xì)分規(guī)則,加入調(diào)節(jié)控制因子,增加曲面細(xì)分造型的靈活性。文獻(xiàn)[2]又采用曲面上點(diǎn)的曲率控制細(xì)分次數(shù),控制模型數(shù)據(jù)量的同時(shí)達(dá)到良好的曲面造型效果。文獻(xiàn)[3]引入尖銳邊概念,使光滑的細(xì)分曲面能夠表示尖銳特征,實(shí)現(xiàn)造型的多樣性。文獻(xiàn)[4]則以傳統(tǒng)Loop均勻細(xì)分方法為導(dǎo)向,提出基于三角形網(wǎng)格自適應(yīng)細(xì)分方法,類比于文獻(xiàn)[2]中以曲率為控制細(xì)分因子,該文提出二面角準(zhǔn)則控制模型細(xì)分次數(shù),降低曲面片數(shù)量。文獻(xiàn)[5]將B樣條曲面的節(jié)點(diǎn)嵌入算法推廣到任意拓?fù)渚W(wǎng)格上,突破單一類型網(wǎng)格細(xì)分,實(shí)現(xiàn)任意的多邊形網(wǎng)格細(xì)分。
本文提出一種基于三角網(wǎng)格自適應(yīng)曲面細(xì)分的自由變形方法,并應(yīng)用到創(chuàng)意建模中。該方法總體分為三步,首先,構(gòu)造新的基于交互的創(chuàng)意變形控制方法,控制交互拾取的網(wǎng)格頂點(diǎn)自然、光順變形;其次,引入以Loop細(xì)分模式為背景的可調(diào)細(xì)分規(guī)則,對(duì)網(wǎng)格變形區(qū)域進(jìn)行細(xì)分,增加網(wǎng)格細(xì)分變形的靈活性;最后,提出新的細(xì)分控制規(guī)則以提高細(xì)分變形效率。本文提出的基于交互的細(xì)分變形方法,對(duì)要造型處理的部位進(jìn)行曲面細(xì)分,實(shí)現(xiàn)形狀的精細(xì)級(jí)控制,支持用戶創(chuàng)意的表達(dá),用于創(chuàng)意設(shè)計(jì),降低創(chuàng)意設(shè)計(jì)操作門(mén)檻,打通萬(wàn)眾創(chuàng)新與 3D 打印制造的對(duì)接通道,吸引廣大消費(fèi)者的使用。該方法可以更高效靈活地、更準(zhǔn)確地讓創(chuàng)作者的創(chuàng)意發(fā)揮出來(lái)?;诩?xì)分的創(chuàng)意建模流程圖如圖1所示。
2 創(chuàng)意變形建模技術(shù)
為了實(shí)現(xiàn)模型的創(chuàng)意變形,并降低創(chuàng)意建模門(mén)檻,讓新手能夠快速上手,本文提出了新的創(chuàng)意變形技術(shù),該技術(shù)只需要設(shè)計(jì)者按照自己的設(shè)計(jì)意圖,像捏橡皮泥一般,在模型需要變形的區(qū)域拖動(dòng)鼠標(biāo),即可達(dá)到選中區(qū)域變形,另外該方法實(shí)現(xiàn)了變形區(qū)域與非變形區(qū)域的光滑過(guò)度,使變形區(qū)域更加自然。
對(duì)于本文提出的創(chuàng)意變形方法,首先,遍歷創(chuàng)意變形曲面的局部三角形網(wǎng)格,然后對(duì)該區(qū)域內(nèi)所有的三角形頂點(diǎn)依據(jù)如下規(guī)則進(jìn)行自由變形。
1)設(shè)拾取半徑為r,偏移峰值為h。
如圖3所示,采用以上控制變形方法,在模型上拖動(dòng)鼠標(biāo)進(jìn)行交互操作,實(shí)現(xiàn)對(duì)模型的局部自由變形。其中圖3a為初始三角網(wǎng)格模型,圖3b和圖3c則是采用 控制變形函數(shù)對(duì)模型進(jìn)行局部變形結(jié)果,由變形結(jié)果可以看出,模型變形區(qū)域與非變形區(qū)域之間的過(guò)渡比較光順、自然。
然而,直接對(duì)模型進(jìn)行創(chuàng)意變形,難以貼合設(shè)計(jì)師的創(chuàng)作意圖,會(huì)使變形模型顯示粗糙,在模型變形的過(guò)程中增加曲面細(xì)分技術(shù),可提高模型的光順性,提升模型的美觀。因此本文提出以Loop細(xì)分模式為背景,并加入細(xì)分控制因子,構(gòu)造新的細(xì)分規(guī)則實(shí)現(xiàn)對(duì)初始網(wǎng)格的自適應(yīng)細(xì)分,以適用該章節(jié)提出的基于交互的自由變形方法。
3 曲面細(xì)分方法
曲線細(xì)分的基本思想是每次細(xì)分都在每條邊上插入一個(gè)新的頂點(diǎn),如圖4所示??梢钥吹诫S著細(xì)分次數(shù)的增加,折線逐漸變成一條光滑的曲線。
類比于曲線細(xì)分思想,曲面細(xì)分則需要有幾何規(guī)則和拓?fù)湟?guī)則(鑒于文獻(xiàn)[6]),幾何規(guī)則用于計(jì)算新頂點(diǎn)的位置,拓?fù)湟?guī)則用于確定新頂點(diǎn)的連接關(guān)系。下面介紹基于Loop細(xì)分模式的三角形網(wǎng)格細(xì)分方法。
Loop細(xì)分算法分為傳統(tǒng)Loop細(xì)分方法和可調(diào)控Loop細(xì)分方法。對(duì)于傳統(tǒng)細(xì)分方法,Loop細(xì)分算法由Charles Loop提出,該算法先后采用網(wǎng)格拓?fù)湟?guī)則和幾何規(guī)則完成細(xì)分。其中拓?fù)湟?guī)則就是在三角形每條邊上添加點(diǎn),并將新添加的點(diǎn)兩兩相連,由一個(gè)三角形分裂為4個(gè)新的三角形,即4倍細(xì)分,如圖5所示。那么幾何規(guī)則是在添加新頂點(diǎn)后,按照一定規(guī)則更新網(wǎng)格中所有頂點(diǎn)位置,在更新過(guò)程中使新的網(wǎng)格更加光順。由于細(xì)分一次,三角形的個(gè)數(shù)增長(zhǎng)為原來(lái)的4倍,那么隨著細(xì)分深度的增加網(wǎng)格數(shù)量急劇增長(zhǎng),另一方面,傳統(tǒng)的Loop細(xì)分方法采用固定的細(xì)分模式,在細(xì)分過(guò)程中我們無(wú)法對(duì)細(xì)分曲面進(jìn)行有效的形狀控制。
在自適應(yīng)細(xì)分方法中,采用三角形最大邊長(zhǎng)?A(f ) 作為控制因子,來(lái)判斷當(dāng)前三角形是否滿足給定閾值?,如果滿足則不再進(jìn)入下一次細(xì)分;否則繼續(xù)采用給定細(xì)分方法細(xì)分。其中對(duì)于非活動(dòng)面,不在其邊上插入新的頂點(diǎn),對(duì)于活動(dòng)面,采用可調(diào)Loop細(xì)分規(guī)則進(jìn)行插入新點(diǎn)和更新已有頂點(diǎn)。對(duì)于新創(chuàng)建的面繼續(xù)采用式(6)進(jìn)行判斷,并更新網(wǎng)格直至所有三角面滿足式(6)。該方法可以有效控制曲面細(xì)分次數(shù),在達(dá)到有效表達(dá)創(chuàng)意者意圖的同時(shí),減少細(xì)分變形區(qū)域的面片量。
4 基于細(xì)分曲面的自由變形技術(shù)應(yīng)用
基于細(xì)分曲面的自由造型方法,實(shí)現(xiàn)通過(guò)拖拽物體表面元素來(lái)編輯細(xì)分曲面物體的創(chuàng)意變形。根據(jù)變形量以及變形方式對(duì)模型進(jìn)行動(dòng)態(tài)劃分和調(diào)整,保證模型光順性,實(shí)現(xiàn)模型創(chuàng)意設(shè)計(jì)的自由表達(dá)。本文采用?作為三角形邊長(zhǎng)的控制參數(shù),來(lái)判斷三角形的邊長(zhǎng)是否滿足給定的閾值?,如果三角形的邊長(zhǎng)小于給定閾值則不繼續(xù)細(xì)分,否則繼續(xù)用給定的細(xì)分規(guī)則進(jìn)行細(xì)分。
本文提出的自適應(yīng)細(xì)分變形方法進(jìn)行曲面創(chuàng)意造形規(guī)則。
4)在需要細(xì)分的三角形的邊上采點(diǎn),將三角形采用可調(diào)的自適應(yīng)Loop細(xì)分方法進(jìn)行采點(diǎn)細(xì)分。
5)找到分割邊的鄰接三角形,補(bǔ)充新的邊,修復(fù)網(wǎng)格。
6)平滑新產(chǎn)生的點(diǎn)。
該細(xì)分曲面造型方法提高了模型顯示的光順性,更加貼合創(chuàng)作者的設(shè)計(jì)意圖。
如圖7所示,展示了采用不同方式對(duì)原始模型進(jìn)行變形,圖7b展示了為采用細(xì)分方法直接對(duì)模型進(jìn)行創(chuàng)意造形結(jié)果,從左上方的細(xì)節(jié)圖可以看出,變形后的區(qū)域出現(xiàn)狹長(zhǎng)三角形,當(dāng)變形過(guò)大時(shí),變形三角形會(huì)更加狹長(zhǎng),甚至出現(xiàn)面片的自相交現(xiàn)象。圖7d是運(yùn)用傳統(tǒng)Loop細(xì)分方法對(duì)模型進(jìn)行創(chuàng)意變形,從細(xì)節(jié)圖中可以看出,參與變形的三角形進(jìn)行了細(xì)分,但面片數(shù)量明顯增加。圖7c是運(yùn)用本文提出的可調(diào)自適應(yīng)Loop細(xì)分方法對(duì)模型進(jìn)行創(chuàng)意變形,可見(jiàn),細(xì)節(jié)圖中面片數(shù)量明顯少于圖7d中的面片數(shù)量。
通過(guò)實(shí)驗(yàn)結(jié)果對(duì)比可以看出,本文提出的方法更具有豐富的表現(xiàn)力,在達(dá)到創(chuàng)作者意圖的同時(shí),降低操作門(mén)檻,簡(jiǎn)化操作流程,提高模型的創(chuàng)意效率。另外,在進(jìn)行模型細(xì)分變形時(shí),可以有效降低網(wǎng)格面片增長(zhǎng)數(shù)量。
5 結(jié)束語(yǔ)
本文將細(xì)分曲面技術(shù)和自由變形兩大關(guān)鍵技術(shù)應(yīng)用到創(chuàng)意建模中,提出了基于細(xì)分曲面的創(chuàng)意建模技術(shù),實(shí)現(xiàn)三維模型自由設(shè)計(jì)。其中自由變形技術(shù)采用新的自由變形規(guī)則,實(shí)現(xiàn)了變形區(qū)域與非變形區(qū)域的光滑過(guò)度,使變形區(qū)域更加自然;另外曲面細(xì)分采用傳統(tǒng)Loop細(xì)分方法,并引入自適應(yīng)細(xì)分方法和形狀控制因子來(lái)控制變形區(qū)域模型的細(xì)分層次,優(yōu)化變形區(qū)域。該技術(shù)簡(jiǎn)潔高效,可在基于web的三維建模工具中實(shí)現(xiàn)三維模型實(shí)時(shí)的創(chuàng)意設(shè)計(jì)。
參考文獻(xiàn)
[1] 任水利.基于四邊形網(wǎng)格的可調(diào)細(xì)分曲面造型方法[J].計(jì)算機(jī)應(yīng)用,007,27(5):1119-1121.
[2] 趙宏慶,彭國(guó)華,葉正麟,等.自適應(yīng)細(xì)分方法進(jìn)行曲面造型[J].計(jì)算機(jī)應(yīng)用研究,2006(9): 72-74+77.
[3] 朱賢益.三維自由創(chuàng)意建模技術(shù)的研究與實(shí)現(xiàn)[D].長(zhǎng)沙:湖南大學(xué),2016.
[4] AMRESH A,F(xiàn)ARIN G,Razdan A.Adaptive subdivision schemes for triangle meshes[Z].Hierarchical and Geometric Methods in Scientific Visualisation,2003:319-327.
[5] DOO D,SABIN M.Behaviour of recursive division surfaces near extraordinary points[J].Computer-Aided Design,1978,10(6):356-360.
[6] 王國(guó)瑾,汪國(guó)昭,鄭建民.計(jì)算機(jī)輔助幾何設(shè)計(jì)[M].北京:高等教育出版社,施普林格出版社,2001.
[7] 趙付青,艾鑫.可調(diào)自適應(yīng)三角網(wǎng)格的細(xì)分曲面造型方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(001):232-235.