本發(fā)明屬于計(jì)算機(jī)動(dòng)畫(huà)制作中群體動(dòng)畫(huà)制作的技術(shù)領(lǐng)域,尤其涉及一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)及其魚(yú)群生成方法。
背景技術(shù):
群體動(dòng)畫(huà)是對(duì)群體行為動(dòng)畫(huà)的簡(jiǎn)稱(chēng),研究和模擬由簡(jiǎn)單個(gè)體組成的群落與環(huán)境以及個(gè)體之間的互動(dòng)行為。隨著計(jì)算機(jī)圖形學(xué)、數(shù)字處理技術(shù)的極速發(fā)展和計(jì)算機(jī)硬件成本的不斷降低,計(jì)算機(jī)動(dòng)畫(huà)技術(shù)在各個(gè)領(lǐng)域中的應(yīng)用都得到了有力地推動(dòng)和普及。群體動(dòng)畫(huà)是計(jì)算機(jī)動(dòng)畫(huà)領(lǐng)域的重要研究方向。它以其大規(guī)模的群體數(shù)量、震撼的運(yùn)動(dòng)和仿真效果,在游戲、娛樂(lè)、教育、軍事模擬、虛擬現(xiàn)實(shí)等多個(gè)領(lǐng)域都發(fā)揮著重要作用。
在現(xiàn)有的群體動(dòng)畫(huà)制作過(guò)程中,如果群體中個(gè)體數(shù)量較少,動(dòng)畫(huà)設(shè)計(jì)師還可以承受,但是如果個(gè)體數(shù)量太多,動(dòng)畫(huà)設(shè)計(jì)師就需要付出繁重的勞動(dòng),因?yàn)槿后w動(dòng)畫(huà)不僅要求群體的運(yùn)動(dòng)協(xié)調(diào)一致,而且要求個(gè)體分別具有獨(dú)特的運(yùn)動(dòng)軌跡,如果手動(dòng)創(chuàng)建每個(gè)個(gè)體以及個(gè)體的運(yùn)動(dòng)路徑,不僅效果不逼真,而且實(shí)現(xiàn)的代價(jià)和成本過(guò)高。
論文“群體動(dòng)畫(huà)虛擬環(huán)境建模與路徑規(guī)劃方法研究”中在角色建模方面,針對(duì)群體角色數(shù)量大、模型相似但不相同等特點(diǎn)和傳統(tǒng)的手工設(shè)計(jì)方法面臨的工作量大、效率低、創(chuàng)新性不足的問(wèn)題,提出了改進(jìn)的元細(xì)胞遺傳算法NICGA,結(jié)合CGA和NURBS技術(shù)實(shí)現(xiàn)群體角色建模,通過(guò)調(diào)整角色模型的NURBS曲線(xiàn)控制點(diǎn)和曲率產(chǎn)生新的模型,利用自適應(yīng)機(jī)制控制參數(shù)設(shè)置,借鑒精英保留和隔代進(jìn)化策略,提高群體角色建模的質(zhì)量和速度,NUCGA方法有效地解決了傳統(tǒng)3D動(dòng)漫角色建模方法難以設(shè)計(jì)出有足夠創(chuàng)意的模型和數(shù)以萬(wàn)計(jì)的3D群體角色建模工作量大的問(wèn)題。
但是,該方法存在一定的不足,雖然與傳統(tǒng)3D動(dòng)漫角色建模方法相比在群體角色建模的質(zhì)量和速度上取得了較好的效果,然而,該方法針對(duì)人工魚(yú)整體進(jìn)行建模,在群體角色建模時(shí)也是調(diào)整整個(gè)角色模型的NURBS曲線(xiàn)控制點(diǎn)和曲率產(chǎn)生新的模型,群體模型的數(shù)量和形態(tài)受到限制。因此,在群體角色建模方面,群體模型的數(shù)量和形態(tài)多樣化還可以得到進(jìn)一步的提高。
綜上所述,現(xiàn)有技術(shù)中在群體角色建模方面如何進(jìn)一步提高群體模型的數(shù)量和形態(tài)多樣化,尚缺乏有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為了解決上述問(wèn)題,提供一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)及其魚(yú)群生成方法。本發(fā)明由魚(yú)群模型生成及魚(yú)群動(dòng)畫(huà)生成兩大部分組成。魚(yú)群模型生成采用實(shí)數(shù)編碼遺傳算法在已有人工設(shè)計(jì)魚(yú)的基礎(chǔ)上生成魚(yú)群模型,生成的魚(yú)群模型具有既相似又不完全相同的特點(diǎn),符合自然界中群聚的魚(yú)群的規(guī)律;魚(yú)群動(dòng)畫(huà)生成采用微粒群算法實(shí)現(xiàn)個(gè)體的避障及碰撞,并有效的實(shí)現(xiàn)聚集、分離及跟隨目標(biāo)等群體移動(dòng)行為的動(dòng)畫(huà)。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng),該系統(tǒng)包括:
人工魚(yú)模型部件單元,其用于采用基于NURBS模型的實(shí)數(shù)編碼遺傳算法生成人工魚(yú)部件,以及根據(jù)所述人工魚(yú)部件進(jìn)行組裝;
和
魚(yú)群模型庫(kù)管理單元,其用于保存所述人工魚(yú)模型部件單元生成的人工魚(yú)部件,選取進(jìn)行組裝的人工魚(yú)部件,以及保存組裝后的人工魚(yú),為魚(yú)群動(dòng)畫(huà)生成單元選取人工魚(yú);
和
魚(yú)群動(dòng)畫(huà)路徑規(guī)劃單元,其用于采用微粒群算法對(duì)魚(yú)群運(yùn)動(dòng)的路徑進(jìn)行規(guī)劃;
和
魚(yú)群動(dòng)畫(huà)生成單元,其用于把從所述魚(yú)群模型庫(kù)管理單元選取的人工魚(yú)導(dǎo)入選定的路徑,生成動(dòng)畫(huà)。
優(yōu)選的,所述人工魚(yú)模型部件單元,包括:
人工魚(yú)模型部件設(shè)計(jì)單元,其用于采用基于NURBS模型的實(shí)數(shù)編碼遺傳算法生成人工魚(yú)部件;
和
人工魚(yú)模型組裝單元,根據(jù)所述人工魚(yú)模型部件設(shè)計(jì)單元生成的工魚(yú)部件組裝成人工魚(yú)。
本發(fā)明為了解決上述問(wèn)題,提供一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)及其魚(yú)群生成方法。本發(fā)明由魚(yú)群模型生成及魚(yú)群動(dòng)畫(huà)生成兩大部分組成。魚(yú)群模型生成采用實(shí)數(shù)編碼遺傳算法在已有人工設(shè)計(jì)魚(yú)的基礎(chǔ)上生成魚(yú)群模型,生成的魚(yú)群模型具有既相似又不完全相同的特點(diǎn),符合自然界中群聚的魚(yú)群的規(guī)律;魚(yú)群動(dòng)畫(huà)生成采用微粒群算法實(shí)現(xiàn)個(gè)體的避障及碰撞,并有效的實(shí)現(xiàn)聚集、分離及跟隨目標(biāo)等群體移動(dòng)行為的動(dòng)畫(huà)。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)的魚(yú)群生成方法,該方法包括以下步驟:
(1)在所述人工魚(yú)模型設(shè)計(jì)單元中,把人工魚(yú)分解成為單個(gè)的部件,并將分解出的各個(gè)部件執(zhí)行實(shí)數(shù)編碼遺傳算法;
(2)分別獲取步驟(1)中各個(gè)部件的NURBS模型,設(shè)置默認(rèn)操作次數(shù)執(zhí)行實(shí)數(shù)編碼遺傳算法,生成新的人工魚(yú)部件;
(3)將步驟(2)中生成的新的人工魚(yú)部件保存至所述魚(yú)群模型庫(kù)管理單元中;
(4)重復(fù)步驟(2)-步驟(3)直至所有的人工魚(yú)部件生成完成;
(5)從所述魚(yú)群模型庫(kù)管理單元中取出人工魚(yú)部件組裝成為人工魚(yú),然后存到魚(yú)群模型庫(kù)。
優(yōu)選的,在所述步驟(1)中,所述部件包括:
魚(yú)身部件,背鰭部件,尾部件,尾鰭部件,肚鰭部件,眼部件和嘴部件。
優(yōu)選的,在所述步驟(2)中,具體步驟包括:
(2-1)提取一個(gè)人工魚(yú)部件的NURBS模型的輪廓線(xiàn);
(2-2)在步驟(2-1)中提取的NURBS模型的輪廓線(xiàn)上選取一組控制點(diǎn),在控制點(diǎn)處對(duì)NURBS模型的輪廓線(xiàn)進(jìn)行放大或縮小,得到一組候選的部件;
(2-3)對(duì)所述候選的部件采用適應(yīng)度函數(shù)進(jìn)行評(píng)價(jià),選取適應(yīng)度值高的部件作為種子,指定次數(shù);
(2-4)對(duì)所述種子進(jìn)行操作直至執(zhí)行完制定次數(shù),生成新的人工魚(yú)部件。
優(yōu)選的,在所述步驟(2-1)中,所述NURBS模型的輪廓線(xiàn)包括U線(xiàn)和V線(xiàn),所述U線(xiàn)是模型表面橫向上的曲線(xiàn),所述V線(xiàn)是模型表面縱向上的曲線(xiàn);
提取NURBS模型的輪廓線(xiàn),即提取NURBS模型的所述U線(xiàn)和所述V線(xiàn)。
優(yōu)選的,在所述步驟(2-2)中,具體步驟包括:
在NURBS模型的所述U線(xiàn)上選取一組控制點(diǎn),以0.8-1.2之間的隨機(jī)數(shù)作為倍數(shù),在所述控制點(diǎn)處對(duì)NURBS模型的U線(xiàn)進(jìn)行放大或縮小,放大或縮小的倍數(shù)作為實(shí)數(shù)編碼遺傳算法的編碼。
優(yōu)選的,在所述步驟(2-2)中,具體步驟包括:
在NURBS模型的所述V線(xiàn)上選取一組控制點(diǎn),以0.8-1.2之間的隨機(jī)數(shù)作為倍數(shù),在所述控制點(diǎn)處對(duì)NURBS模型的V線(xiàn)進(jìn)行放大或縮小,放大或縮小的倍數(shù)作為實(shí)數(shù)編碼遺傳算法的編碼。
優(yōu)選的,在所述步驟(2-3)中,
所述適應(yīng)度函數(shù)為:
其中,
Currenti:當(dāng)前個(gè)體的第i個(gè)曲線(xiàn)的半徑與第一曲線(xiàn)的半徑之間的比率;
Besti:當(dāng)前個(gè)體的第i個(gè)曲線(xiàn)的半徑與第一曲線(xiàn)的半徑之間的最佳比率;
曲線(xiàn)的半徑:控制點(diǎn)到第i個(gè)曲線(xiàn)上的中心點(diǎn)的距離的平均值。
優(yōu)選的,所述步驟(2-4)中,具體步驟包括:
(2-4-1)對(duì)所述種子兩兩進(jìn)行多點(diǎn)交叉;
(2-4-2)對(duì)所述種子進(jìn)行多點(diǎn)變異;
(2-4-3)重復(fù)步驟(2-4-1)-步驟(2-4-2)直至執(zhí)行完所述步驟(2-3)中的指定次數(shù)。
本發(fā)明的有益效果:
(1)本發(fā)明的一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)的魚(yú)群生成方法,利用現(xiàn)有人工設(shè)計(jì)的魚(yú)作為種子,通過(guò)實(shí)數(shù)編碼遺傳算法派生魚(yú)群,在保證魚(yú)群模型的數(shù)量和形態(tài)多樣化的情況下,有效減少設(shè)計(jì)人員的工作量;
(2)本發(fā)明的一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)的魚(yú)群生成方法,其中的實(shí)數(shù)編碼遺傳算法包括交叉和變異操作,可以使生成的魚(yú)群模型具有既相似又不完全相同的特點(diǎn),符合自然界中群聚的魚(yú)群的規(guī)律。
(3)本發(fā)明的一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)及其魚(yú)群生成方法,不僅僅局限于魚(yú)群動(dòng)畫(huà)的制作與魚(yú)群的實(shí)誠(chéng),同樣適用于基于NURBS模型進(jìn)行角色設(shè)計(jì)的各類(lèi)動(dòng)畫(huà)制作。
附圖說(shuō)明
圖1是本發(fā)明的魚(yú)群動(dòng)畫(huà)制作系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明中魚(yú)群生成方法的方法流程示意圖;
圖3是本發(fā)明中一個(gè)鯊魚(yú)模型示意圖;
圖4是本發(fā)明中一個(gè)鯊魚(yú)模型魚(yú)身示意圖;
圖5是本發(fā)明中提取NURBS模型的U線(xiàn)和V線(xiàn)示意圖;
圖6是本發(fā)明中魚(yú)身NURBS模型的U線(xiàn)和V線(xiàn)控制點(diǎn)示意圖;
圖7是本發(fā)明中兩個(gè)雙親魚(yú)身示意圖;
圖8是本發(fā)明中兩個(gè)雙親魚(yú)身NURBS模型的U線(xiàn)和V線(xiàn)示意圖;
圖9是本發(fā)明生成的兩個(gè)孩子魚(yú)身NURBS模型的U線(xiàn)和V線(xiàn)示意圖;
圖10是本發(fā)明生成的兩個(gè)孩子魚(yú)身示意圖;
圖11是本發(fā)明中圖4所示的魚(yú)身的NURBS模型的輪廓線(xiàn)示意圖;
圖12是本發(fā)明中交叉變異生成孩子魚(yú)身的NURBS模型的輪廓線(xiàn)示意圖;
圖13是本發(fā)明中交叉變異生成的孩子魚(yú)身示意圖;
圖14是本發(fā)明執(zhí)行5次疊代后生成的鯊魚(yú)魚(yú)身示意圖;
圖15本發(fā)明生成的魚(yú)群聚集路徑示意圖;
圖16本發(fā)明生成的魚(yú)群聚集動(dòng)畫(huà)示意圖。
具體實(shí)施方式:
應(yīng)該指出,以下詳細(xì)說(shuō)明都是例示性的,旨在對(duì)本申請(qǐng)?zhí)峁┻M(jìn)一步的說(shuō)明。除非另有指明,本文使用的所有技術(shù)和科學(xué)術(shù)語(yǔ)具有與本申請(qǐng)所屬技術(shù)領(lǐng)域的普通技術(shù)人員通常理解的相同含義。
需要注意的是,這里所使用的術(shù)語(yǔ)僅是為了描述具體實(shí)施方式,而非意圖限制根據(jù)本申請(qǐng)的示例性實(shí)施方式。如在這里所使用的,除非上下文另外明確指出,否則單數(shù)形式也意圖包括復(fù)數(shù)形式,此外,還應(yīng)當(dāng)理解的是,當(dāng)在本說(shuō)明書(shū)中使用術(shù)語(yǔ)“包含”和/或“包括”時(shí),其指明存在特征、步驟、操作、器件、組件和/或它們的組合。
在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
實(shí)施例1:
本發(fā)明為了解決上述問(wèn)題,提供一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)及其魚(yú)群生成方法。本發(fā)明由魚(yú)群模型生成及魚(yú)群動(dòng)畫(huà)生成兩大部分組成。魚(yú)群模型生成采用實(shí)數(shù)編碼遺傳算法在已有人工設(shè)計(jì)魚(yú)的基礎(chǔ)上生成魚(yú)群模型,生成的魚(yú)群模型具有既相似又不完全相同的特點(diǎn),符合自然界中群聚的魚(yú)群的規(guī)律;魚(yú)群動(dòng)畫(huà)生成采用微粒群算法實(shí)現(xiàn)個(gè)體的避障及碰撞,并有效的實(shí)現(xiàn)聚集、分離及跟隨目標(biāo)等群體移動(dòng)行為的動(dòng)畫(huà)。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下實(shí)施方式:
一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng),如圖1所示,該系統(tǒng)包括:
人工魚(yú)模型部件單元,其用于采用基于NURBS模型的實(shí)數(shù)編碼遺傳算法生成人工魚(yú)部件,以及根據(jù)所述人工魚(yú)部件進(jìn)行組裝;
和
魚(yú)群模型庫(kù)管理單元,其用于保存所述人工魚(yú)模型部件單元生成的人工魚(yú)部件,選取進(jìn)行組裝的人工魚(yú)部件,以及保存組裝后的人工魚(yú),為魚(yú)群動(dòng)畫(huà)生成單元選取人工魚(yú);
和
魚(yú)群動(dòng)畫(huà)路徑規(guī)劃單元,其用于采用微粒群算法對(duì)魚(yú)群運(yùn)動(dòng)的路徑進(jìn)行規(guī)劃;
和
魚(yú)群動(dòng)畫(huà)生成單元,其用于把從所述魚(yú)群模型庫(kù)管理單元選取的人工魚(yú)導(dǎo)入選定的路徑,生成動(dòng)畫(huà)。
所述人工魚(yú)模型部件單元又具體包括:
人工魚(yú)模型部件設(shè)計(jì)單元,其用于采用基于NURBS模型的實(shí)數(shù)編碼遺傳算法生成人工魚(yú)部件;
和
人工魚(yú)模型組裝單元,根據(jù)所述人工魚(yú)模型部件設(shè)計(jì)單元生成的工魚(yú)部件組裝成人工魚(yú)。
實(shí)施例2:
本發(fā)明為了解決上述問(wèn)題,提供一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)及其魚(yú)群生成方法。本發(fā)明由魚(yú)群模型生成及魚(yú)群動(dòng)畫(huà)生成兩大部分組成。魚(yú)群模型生成采用實(shí)數(shù)編碼遺傳算法在已有人工設(shè)計(jì)魚(yú)的基礎(chǔ)上生成魚(yú)群模型,生成的魚(yú)群模型具有既相似又不完全相同的特點(diǎn),符合自然界中群聚的魚(yú)群的規(guī)律;魚(yú)群動(dòng)畫(huà)生成采用微粒群算法實(shí)現(xiàn)個(gè)體的避障及碰撞,并有效的實(shí)現(xiàn)聚集、分離及跟隨目標(biāo)等群體移動(dòng)行為的動(dòng)畫(huà)。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下實(shí)施方式:
一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)的魚(yú)群生成方法,如圖2所示,該方法包括以下步驟:
(1)在所述人工魚(yú)模型設(shè)計(jì)單元中,把人工魚(yú)分解成為單個(gè)的部件,并將分解出的各個(gè)部件執(zhí)行實(shí)數(shù)編碼遺傳算法;
(2)分別獲取步驟(1)中各個(gè)部件的NURBS模型,設(shè)置循環(huán)次數(shù)執(zhí)行實(shí)數(shù)編碼遺傳算法,生成新的人工魚(yú)部件;
(3)將步驟(2)中生成的新的人工魚(yú)部件保存至所述魚(yú)群模型庫(kù)管理單元中;
(4)判斷是否達(dá)到指定次數(shù),若達(dá)到,人工魚(yú)部件生成完成;若未達(dá)到,重復(fù)步驟(2)-步驟(3);
(5)從所述魚(yú)群模型庫(kù)管理單元中取出人工魚(yú)部件組裝成為人工魚(yú),然后存到魚(yú)群模型庫(kù)。
在本實(shí)施例中以鯊魚(yú)模型為例。
在所述步驟(1)中,將整個(gè)鯊魚(yú)模型分解為魚(yú)身部件,背鰭部件,尾部件,尾鰭部件,肚鰭部件,眼部件和嘴部件,共七個(gè)部件。
以鯊魚(yú)魚(yú)身設(shè)計(jì)為例,執(zhí)行基于NURBS模型的遺傳算法,一個(gè)鯊魚(yú)模型如圖3所示,鯊魚(yú)魚(yú)身的模型如圖4所示;
在所述步驟(2)中,具體步驟包括:
(2-1)提取一個(gè)人工魚(yú)部件的NURBS模型的輪廓線(xiàn);
在所述步驟(2-1)中,所述NURBS模型的輪廓線(xiàn)包括U線(xiàn)和V線(xiàn),所述U線(xiàn)是模型表面橫向上的曲線(xiàn),所述V線(xiàn)是模型表面縱向上的曲線(xiàn);
提取鯊魚(yú)魚(yú)身的NURBS模型的輪廓線(xiàn),即提取NURBS模型的所述U線(xiàn)和所述V線(xiàn),如圖5所示。
(2-2)在步驟(2-1)中提取的NURBS模型的輪廓線(xiàn)上選取一組控制點(diǎn),在控制點(diǎn)處對(duì)NURBS模型的輪廓線(xiàn)進(jìn)行放大或縮小,得到一組候選的部件;
在所述步驟(2-2)中,具體步驟包括:
在NURBS模型的所述U線(xiàn)上選取一組控制點(diǎn),以0.8-1.2之間的隨機(jī)數(shù)作為倍數(shù),在所述控制點(diǎn)處對(duì)NURBS模型的U線(xiàn)進(jìn)行放大或縮小,放大或縮小的倍數(shù)作為實(shí)數(shù)編碼遺傳算法的編碼。
在NURBS模型的所述V線(xiàn)上選取一組控制點(diǎn),以0.8-1.2之間的隨機(jī)數(shù)作為倍數(shù),在所述控制點(diǎn)處對(duì)NURBS模型的V線(xiàn)進(jìn)行放大或縮小,放大或縮小的倍數(shù)作為實(shí)數(shù)編碼遺傳算法的編碼。
圖5所示魚(yú)身NURBS模型的U線(xiàn)和V線(xiàn)控制點(diǎn)如圖6所示。
對(duì)圖7所示的兩個(gè)雙親魚(yú)身提取NURBS模型的U線(xiàn)和V線(xiàn),得到圖8。根據(jù)放大或縮小的倍數(shù)進(jìn)行編碼,得到:
左雙親魚(yú)身:(1.0) (1.13) (0.91) (0.95) (1.08) (0.99) (1.16) (0.92) (0.85) (0.92) (1.19) (0.97) (0.94) (1.11) (1.12) (1.03)
右雙親魚(yú)身:(1.0) (0.90) (1.10) (0.96) (1.00) (0.98) (1.00) (1.14) (1.11) (0.87) (1.09) (0.87) (1.12) (1.01) (1.17) (1.06)
(2-3)對(duì)所述候選的部件采用適應(yīng)度函數(shù)進(jìn)行評(píng)價(jià),選取適應(yīng)度值高的部件作為種子,在本實(shí)施例中,指定疊代次數(shù)為5;
在所述步驟(2-3)中,
所述適應(yīng)度函數(shù)為:
其中,
Currenti:當(dāng)前個(gè)體的第i個(gè)曲線(xiàn)的半徑與第一曲線(xiàn)的半徑之間的比率;
Besti:當(dāng)前個(gè)體的第i個(gè)曲線(xiàn)的半徑與第一曲線(xiàn)的半徑之間的最佳比率;
曲線(xiàn)的半徑:控制點(diǎn)到第i個(gè)曲線(xiàn)上的中心點(diǎn)的距離的平均值。
(2-4)對(duì)所述種子進(jìn)行操作直至執(zhí)行完制定次數(shù),生成新的人工魚(yú)部件。
所述步驟(2-4)中,具體步驟包括:
(2-4-1)對(duì)所述種子兩兩進(jìn)行多點(diǎn)交叉;
(2-4-2)對(duì)所述種子進(jìn)行多點(diǎn)變異;
(2-4-3)重復(fù)步驟(2-4-1)-步驟(2-4-2)直至執(zhí)行完所述步驟(2-3)中的指定次數(shù)。
選擇編碼后的控制點(diǎn)7和11進(jìn)行交叉,得到兩個(gè)孩子魚(yú)身的編碼:
左孩子魚(yú)身:(1.0) (1.13) (0.91) (0.95) (1.08) (0.99) (1.00) (0.92) (0.85) (0.92) (1.09) (0.97) (0.94) (1.11) (1.12) (1.03)
右孩子魚(yú)身:(1.0) (0.90) (1.10) (0.96) (1.00) (0.98) (1.16) (1.14) (1.11) (0.87) (1.19) (0.87) (1.12) (1.01) (1.17) (1.06)
生成的兩個(gè)孩子魚(yú)身NURBS模型的輪廓線(xiàn)如圖9所示,兩個(gè)孩子魚(yú)身如圖10所示。
抽取圖4所示的魚(yú)身的NURBS模型的輪廓線(xiàn),見(jiàn)圖11,進(jìn)行編碼,得到:
雙親魚(yú)身編碼:(1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0)
選取控制點(diǎn)5和7進(jìn)行變異,得到:
孩子魚(yú)身編碼:(1.0) (1.0) (1.0) (1.0) (1.364) (1.0) (1.069) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0) (1.0)
得到孩子魚(yú)身的NURBS模型的輪廓線(xiàn),見(jiàn)圖12,孩子魚(yú)身見(jiàn)圖13;
執(zhí)行完指定的次數(shù),得到一組鯊魚(yú)魚(yú)身;
把生成的魚(yú)身部件保存到魚(yú)群模型庫(kù)中。
圖14所示為上述算法執(zhí)行5次以后生成的魚(yú)身模型。
圖15為生成的魚(yú)群聚集的路徑,
圖16為把從魚(yú)群模型庫(kù)管理單元選取的人工魚(yú)群導(dǎo)入圖15所示的路徑生成的魚(yú)群動(dòng)畫(huà)截圖。
本發(fā)明的有益效果:
(1)本發(fā)明的一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)的魚(yú)群生成方法,利用現(xiàn)有人工設(shè)計(jì)的魚(yú)作為種子,通過(guò)實(shí)數(shù)編碼遺傳算法派生魚(yú)群,在保證魚(yú)群模型的數(shù)量和形態(tài)多樣化的情況下,有效減少設(shè)計(jì)人員的工作量;
(2)本發(fā)明的一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)的魚(yú)群生成方法,其中的實(shí)數(shù)編碼遺傳算法包括交叉和變異操作,可以使生成的魚(yú)群模型具有既相似又不完全相同的特點(diǎn),符合自然界中群聚的魚(yú)群的規(guī)律。
(3)本發(fā)明的一種魚(yú)群動(dòng)畫(huà)制作系統(tǒng)及其魚(yú)群生成方法,不僅僅局限于魚(yú)群動(dòng)畫(huà)的制作與魚(yú)群的實(shí)誠(chéng),同樣適用于基于NURBS模型進(jìn)行角色設(shè)計(jì)的各類(lèi)動(dòng)畫(huà)制作。
上述雖然結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行了描述,但并非對(duì)本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動(dòng)即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以?xún)?nèi)。