999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

三維游戲中的空中尋路算法研究

2009-12-18 08:49:04王淼田野
文化月刊·遺產(chǎn) 2009年12期

王淼 田野

摘要:本文針對(duì)現(xiàn)有關(guān)于三維游戲中脫離地表的尋路算法的研究文獻(xiàn)較少的情況,討論了二維尋路A*算法的改進(jìn)和優(yōu)化,在滿足三維空間尋路要求的算法原理和計(jì)算過(guò)程中的作用。算法的改進(jìn)和優(yōu)化包括三維網(wǎng)格節(jié)點(diǎn)的優(yōu)化,三維場(chǎng)景中障礙物的設(shè)定,估價(jià)函數(shù)的修改和優(yōu)化,節(jié)點(diǎn)坐標(biāo)計(jì)算以及OPEN表和CLOSED表的維護(hù)等。

關(guān)鍵詞:空中尋路 A*算法 估價(jià)函數(shù) 移動(dòng)步長(zhǎng) 坐標(biāo)變換

近年來(lái),三維游戲產(chǎn)業(yè)高速發(fā)展,帶動(dòng)了游戲相關(guān)技術(shù),特別是人工智能(Artificial Intelligence,簡(jiǎn)稱AI)技術(shù)的發(fā)展。游戲中的空中尋路問(wèn)題,相對(duì)于緊貼地表的物體運(yùn)動(dòng)路徑的計(jì)算,計(jì)算量大大增加,路徑節(jié)點(diǎn)為三維網(wǎng)格而非二維三角面。除此之外,還需解決物體或角色隨飛行方向(或游泳方向)產(chǎn)生的運(yùn)動(dòng)姿態(tài)改變問(wèn)題。本文針對(duì)三維游戲中對(duì)空中尋路技術(shù)的需求,通過(guò)對(duì)二維尋路A*算法的改進(jìn),討論了如何實(shí)現(xiàn)三維游戲中空中路徑的計(jì)算過(guò)程。

一、尋路算法的選擇

游戲開(kāi)發(fā)中較為成熟的尋路算法有很多,可分為盲目搜索和啟發(fā)式搜索兩大類。針對(duì)三維游戲的空中尋路數(shù)據(jù)量大,障礙物環(huán)境復(fù)雜的特點(diǎn),使用盲目搜索將導(dǎo)致搜索代價(jià)巨大,甚至無(wú)解的結(jié)果,故本文選擇啟發(fā)式搜索中的A*算法,并對(duì)其估價(jià)函數(shù)和搜索過(guò)程進(jìn)行修改,使其適應(yīng)三維環(huán)境下的路徑的計(jì)算要求。

二、A*算法的主要思想

啟發(fā)式搜索的各種算法中,A*算法是較為成熟的算法之一。它的思想是在對(duì)狀態(tài)空間進(jìn)行搜索時(shí),對(duì)每一個(gè)被搜索的節(jié)點(diǎn)通過(guò)估價(jià)函數(shù)進(jìn)行評(píng)估,指導(dǎo)搜索前進(jìn)的方向,直到找到目標(biāo)節(jié)點(diǎn)為止。估價(jià)函數(shù)的常規(guī)形式是:f(n)=g(n)+h(n),其中,f(n)是估價(jià)函數(shù),g(n)是從起點(diǎn)S沿著產(chǎn)生的路徑移動(dòng)到節(jié)點(diǎn)n的當(dāng)前已知最短路徑,h(n)是指從節(jié)點(diǎn)n移動(dòng)到終點(diǎn)D的預(yù)估移動(dòng)耗費(fèi)。估價(jià)函數(shù)的定義沒(méi)有確定的模式,在A*算法中,對(duì)h(n)做了限制,使其對(duì)所有節(jié)點(diǎn)x均有h(x)≤h*(x),其中h*(x)是從節(jié)點(diǎn)x到目標(biāo)節(jié)點(diǎn)的最小代價(jià),即實(shí)際最短距離。這樣設(shè)計(jì)的估價(jià)函數(shù)可以找出最短路徑,稱之為尋路算法的可采納性,A*算法就是一個(gè)可采納的尋路算法。

三、A*算法在三維空中尋路應(yīng)用中的修改和優(yōu)化

1.三維網(wǎng)格節(jié)點(diǎn)的優(yōu)化

在三維游戲中,針對(duì)三維場(chǎng)景如果仿照二維游戲地圖讀取的做法,單位網(wǎng)格的數(shù)量將達(dá)到一個(gè)驚人的數(shù)字,這是不可行的。所以,三維場(chǎng)景中的節(jié)點(diǎn),不是以邊長(zhǎng)為單位長(zhǎng)度的立方體,其邊長(zhǎng)大小應(yīng)參照尋路物體(或角色)的長(zhǎng)度、寬度、高度中最大的數(shù)值來(lái)確定,即尋路物體(或角色)的移動(dòng)步長(zhǎng)(step),這樣最終路徑的節(jié)點(diǎn)數(shù)量才能被控制在可接受的范圍。

2.估價(jià)函數(shù)的修改和優(yōu)化

三維游戲中的空中尋路相對(duì)二維地圖中的尋路,對(duì)于從起始點(diǎn)開(kāi)始的節(jié)點(diǎn)的搜索,每個(gè)節(jié)點(diǎn)相鄰節(jié)點(diǎn)的數(shù)量從8個(gè)激增至26個(gè)。使用傳統(tǒng)的A*算法,尋路的過(guò)程將很可能因?yàn)镃PU資源耗費(fèi)太大而嚴(yán)重影響游戲的流暢性。決定A*算法尋路效率的關(guān)鍵因素是估價(jià)函數(shù)f(n),對(duì)它的修改和優(yōu)化可從下面兩個(gè)方面進(jìn)行:

第一,節(jié)點(diǎn)g(n)值計(jì)算過(guò)程的優(yōu)化。每一個(gè)新加入OPEN表的節(jié)點(diǎn)的g值的計(jì)算,可通過(guò)其父節(jié)點(diǎn)的g值(起始節(jié)點(diǎn)的g值為0)和從父節(jié)點(diǎn)到該節(jié)點(diǎn)的移動(dòng)耗費(fèi)相加來(lái)得到。在三維空間中,如果父節(jié)點(diǎn)和子節(jié)點(diǎn)的x、y、z坐標(biāo)分量中有2個(gè)相同,則移動(dòng)耗費(fèi)為step(step為對(duì)移動(dòng)步長(zhǎng)取整操作后的結(jié)果),有1個(gè)相同,則移動(dòng)耗費(fèi)為1.4×step后取整,都不相同則為1.7×step后取整(這樣可避免求根運(yùn)算和小數(shù))。

第二,節(jié)點(diǎn)h(n)值計(jì)算過(guò)程的優(yōu)化。將h(n)設(shè)定為節(jié)點(diǎn)n與終點(diǎn)D的直線距離,可滿足可采納性的條件。由于h(n)>0,在h(n)的計(jì)算中是否開(kāi)根號(hào)并不影響各節(jié)點(diǎn)f(n)值的比較結(jié)果,故h(n)=|Xd-Xn|+|Yd-Yn|+|Zd-Zn|。

3.節(jié)點(diǎn)坐標(biāo)計(jì)算

在三維空間中,如果考慮物體或角色隨飛行方向(或游泳方向)產(chǎn)生的運(yùn)動(dòng)姿態(tài)的改變問(wèn)題,則會(huì)涉及到旋轉(zhuǎn)操作。為了使用同樣的方法,來(lái)處理平移和旋轉(zhuǎn)變換并實(shí)現(xiàn)變換間的復(fù)合,需引入齊次坐標(biāo)系,使線性變換以統(tǒng)一的格式進(jìn)行。所以,平移變換(即計(jì)算當(dāng)前節(jié)點(diǎn)的相鄰節(jié)點(diǎn)的坐標(biāo))的計(jì)算公式可用矩陣乘法表示如下:

其中,Tx、Ty和Tz分別是節(jié)點(diǎn)在三個(gè)坐標(biāo)軸方向上的位移量,Xn、Yn、Zn為當(dāng)前節(jié)點(diǎn)的坐標(biāo),x、y、z為當(dāng)前節(jié)點(diǎn)的相鄰節(jié)點(diǎn)的坐標(biāo)。因物體或角色運(yùn)動(dòng)姿態(tài)的改變,而需采取的旋轉(zhuǎn)操作的計(jì)算公式可用矩陣乘法表示如下:

其中,Rx、Ry、Rz分別是繞X、Y、Z軸逆時(shí)針旋轉(zhuǎn)的變換矩陣,對(duì)于圍繞任意旋轉(zhuǎn)軸旋轉(zhuǎn)的情況,可由上面3個(gè)變換矩陣的復(fù)合變換得到。

4.OPEN表和CLOSED表的維護(hù)

OPEN表和CLOSED表的維護(hù)是A*算法中的重要組成部分,在《三維游戲中NPC的尋路算法研究》項(xiàng)目中,由于使用Virtools游戲引擎作為三維游戲平臺(tái)搭建工具,故使用Virtools中的陣列來(lái)保存節(jié)點(diǎn)元素,如圖1所示。

四、Virtools中的陣列具有類似數(shù)據(jù)庫(kù)中表的功能,能夠?yàn)殛嚵斜碇械牧薪⑺饕?并可通0

基于以上文中的算法思路,以《三維游戲中NPC的尋路算法研究》項(xiàng)目為實(shí)驗(yàn)平臺(tái),利用Virtools,VSL語(yǔ)言在三維地形中實(shí)現(xiàn)了三維游戲中空中最短路徑的搜尋工作,最終的可視化結(jié)果如圖2所示。

(作者單位:四川音樂(lè)學(xué)院成都美術(shù)學(xué)院)

參考文獻(xiàn):

[1]李慧哲、張麗萍等.A*算法在游戲?qū)街械膽?yīng)用.內(nèi)蒙古師范大學(xué)學(xué)報(bào).2009年第2期.

[2]陳勇、王棟、陳戈.一種三維虛擬場(chǎng)景自動(dòng)漫游的快速路徑規(guī)劃算法.系統(tǒng)仿真學(xué)報(bào).2007年第11期.

[3]朱耿青、陳崇成等.三維最短路徑分析算法的實(shí)現(xiàn)及其可視化.計(jì)算機(jī)工程與應(yīng)用.2007年第33期.

[4]何國(guó)輝、陳家琪.游戲開(kāi)發(fā)中智能路徑搜索算法的研究.計(jì)算機(jī)工程與設(shè)計(jì).2006年第13期.

[5]沃特、波力卡波.沈一帆譯.3D游戲?qū)崟r(shí)渲染與軟件技術(shù).機(jī)械工業(yè)出版社,2005.

主站蜘蛛池模板: 亚洲第一成人在线| 亚洲色无码专线精品观看| 亚洲精品无码成人片在线观看| 成人综合久久综合| 香蕉eeww99国产在线观看| 国内精自视频品线一二区| 久久免费成人| 国产SUV精品一区二区6| 精品91自产拍在线| h网址在线观看| 中文字幕一区二区视频| 国模私拍一区二区| 欧美精品亚洲精品日韩专区va| 丝袜美女被出水视频一区| 日韩欧美国产精品| 免费啪啪网址| 亚洲a级毛片| 亚洲高清免费在线观看| 亚洲欧美在线综合一区二区三区| 91久草视频| 日韩在线播放欧美字幕| 老色鬼久久亚洲AV综合| 4虎影视国产在线观看精品| 激情综合图区| 日本精品视频一区二区| 永久天堂网Av| 成人另类稀缺在线观看| 欧美国产日韩另类| 国产在线精品99一区不卡| 一级片免费网站| julia中文字幕久久亚洲| 日韩精品毛片人妻AV不卡| 91小视频在线播放| 欧美成人国产| 久久精品国产电影| 亚洲第一视频免费在线| 国产自在线拍| 色精品视频| 色综合天天操| 中文字幕乱妇无码AV在线| 国产精品尤物在线| 91丝袜在线观看| 久久久无码人妻精品无码| 亚洲电影天堂在线国语对白| P尤物久久99国产综合精品| 一区二区无码在线视频| 波多野结衣一区二区三视频| 亚洲性网站| 国产精品久线在线观看| 亚国产欧美在线人成| 国产精品开放后亚洲| 久久综合九色综合97婷婷| 亚洲综合极品香蕉久久网| 孕妇高潮太爽了在线观看免费| 日韩欧美国产另类| 无码中文字幕乱码免费2| 无码'专区第一页| 国产九九精品视频| 色香蕉网站| av性天堂网| 亚洲丝袜中文字幕| 亚洲欧美日韩中文字幕在线| 影音先锋亚洲无码| 波多野结衣久久高清免费| 人妻夜夜爽天天爽| 一区二区三区四区精品视频| 久久精品丝袜| 就去吻亚洲精品国产欧美| 亚洲免费黄色网| 免费aa毛片| 97se亚洲| 天堂亚洲网| 国产成人综合亚洲网址| 特级精品毛片免费观看| www.99精品视频在线播放| 99久久精品无码专区免费| 国产精品黄色片| 亚洲国产中文欧美在线人成大黄瓜 | 青青国产成人免费精品视频| 欧美色综合网站| a在线观看免费| 国产精欧美一区二区三区|