朱惠娟,王永利,陳琳琳
1.南京理工大學(xué)紫金學(xué)院 計(jì)算機(jī)學(xué)院,南京210046
2.南京理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,南京210094
20世紀(jì)70年代中期,虛擬仿真技術(shù)[1]開始逐漸擴(kuò)展到民用領(lǐng)域[2]。從最初的靜態(tài)仿真模型展示,到如今人機(jī)交互、數(shù)據(jù)可視化于一體,仿真技術(shù)在各行業(yè)的應(yīng)用越來(lái)越廣泛。航空類的仿真培訓(xùn)系統(tǒng)、BIM建筑生命周期的管理平臺(tái)、制造智能仿真系統(tǒng)等,都在研究如何將仿真技術(shù)更好地與行業(yè)需求相結(jié)合[3]。這些仿真系統(tǒng)的三維場(chǎng)景結(jié)構(gòu)復(fù)雜、數(shù)據(jù)量大,對(duì)真實(shí)性要求高,渲染時(shí)間長(zhǎng)。目前大多數(shù)場(chǎng)景仍然是純手動(dòng)生成階段,大量重復(fù)勞動(dòng)、效率低,往往花了大量的人力與時(shí)間,也得不到滿意的效果,時(shí)常出現(xiàn)延時(shí)、丟幀、卡頓的現(xiàn)象,直接影響用戶體驗(yàn)[4]。針對(duì)此問(wèn)題,學(xué)者們紛紛提出模型輕量化的想法。
模型輕量化可以極大程度減少重復(fù)模型、多余的邊和面,縮短渲染時(shí)間,降低對(duì)處理器計(jì)算能力的要求,降低傳輸成本[5]。以BIM為例,BIM是“建筑信息模型”的簡(jiǎn)稱,是在建筑行業(yè)的一項(xiàng)新技術(shù)。BIM的核心是通過(guò)建立虛擬的建筑工程三維模型,利用數(shù)字化技術(shù),為用戶提供完整的數(shù)據(jù)模型[6]。由于模型鏈接模式比較復(fù)雜,中心模型擁有龐大的數(shù)據(jù)信息,對(duì)計(jì)算機(jī)硬件要求較高,因此進(jìn)入BIM2.0階段以來(lái),加大了對(duì)BIM輕量化的研究,以此提高系統(tǒng)的運(yùn)行速度、降低使用成本[7]。
本文以3D模型點(diǎn)、面數(shù)量最小為優(yōu)化目標(biāo),采用自私羊群優(yōu)化算法對(duì)模型進(jìn)行輕量化設(shè)計(jì),通過(guò)隨機(jī)生成捕食者,為每個(gè)體分配生存值,得到羊群領(lǐng)袖和獵物的位置,從而刪減不必要的點(diǎn)和面,經(jīng)過(guò)多次迭代,實(shí)現(xiàn)模型的最優(yōu)處理。為了驗(yàn)證算法的優(yōu)化效果,在確保三維數(shù)據(jù)準(zhǔn)確性的基礎(chǔ)上,根據(jù)模型冗余的類型,基于3DMax腳本語(yǔ)言MAXScript對(duì)三維模型進(jìn)行輕量化處理,實(shí)驗(yàn)證明,該算法收斂速度快,收斂精度高,穩(wěn)定性強(qiáng),可以智能減少場(chǎng)景的數(shù)據(jù)量、加快模型的優(yōu)化速度、減少工作量,同時(shí)緩解計(jì)算機(jī)處理的壓力。
文獻(xiàn)[8]通過(guò)點(diǎn)云降噪處理、逆向建模、構(gòu)建合并和復(fù)雜構(gòu)建減面的傳統(tǒng)方法處理碎片化點(diǎn)云模型,減少模型個(gè)數(shù)和面數(shù),這樣做雖然模型體量變小,但是真實(shí)感也同時(shí)降低。文獻(xiàn)[9]通過(guò)對(duì)三維模型的非結(jié)構(gòu)化幾何信息進(jìn)行提取,采用壓縮簡(jiǎn)化算法進(jìn)行優(yōu)化處理,提取標(biāo)準(zhǔn)化的標(biāo)注、屬性和檢測(cè)等各類信息,同時(shí)對(duì)曲線、曲面壓縮處理,最終得到數(shù)據(jù)量低的輕量化模型。文獻(xiàn)[10]以基于IFC的進(jìn)度資源信息模型為基礎(chǔ),通過(guò)分析IFC模型與離散時(shí)間仿真模型的異同,實(shí)現(xiàn)IFC模型向仿真模型的自動(dòng)轉(zhuǎn)換。
目前,物體建模的常用方法有通過(guò)三維軟件建模、使用三維掃描儀器建模[11]。市場(chǎng)上有很多優(yōu)秀的建模軟件,較為知名常用的是3Dmax軟件。3DMax中有一些基本的幾何元素,比如立方體、圓柱體等,可以通過(guò)一系列幾何操作,比如平移、布爾運(yùn)算等進(jìn)行模型的構(gòu)建。實(shí)際工程應(yīng)用中,大多數(shù)的建模方法是手動(dòng)減面,耗時(shí)耗力,本文提出采用3DMax內(nèi)置的腳本語(yǔ)言MAXScript進(jìn)行批量減面,可以有效減少優(yōu)化時(shí)間。
MAXScript[12]是3DMax內(nèi)置編程語(yǔ)言,基于OpenGL和VC編制,可以調(diào)用3DMax的大多數(shù)功能,通過(guò)一個(gè)開放式界面自定義和編寫。文獻(xiàn)[13]在構(gòu)建三維城市時(shí),應(yīng)用MAXScript對(duì)3DMAX對(duì)象進(jìn)行開發(fā),證明MAXScript在三維構(gòu)建中有較好的適用性。文獻(xiàn)[14]運(yùn)用MAXScript生成了一個(gè)立體構(gòu)成插件用于立體構(gòu)成課程教學(xué)中。利用MAXScript可以快速實(shí)現(xiàn)傳統(tǒng)模型優(yōu)化過(guò)程中的大量操作[15]。
由于基于群體智能優(yōu)化的方法可避免3D模型變量依賴于形狀參數(shù)信息,且具有優(yōu)化效率高,模型求解簡(jiǎn)單易行,便于實(shí)際工程應(yīng)用等優(yōu)點(diǎn)。眾所周知,國(guó)內(nèi)外尚未有利用群體智能優(yōu)化算法解決3D模型輕量化問(wèn)題的研究工作出現(xiàn)。Selfish Herd Optimizer(SHO)是一種新提出的群體智能優(yōu)化算法,該算法主要模擬羊群受到捕食者攻擊時(shí)的自私行為(盡量聚集到牧群中心遠(yuǎn)離捕食者),它具有易于理解和實(shí)施的特點(diǎn)。
三維模型由網(wǎng)格和紋理構(gòu)成。網(wǎng)格是通過(guò)物體中的點(diǎn)云而形成的,點(diǎn)云包括空間坐標(biāo)信息、光線反射強(qiáng)度以及顏色信息,三維網(wǎng)格就是通過(guò)點(diǎn)到線、線到面、再由面構(gòu)建成三維物體。越復(fù)雜的三維場(chǎng)景,需要點(diǎn)和面的數(shù)量就越多,當(dāng)模型的精細(xì)復(fù)雜度達(dá)到一定程度,就會(huì)給CPU和顯卡帶來(lái)很大的負(fù)擔(dān),造成系統(tǒng)嚴(yán)重的卡頓甚至渲染報(bào)錯(cuò)現(xiàn)象。因此,在設(shè)計(jì)和規(guī)劃場(chǎng)景時(shí),要充分考慮到現(xiàn)實(shí)的需求,刪除不需要的點(diǎn)和面,開展模型優(yōu)化工作。
本節(jié)首先形式化描述3D仿真模型輕量化問(wèn)題,利用智能優(yōu)化的3D仿真模型輕量化問(wèn)題或數(shù)學(xué)模型可描述為:以3D仿真生成的點(diǎn)、面?zhèn)€數(shù)最小為優(yōu)化目標(biāo),即:
自私羊群優(yōu)化SHO算法是由Fausto于2017年提出的元啟發(fā)式算法[16],它主要基于漢密爾頓[17]提出的自私群理論來(lái)模擬獵物與捕食者之間的狩獵關(guān)系。當(dāng)群體中的個(gè)體受到捕食者的攻擊時(shí),為了增加生存機(jī)會(huì),群體中的個(gè)體產(chǎn)生聚集行為,個(gè)體更有可能移動(dòng)到相對(duì)安全的位置(群體的中心位置),并且群體的邊緣個(gè)體更容易受到攻擊,這也導(dǎo)致群體的邊緣個(gè)體逃離群體,以增加他們被捕食者攻擊時(shí)的生存機(jī)會(huì)。該方法假設(shè)整個(gè)平原是一個(gè)解空間,該算法包含兩個(gè)不同的搜索因子:被狩獵群和狩獵群。每個(gè)搜索因子通過(guò)一組不同的進(jìn)化算子指導(dǎo)算法的計(jì)算,以便更好地模擬獵物與捕食者關(guān)系之間的關(guān)系。
(1)初始化種群個(gè)體
假設(shè)自私羊群體優(yōu)化算法的群體集合是S,它包含N個(gè)種群個(gè)體,本文中個(gè)體對(duì)應(yīng)三維網(wǎng)絡(luò)中的面和點(diǎn)。種群中的每一個(gè)體被定義為Si=(si,1,si,2,…,si,n),其代表個(gè)體在種群中的位置信息,n代表解決方案的大?。ㄔO(shè)計(jì)面總數(shù))。整個(gè)種群組的初始化公式如下:
其中xlowj和xhighj 分別表示解空間的下限和上限。算法參數(shù)值的范圍:i=1,2,…,N和j=1,2,…,n。rand()表示隨機(jī)函數(shù),生成值的范圍落在區(qū)間[0,1]內(nèi)。
在自私羊群優(yōu)化算法中,整個(gè)種群S被分為兩個(gè)子群:H和P(S=H∪P),H(H=h1,h2,…,hNh)代表一群獵物,P(P=p1,p2,…,pNp)代表一群捕食者。在自然界中,獵物的數(shù)量通常多于捕食者的數(shù)量。在SHO中,獵物(Nh)的數(shù)量占總個(gè)體的70%~90%(N),其余的個(gè)體被認(rèn)為是捕食者(Np)。Nh和Np按以下公式計(jì)算:
其中,rand()表示一個(gè)隨機(jī)數(shù),其值范圍為0.7到0.9,而floor(·)表示將實(shí)數(shù)轉(zhuǎn)換為整數(shù)的函數(shù)。
整個(gè)過(guò)程都在不斷優(yōu)化點(diǎn)和面,任何形狀的圖形,捕食者都會(huì)遍歷所有獵物的信息,因此,三維網(wǎng)格不分模型形狀,將隨機(jī)生成獵物和捕食者。
(2)分配生存價(jià)值
在SHO中,為整個(gè)種群(S)的每個(gè)體(si)分配一個(gè)生存值(SVsi),其代表個(gè)體的生存能力,有機(jī)會(huì)在攻擊中生存或成功殺死攻擊中的獵物。生存價(jià)值的數(shù)學(xué)公式定義如下:
其中,f(·)代表目標(biāo)函數(shù),fbest和fworst分別代表目標(biāo)函數(shù)的最佳值和最差值。對(duì)70%~90%的獵物計(jì)算生存價(jià)值,生存價(jià)值最高的為獵物領(lǐng)袖,生存價(jià)值越低的為最容易被捕獲的獵物。
(3)算法的結(jié)構(gòu)
基于SHO的3D模型輕量化算法的結(jié)構(gòu)主要包括四個(gè)方面:①獵物(被捕食者)領(lǐng)袖的運(yùn)動(dòng);②獵物追隨者的跟隨運(yùn)動(dòng)或逃脫運(yùn)動(dòng);③捕食者的狩獵運(yùn)動(dòng);④捕食階段和恢復(fù)階段。
①獵物領(lǐng)袖的運(yùn)動(dòng)
獵物的領(lǐng)導(dǎo)者被定義為獵物種群中最大的生存價(jià)值。
定義公式如下:
獵物領(lǐng)袖的位置更新如下:
α代表區(qū)間[0,1]之間的隨機(jī)數(shù),α越大,位置更新越快,捕獲的獵物越多;α越小,捕獲的獵物越少。φ代表個(gè)體之間的吸引力,pM代表獵物的相對(duì)危險(xiǎn)位置,φ與pM定義如下:
②獵物追隨者的跟隨運(yùn)動(dòng)或逃脫運(yùn)動(dòng)
在獵物種群中,獵物追隨者分為跟隨獵物(HF)和逃生獵物(HD),跟隨獵物又分為優(yōu)勢(shì)獵物(Hd)和下屬獵物(Hs)。
HF,HD,Hd與Hs定義如下:
其中SVhu代表獵物生存價(jià)值的平均值,定義如下:
跟隨獵物的位置更新公式如下:
其中,β,γ和δ表示區(qū)間[0,1]內(nèi)的隨機(jī)數(shù)形式,hci表示局部最優(yōu)個(gè)體,hM表示獵物的相對(duì)安全位置,其定義如下:
其中ri,j代表獵物個(gè)體之間的歐幾里德距離。逃生獵物的位置更新公式如下:
其中,xbest表示全局最優(yōu)位置,β和γ表示在區(qū)間[0,1]內(nèi)的隨機(jī)數(shù),β表示距離獵物領(lǐng)袖位置,β越小,表示距離越近;γ表示控制隨機(jī)偏移值的長(zhǎng)短,γ越小,表示偏移值越小。ε表示空間解中的隨機(jī)方向。
③捕食者的狩獵運(yùn)動(dòng)
在捕食者種群中,捕食者的位置更新公式如下:
其中,ρ代表區(qū)間[0,1]之間的隨機(jī)數(shù),ρ值越大,位置更新越遠(yuǎn),越容易忽略獵物。hr是基于捕食概率從獵物種群中隨機(jī)選擇的獵物,捕食概率(θpi,hj)定義如下:
ωpi,hj表示捕食者和獵物之間的吸引力,吸引力的數(shù)學(xué)公式定義如下:
其中||pi-hj||2代表pi和hj之間的歐幾里德距離。
④捕食階段和恢復(fù)階段
捕食階段:每個(gè)獵物都有一個(gè)危險(xiǎn)的區(qū)域,如果它屬于這個(gè)領(lǐng)域,很可能被捕食者捕殺。危險(xiǎn)域通常是一個(gè)圓,其半徑定義為:
危險(xiǎn)區(qū)域的獵物收集定義如下:
獵物在危險(xiǎn)區(qū)域被獵殺的概率定義如下:
恢復(fù)階段:在SHO中,被捕食者獵殺的所有獵物都將被新生的獵物所取代,新的獵物將通過(guò)交配操作產(chǎn)生,SHO通過(guò)交配概率選擇交配獵物,其定義如下:
其中M代表一群沒(méi)有被捕食者捕殺的獵物集,交配操作定義如下:
函數(shù)mix(·)用于從不同個(gè)體(s=r1,r2,…,rn)中選擇維度組件?;赟HO的模型輕量化算法3DL-SHO如算法1所示:
算法1基于SHO的模型輕量化算法
1.Input 3D模型網(wǎng)絡(luò)向量Si=(si,1,si,2,…,si,n)
2.Begin
3.利用公式(1)初始化所有個(gè)體S
4.定義羊群成員和捕食者的個(gè)數(shù),利用公式(2)、(3)并將S分為兩組:H與P
5.For entire S do
6.利用公式(6)計(jì)算生存值
7.End For
8.While(t<Max number of iterations)
9.執(zhí)行自私羊群移動(dòng)操作
10. For each selfish herd
11. IF leader of the herd
12. 利用公式(8)為羊群領(lǐng)袖更新位置
13. Else
14. 利用公式(6)和(19)更新羊群跟隨或逃離運(yùn)動(dòng)
15. End IF
16. End For
17.捕食者移動(dòng)操作
18. For each predators
19. For each selfish herd
20. 利用公式(21)計(jì)算追逐概率
21. End For
22. 利用公式(20)更新捕食者位置
23. End For
24.利用公式(6)重新計(jì)算H和P中每個(gè)成員的生存值
25.利用公式(23)計(jì)算危險(xiǎn)域半徑R
26.利用公式(24)、(25)執(zhí)行捕食階段
27.利用公式(26)、(27)執(zhí)行恢復(fù)階段
28. t=t+1
29.End while
30.返回羊群領(lǐng)導(dǎo)者位置
31.Output點(diǎn)、面最優(yōu)值
32.End
表1 實(shí)驗(yàn)中用到的測(cè)試函數(shù)
3DL-SHO運(yùn)行中對(duì)模型優(yōu)化的幾個(gè)啟發(fā)式原則包括:
(1)采用Polygon多邊形建模方法,根據(jù)需要配合網(wǎng)格平滑生成曲面,制作出各種形狀的三維物體。
(2)運(yùn)用單面建模與多邊形建模相配合,重點(diǎn)構(gòu)建視覺(jué)范圍內(nèi)看到的模型,不在視覺(jué)范圍內(nèi)的模型可以適當(dāng)減少模型面片。
(3)如果網(wǎng)格模型的面數(shù)減少對(duì)模型的輪廓沒(méi)有影響,這些面就可以刪除,或者用貼圖來(lái)代替。
(4)貼圖的大小直接影響顯卡的處理速度,在達(dá)到顯示效果的情況下,選用更少的材質(zhì)、低分辨率的貼圖。對(duì)于規(guī)則的模型,可以通過(guò)分析建筑模型網(wǎng)格生成的特征,生成網(wǎng)格遍歷條件,利用MAXScript腳本語(yǔ)言,循環(huán)簡(jiǎn)化場(chǎng)景表面的細(xì)節(jié),從而使場(chǎng)景的模型面數(shù)大大精簡(jiǎn),最終實(shí)現(xiàn)輕量化的目標(biāo);對(duì)于不規(guī)則的模型,也就是包含了大量位置錯(cuò)亂的點(diǎn)、面時(shí),可以通過(guò)刪除錯(cuò)誤的面,同時(shí)根據(jù)模型生成算法,在保持原有數(shù)據(jù)不變的情況下智能生成新模型,以替代舊模型的方式,從而達(dá)到優(yōu)化的目的。
為了驗(yàn)證基于自私羊群優(yōu)化的3D模型輕量化方法性能,使用5個(gè)基準(zhǔn)函數(shù)進(jìn)行測(cè)試,該算法將與烏鴉搜索算法(記為3DL-CSA)[18],粒子群優(yōu)化[19](記為3DL-PSO)進(jìn)行比較,所有基準(zhǔn)函數(shù)和算法的具體參數(shù)均參考文獻(xiàn)[16]。所有算法的種群大小(N)設(shè)置為50個(gè)個(gè)體,最大迭代次數(shù)設(shè)置為1 000(T)[20]。實(shí)驗(yàn)中,所用機(jī)器配置是CPU是i7 4710,主頻是2.5 GHz,970顯卡,16 GB內(nèi)存?;鶞?zhǔn)函數(shù)如表1所示,實(shí)驗(yàn)數(shù)據(jù)如表2所示。
表2給出了實(shí)驗(yàn)結(jié)果,其中“f”代表基準(zhǔn)函數(shù),“BV”、“MV”和“SD”分別代表最佳解決方案的最佳值、平均值和標(biāo)準(zhǔn)偏差。
從表2可以看出,對(duì)于函數(shù)f1,3DL-SHO的平均值的準(zhǔn)確度分別比其他兩種算法的次優(yōu)解高16和14個(gè)數(shù)量級(jí),對(duì)于函數(shù)f2、f3和f4,3DL-SHO的平均值的準(zhǔn)確度分別比3DL-CSA的次優(yōu)解決方案高14、16和5個(gè)數(shù)量級(jí)。與3DL-PSO算法相比,平均值的準(zhǔn)確度分別增加了7、8和1個(gè)數(shù)量級(jí)。
表2 算法優(yōu)化實(shí)驗(yàn)結(jié)果
對(duì)于函數(shù)f5,3DL-SHO的平均值的準(zhǔn)確度分別比3DL-CSA和3DL-PSO的次優(yōu)解高13個(gè)數(shù)量級(jí)。在功能上,3DL-CSA的平均值的準(zhǔn)確度最好,平均值為-3.99E+03。3DL-SHO的平均值為-1.25E+03,與3DL-PSO相比,平均值的準(zhǔn)確度增加了1個(gè)數(shù)量級(jí)。從上述實(shí)驗(yàn)數(shù)據(jù)可以看出,所提出的算法與原算法和其他算法相比,對(duì)函數(shù)解的精度有很大的提高。
本文同時(shí)也測(cè)試了算法對(duì)應(yīng)這幾個(gè)基準(zhǔn)函數(shù)的收斂圖和標(biāo)準(zhǔn)方差圖,通過(guò)結(jié)構(gòu)的分析來(lái)評(píng)估所提方法的性能。該算法的收斂速度最快,具有很強(qiáng)的穩(wěn)定性和最高的求解精度??梢钥吹剿崴惴ǖ氖諗克俣群途仍诘?00次迭代后已經(jīng)超過(guò)了其他算法。
PSO的收斂速度和精度稍微接近所提出的算法,但在迭代終止之前,其性能不超過(guò)所提出的算法。從上述實(shí)驗(yàn)數(shù)據(jù)和圖片可以看出,與其他算法相比,3DLSHO該算法的性能在解決函數(shù)優(yōu)化問(wèn)題上具有很大的優(yōu)勢(shì)。該算法收斂速度快,收斂精度高,穩(wěn)定性好。
為了驗(yàn)證本文提出的3D模型輕量化方法在實(shí)際應(yīng)用中的效果,本文構(gòu)建了兩組3D模型仿真實(shí)驗(yàn),分別對(duì)應(yīng)最常見(jiàn)的兩種3D模型冗余情況。
無(wú)規(guī)則的點(diǎn)、面冗余,指的是模型有大量位置錯(cuò)亂的點(diǎn)和面,不但使模型體積變大,也影響了模型的UV展開和烘焙。如果直接把Revit模型導(dǎo)入交互引擎中,會(huì)出現(xiàn)不能貼圖等問(wèn)題,因此要將模型先導(dǎo)入3Dmax或類似的三維建模軟件中優(yōu)化。但是當(dāng)把Revit模型導(dǎo)入3DMax中時(shí),又會(huì)出現(xiàn)大量位置錯(cuò)誤的點(diǎn)和面。如圖1所示,尤其以圓柱體的模型,比如管線、彎頭出現(xiàn)這樣的現(xiàn)象最多。
圖1 BIM模型
本文使用3DL-SHO智能方法解決此問(wèn)題,主要思想是遍歷待優(yōu)化的模型,獲得模型的位置等數(shù)據(jù)信息,根據(jù)模型生成的邏輯方式,調(diào)用3DL-SHO算法,自動(dòng)在原位置上生成新的模型,并替代舊模型。
實(shí)驗(yàn)?zāi)P腿鐖D1所示,來(lái)自BIM房屋系統(tǒng)8層樓,用Revit建模,模型大小為10.7 MB,場(chǎng)景面數(shù)為122 224,頂點(diǎn)為70 576。每一層樓的內(nèi)部空間如圖2所示。
圖2 內(nèi)部模型
將場(chǎng)景導(dǎo)入3DMAX后,管線處生成了大量位置錯(cuò)誤的點(diǎn)和面,如圖3和圖4所示,導(dǎo)入前是圓形,導(dǎo)入后,變成了正八邊形。
實(shí)驗(yàn)操作如下:
圖3導(dǎo)入3DMAX前
圖4導(dǎo)入3DMAX后
(1)計(jì)算管線兩底面的高度;(2)獲取底面直徑;(3)設(shè)定分段數(shù);(4)調(diào)用3DLSHO算法,生成新管線替代舊管線。
優(yōu)化之前,不規(guī)則的點(diǎn)、面,不適合展UV展開貼圖,如圖5所示;優(yōu)化后,方便展UV貼圖,在UV展開后輸入了“消防水管”貼圖,效果如圖6所示。
圖5優(yōu)化前的UV
圖6優(yōu)化后的UV
從實(shí)驗(yàn)中看出,這種以機(jī)器建模替代舊模型的優(yōu)化方式是根據(jù)模型的特征計(jì)算機(jī)出新的模型,同時(shí)不會(huì)改變模型的坐標(biāo)等信息,比較好地保留了主要數(shù)據(jù)。如果手動(dòng)在原模型上修改,重復(fù)工作量巨大;如果手動(dòng)完全重新構(gòu)建,就很難保證模型坐標(biāo)的正確。實(shí)驗(yàn)前后對(duì)比數(shù)據(jù)如表3所示。
表3 優(yōu)化前后對(duì)比數(shù)據(jù)
有規(guī)則的點(diǎn)、面冗余,指的是多余的點(diǎn)、面有規(guī)律可循,但手動(dòng)刪除,仍然要花費(fèi)大量的人力,本實(shí)驗(yàn)的主要思想是遍歷所有待優(yōu)化的模型,依次選擇所有的點(diǎn),自動(dòng)進(jìn)行優(yōu)化操作。實(shí)驗(yàn)?zāi)P腿鐖D7所示,模型是一個(gè)水電廠的消防裝置,面數(shù)為14 660、點(diǎn)數(shù)為43 980,模型的頂點(diǎn)都是離散的,不但占內(nèi)存,也不方便貼圖。如果手動(dòng)焊接,工作量很大。
本實(shí)驗(yàn)將通過(guò)自動(dòng)焊接,完成每個(gè)模型點(diǎn)的焊接,有規(guī)則的點(diǎn)面冗余去除優(yōu)化步驟:
圖7 消防裝置
(1)根據(jù)條件遍歷模型,轉(zhuǎn)換成可編輯多邊形;(2)在點(diǎn)的模式下,選擇所有點(diǎn);(3)調(diào)用3DLSHO算法,生成焊接的值,進(jìn)行點(diǎn)的焊接;(4)進(jìn)行平滑操作。
通過(guò)批量焊接點(diǎn),頂點(diǎn)由43 980,優(yōu)化到了7 730,對(duì)貼圖效果有了大大的改進(jìn),如圖8和圖9所示。
圖8優(yōu)化前的UV
圖9 優(yōu)化后的UV
綜上所述,本文所提方法在不影響顯示效果的情況下,可以對(duì)模型有大量的優(yōu)化,同時(shí)計(jì)算過(guò)程簡(jiǎn)單,占用內(nèi)存空間較少。
綜上所述,為了降低計(jì)算機(jī)的硬件負(fù)荷,在不影響仿真模型真實(shí)感的前提下,應(yīng)當(dāng)對(duì)數(shù)字化模型進(jìn)行優(yōu)化。針對(duì)當(dāng)前優(yōu)化方法不多的情況,提出了一種基于自私羊群智能優(yōu)化的三維仿真模型輕量化方法,由于模型出現(xiàn)的問(wèn)題都不相同,本文選用最有代表性的兩類問(wèn)題,分別是大量重復(fù)的規(guī)則的點(diǎn)、面以及不規(guī)則的點(diǎn)、面,以智能化構(gòu)建新模型以及修改原模型兩種解決方案,均實(shí)現(xiàn)了優(yōu)化效果。研究結(jié)果證明,只要根據(jù)模型的特點(diǎn),所提出的方法能快速優(yōu)化模型,且實(shí)現(xiàn)過(guò)程較簡(jiǎn)單。