群體運(yùn)動(dòng)場(chǎng)景的渲染方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及計(jì)算機(jī)應(yīng)用技術(shù),特別是設(shè)及一種群體運(yùn)動(dòng)場(chǎng)景的擅染方法。
【背景技術(shù)】
[0002] 目前,人工智能(Al)是實(shí)現(xiàn)游戲系統(tǒng)的重要技術(shù)手段之一,高質(zhì)量的游戲AI已經(jīng) 是和圖形、或聲音一樣,成為游戲設(shè)計(jì)過(guò)程中極為重要的一部分。AI在計(jì)算機(jī)上實(shí)現(xiàn)有兩種 不同的方式:一種是工程學(xué)方式,該方式不需要考慮所用方法是否與人或動(dòng)物機(jī)體所使用 的方法相同,如文字識(shí)別、電腦下棋;另一種是模擬方式,該方式不僅要看效果,還要求實(shí)現(xiàn) 方法和人類或生物機(jī)體所用方法相同或類似。
[0003] 群體動(dòng)畫(huà)技術(shù)是游戲系統(tǒng)中經(jīng)常用來(lái)實(shí)現(xiàn)AI生物模擬的技術(shù),例如"紅色警戒"、 "星際爭(zhēng)霸"等大規(guī)模戰(zhàn)爭(zhēng)場(chǎng)面、鳥(niǎo)群模擬、人流模擬等。對(duì)于群體運(yùn)動(dòng)場(chǎng)景的模擬,如鳥(niǎo)群 飛行位置的模擬,比較成熟的技術(shù)手段是利用游戲引擎中粒子系統(tǒng)來(lái)實(shí)現(xiàn)。具體而言,是創(chuàng) 建一個(gè)例子發(fā)射器,設(shè)置運(yùn)動(dòng)區(qū)域Volume體積,設(shè)置發(fā)射速率,選擇粒子最大數(shù)量,隨機(jī)產(chǎn) 生粒子,創(chuàng)建粒子動(dòng)畫(huà),使得粒子不斷地來(lái)回移動(dòng),創(chuàng)建粒子替代物為一運(yùn)動(dòng)生物的模型, 則實(shí)現(xiàn)相應(yīng)生物的群體運(yùn)動(dòng)場(chǎng)景的模擬擅染,例如創(chuàng)建粒子替代物為鳥(niǎo)模型,則會(huì)實(shí)現(xiàn)鳥(niǎo) 群運(yùn)動(dòng)的模擬效果。
[0004] 上述利用粒子系統(tǒng)實(shí)現(xiàn)的群體運(yùn)動(dòng)場(chǎng)景的擅染方法,一般是基于CPU運(yùn)算的粒子 屬性動(dòng)態(tài)更新原理,在動(dòng)畫(huà)中的每一帖,對(duì)每一個(gè)粒子的屬性(坐標(biāo),速度,加速度,生命值 等)進(jìn)行一次循環(huán)遍歷更新,由于更新采用串行的方式逐個(gè)進(jìn)行的,因此,每一帖的更新都 會(huì)產(chǎn)生較多的時(shí)間開(kāi)銷。因此,不可避免地會(huì)影響運(yùn)動(dòng)模擬效果的流楊性。另一方面,基于 常規(guī)粒子系統(tǒng)的物理模型,每一個(gè)粒子的運(yùn)動(dòng)方向隨機(jī),相鄰粒子之間的物理屬性沒(méi)有關(guān) 聯(lián)約束,或是很弱,位置雜亂無(wú)章,因此,也無(wú)法實(shí)現(xiàn)具有一定群體運(yùn)動(dòng)方向的運(yùn)動(dòng)模擬效 果。
[0005] 由此可見(jiàn),現(xiàn)有的群體運(yùn)動(dòng)場(chǎng)景的擅染方法存在時(shí)間開(kāi)銷大且個(gè)體運(yùn)動(dòng)位置雜亂 無(wú)章的問(wèn)題。
【發(fā)明內(nèi)容】
[0006] 有鑒于此,本發(fā)明的主要目的在于提供一種群體運(yùn)動(dòng)場(chǎng)景的擅染方法,可W實(shí)現(xiàn) 群體運(yùn)動(dòng)規(guī)則性的擅染效果。
[0007] 為了達(dá)到上述目的,本發(fā)明提出的技術(shù)方案為:
[000引一種群體運(yùn)動(dòng)場(chǎng)景的擅染方法,包括:
[0009] a、對(duì)于每一帖,按照內(nèi)聚規(guī)則和對(duì)準(zhǔn)規(guī)則,確定該帖中參與群體運(yùn)動(dòng)的每個(gè)運(yùn)動(dòng) 對(duì)象在下一帖的運(yùn)動(dòng)屬性,所述運(yùn)動(dòng)屬性包括位置信息和運(yùn)動(dòng)速度;
[0010] b、當(dāng)需要擅染所述下一帖時(shí),根據(jù)所述運(yùn)動(dòng)屬性進(jìn)行相應(yīng)的場(chǎng)景擅染。
[0011] 綜上所述,本發(fā)明提出的群體運(yùn)動(dòng)場(chǎng)景的擅染方法,通過(guò)按照內(nèi)聚規(guī)則和對(duì)準(zhǔn)規(guī) 貝1J,來(lái)確定每個(gè)運(yùn)動(dòng)對(duì)象在下一帖的運(yùn)動(dòng)屬性,可W對(duì)群體運(yùn)動(dòng)方向進(jìn)行控制,使其具有一 定的規(guī)則性,從而提高場(chǎng)景擅染的智能化水平,更具有真實(shí)性。
【附圖說(shuō)明】
[0012] 圖1為本發(fā)明實(shí)施例的方法流程示意圖。
【具體實(shí)施方式】
[0013] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì) 本發(fā)明作進(jìn)一步地詳細(xì)描述。
[0014] 本發(fā)明的核屯、思想是:在每一帖,對(duì)其中的每個(gè)運(yùn)動(dòng)對(duì)象,根據(jù)內(nèi)聚規(guī)則和對(duì)準(zhǔn)規(guī) 貝IJ,確定其下一帖的運(yùn)動(dòng)屬性,W確保群體運(yùn)動(dòng)的規(guī)則性
[0015] 圖1為本發(fā)明實(shí)施例的方法流程示意圖,如圖1所示,該實(shí)施例主要包括:
[0016] 步驟101、對(duì)于每一帖,按照內(nèi)聚規(guī)則和對(duì)準(zhǔn)規(guī)則,確定該帖中參與群體運(yùn)動(dòng)的每 個(gè)運(yùn)動(dòng)對(duì)象在下一帖的運(yùn)動(dòng)屬性。
[0017] 所述運(yùn)動(dòng)屬性包括位置信息和運(yùn)動(dòng)速度。
[001引所述內(nèi)聚規(guī)則為盡量朝鄰近伙伴中屯、移動(dòng)。
[0019] 所述對(duì)準(zhǔn)規(guī)則為盡量與鄰近運(yùn)動(dòng)對(duì)象的平均方向一致。
[0020] 本步驟,通過(guò)按照內(nèi)聚規(guī)則和對(duì)準(zhǔn)規(guī)則,確定群體運(yùn)動(dòng)中的各運(yùn)動(dòng)對(duì)象在下一帖 的運(yùn)動(dòng)屬性,可W實(shí)現(xiàn)對(duì)運(yùn)動(dòng)對(duì)象運(yùn)動(dòng)軌跡的控制,從而可W確保群體運(yùn)動(dòng)的規(guī)則性,避免 群體運(yùn)動(dòng)中個(gè)體運(yùn)動(dòng)位置雜亂無(wú)章的問(wèn)題。
[0021] 步驟102、當(dāng)需要擅染所述下一帖時(shí),根據(jù)所述運(yùn)動(dòng)屬性進(jìn)行相應(yīng)的場(chǎng)景擅染。
[0022] 本步驟中,將根據(jù)上一帖確定出的運(yùn)動(dòng)屬性進(jìn)行場(chǎng)景擅染,由于運(yùn)動(dòng)屬性的獲得 是基于內(nèi)聚規(guī)則和對(duì)準(zhǔn)規(guī)則得到的,因此可W達(dá)到規(guī)則性運(yùn)動(dòng)的擅染效果。本步驟具體的 擅染方法為本領(lǐng)域人員所掌握,在此不再寶述。
[0023] 較佳地,為了有效提高群體運(yùn)動(dòng)場(chǎng)景的擅染效率、使場(chǎng)景擅染更流楊,步驟101中 可W利用通用圖形處理器(GPGPU)技術(shù)的強(qiáng)大并行計(jì)算能力,來(lái)實(shí)現(xiàn)每一帖運(yùn)動(dòng)屬性的快 速計(jì)算和更新。即,在每一帖,可W利用GPGPU,采用并行處理的方式,分別確定每個(gè)所述運(yùn) 動(dòng)對(duì)象在下一帖的運(yùn)動(dòng)屬性。具體而言,可W通過(guò)化en化平臺(tái),利用GPGPU的并行計(jì)算能力, 為每個(gè)運(yùn)動(dòng)對(duì)象分配對(duì)應(yīng)的"工作組"、"工作項(xiàng)",用于對(duì)該運(yùn)動(dòng)對(duì)象的運(yùn)動(dòng)屬性進(jìn)行更新, 從而可W實(shí)現(xiàn)運(yùn)動(dòng)對(duì)象的運(yùn)動(dòng)位置和方向并發(fā)計(jì)算、快速更新。
[0024] 具體地,可W采用下述方法確定每個(gè)所述運(yùn)動(dòng)對(duì)象i在下一帖的運(yùn)動(dòng)屬性:
[0025] 步驟XI、根據(jù)當(dāng)前帖中本運(yùn)動(dòng)對(duì)象i的位置W及附近預(yù)設(shè)范圍內(nèi)的其他運(yùn)動(dòng)對(duì)象 的位置,計(jì)算出滿足內(nèi)聚規(guī)則的第一運(yùn)動(dòng)方向Va。
[0026] 本步驟中,將考慮內(nèi)聚規(guī)則來(lái)確定下一帖的運(yùn)動(dòng)方向,使得運(yùn)動(dòng)對(duì)象在下一帖盡 可能的向鄰近的其他運(yùn)動(dòng)對(duì)象中屯、移動(dòng)。
[0027] 所述預(yù)設(shè)范圍的區(qū)域大小可由本領(lǐng)域技術(shù)人員根據(jù)運(yùn)動(dòng)群體的實(shí)際情況,如群體 規(guī)模等因素,設(shè)置合適范圍。
[00%]較佳地,本步驟可W采用下述方法實(shí)現(xiàn):
[0029] 步驟xll、按照nearPos=(poso+….+POSm+. . . .+p〇sm)/M,計(jì)算所述附近預(yù)設(shè)范圍 內(nèi)的其他運(yùn)動(dòng)對(duì)象的平均位置nearfos。
[0030]其中,POSm為所述附近預(yù)設(shè)范圍內(nèi)的第m個(gè)運(yùn)動(dòng)對(duì)象的位置,M為所述附近預(yù)設(shè)范 圍內(nèi)的其他運(yùn)動(dòng)對(duì)象的數(shù)量。
[0031 ]步驟xl2、