本申請涉及三維地圖領(lǐng)域,特別涉及一種三維地圖數(shù)據(jù)的更新方法、裝置、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、由于三維的開放世界的地圖往往很大,游戲開發(fā)者往往會為玩家提供用于規(guī)劃起點(diǎn)至終點(diǎn)之間的三維路徑的尋路功能,比如為飛行器規(guī)劃飛行路線。此外,目前玩家能夠通過和地圖的交互在三維的開放世界中添加動態(tài)障礙物。動態(tài)障礙物是指不固定存在于地圖中,而是臨時添加的能夠阻擋虛擬角色或載具前進(jìn)的障礙物。例如玩家控制虛擬角色釋放了一個土墻技能,將在地圖中添加了一堵土墻,這個土墻能夠阻擋虛擬角色直接穿過土墻對應(yīng)的位置,這個土墻會在地圖中存在一定時間后消失。
2、由于玩家能夠在三維的開放世界中添加動態(tài)障礙物,這對三維路徑的尋路功能帶來了考驗(yàn)。由于動態(tài)障礙物的臨時性以及動態(tài)障礙物增刪的不可控性,如何更新地圖數(shù)據(jù)是目前面臨的一大考驗(yàn)。相關(guān)技術(shù)中,使用稀疏八叉樹來存儲三維地圖數(shù)據(jù),通過定時更新的方式更新稀疏八叉樹。定時更新的方式是指,定時獲取玩家臨時添加的障礙物信息,對稀疏八叉樹進(jìn)行更新。
3、上述方法只能以調(diào)低定時更新的時間間隔來達(dá)到近似實(shí)時更新地圖數(shù)據(jù)的效果,然而在定時更新的時間間隔較小的情況下,容易導(dǎo)致開銷過大的問題。因此,如何設(shè)計地圖數(shù)據(jù)的更新方法以達(dá)到實(shí)時更新的效果,是目前亟需解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、本申請?zhí)峁┝艘环N三維地圖數(shù)據(jù)的更新方法、裝置、設(shè)備及存儲介質(zhì),所述技術(shù)方案如下:
2、根據(jù)本申請的一方面,提供了一種三維地圖數(shù)據(jù)的更新方法,所述方法由服務(wù)器執(zhí)行,所述方法包括:
3、獲取用于保存所述三維地圖數(shù)據(jù)的稀疏八叉樹,所述三維地圖數(shù)據(jù)用于指示三維空間的連通性信息;
4、響應(yīng)于接收到客戶端的障礙物更新請求,獲取待更新的障礙物信息,所述障礙物信息用于指示所述三維空間中阻擋虛擬角色前進(jìn)的障礙物;
5、基于所述障礙物信息,更新基于所述稀疏八叉樹保存的所述三維地圖數(shù)據(jù)。
6、根據(jù)本申請的一方面,提供了一種三維地圖數(shù)據(jù)的更新裝置,所述裝置包括:
7、第一獲取模塊,用于獲取用于保存所述三維地圖數(shù)據(jù)的稀疏八叉樹,所述三維地圖數(shù)據(jù)用于指示三維空間的連通性信息;
8、第二獲取模塊,用于響應(yīng)于接收到客戶端的障礙物更新請求,獲取待更新的障礙物信息,所述障礙物信息用于指示所述三維空間中阻擋虛擬角色前進(jìn)的障礙物;
9、更新模塊,用于基于所述障礙物信息,更新基于所述稀疏八叉樹保存的所述三維地圖數(shù)據(jù)。
10、根據(jù)本申請的一方面,提供了一種計算機(jī)設(shè)備,所述計算機(jī)設(shè)備包括:處理器和存儲器,所述存儲器中存儲有至少一段程序;所述處理器,用于執(zhí)行所述存儲器中的所述至少一段程序以實(shí)現(xiàn)上述三維地圖數(shù)據(jù)的更新方法。
11、根據(jù)本申請的一方面,提供了一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)中存儲有可執(zhí)行指令,所述可執(zhí)行指令由處理器加載并執(zhí)行以實(shí)現(xiàn)上述三維地圖數(shù)據(jù)的更新方法。
12、根據(jù)本申請的一方面,提供了一種計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品包括計算機(jī)指令,所述計算機(jī)指令存儲在計算機(jī)可讀存儲介質(zhì)中,處理器從所述計算機(jī)可讀存儲介質(zhì)讀取并執(zhí)行所述計算機(jī)指令,以實(shí)現(xiàn)上述三維地圖數(shù)據(jù)的更新方法。
13、本申請?zhí)峁┑募夹g(shù)方案帶來的有益效果至少包括:
14、上述方案每當(dāng)接收到障礙物的更新請求時就對障礙物所處的三維空間對應(yīng)的三維地圖數(shù)據(jù)進(jìn)行更新,能夠?qū)崿F(xiàn)對三維地圖數(shù)據(jù)的實(shí)時更新。在用戶通過對地圖的交互在三維空間中添加動態(tài)障礙物后,能夠快速地更新對應(yīng)的三維地圖數(shù)據(jù),并將更新的三維地圖數(shù)據(jù)用于尋路、碰撞檢測等判定中,能夠及時同步不同用戶的交互操作的操作結(jié)果,使尋路和碰撞檢測等判定更加準(zhǔn)確,尤其是針對一些對抗性較強(qiáng)的游戲程序,快速獲取到更新后的三維地圖數(shù)據(jù),能夠減小碰撞誤判的可能性。
1.一種三維地圖數(shù)據(jù)的更新方法,其特征在于,所述方法由服務(wù)器執(zhí)行,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述三維地圖數(shù)據(jù)保存在所述稀疏八叉樹的節(jié)點(diǎn)中;所述稀疏八叉樹有n個層級,n為正整數(shù);所述層級為所述稀疏八叉樹中的根節(jié)點(diǎn)到所述稀疏八叉樹最底層的葉子節(jié)點(diǎn)之間的層級,所述根節(jié)點(diǎn)的層級最大,所述葉子節(jié)點(diǎn)的層級最小;所述稀疏八叉樹中同一層級的節(jié)點(diǎn)保存在同一數(shù)組中;
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第i-1層對應(yīng)的數(shù)組中節(jié)點(diǎn)的存儲順序與所述第i層對應(yīng)的數(shù)組中的節(jié)點(diǎn)的存儲順序不相關(guān);
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述障礙物信息,為所述稀疏八叉樹中第i層的目標(biāo)節(jié)點(diǎn)添加子節(jié)點(diǎn),包括:
7.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述障礙物信息,修改所述稀疏八叉樹中第i層的目標(biāo)節(jié)點(diǎn)的阻擋信息,包括如下至少之一:
8.根據(jù)權(quán)利要求2至7任一所述的方法,其特征在于,所述阻擋信息包括全阻擋和無阻擋;所述全阻擋用于指示所述節(jié)點(diǎn)與所述障礙物相交,會阻擋所述虛擬角色前進(jìn);所述無阻擋用于指示所述節(jié)點(diǎn)與所述障礙物不相交,不會阻擋所述虛擬角色前進(jìn);
9.根據(jù)權(quán)利要求1至7任一所述的方法,其特征在于,所述稀疏八叉樹包括靜態(tài)根節(jié)點(diǎn)和動態(tài)根節(jié)點(diǎn),所述靜態(tài)根節(jié)點(diǎn)對應(yīng)的靜態(tài)子樹用于保存靜態(tài)地圖的三維地圖數(shù)據(jù),所述動態(tài)根節(jié)點(diǎn)對應(yīng)的動態(tài)子樹用于保存動態(tài)地圖的三維地圖數(shù)據(jù),所述動態(tài)地圖用于指示基于用戶的交互進(jìn)行更新的地圖,所述靜態(tài)子樹與所述動態(tài)子樹共用至少一個節(jié)點(diǎn);
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述基于所述障礙物信息,為所述第i層的目標(biāo)節(jié)點(diǎn)添加子節(jié)點(diǎn),包括:
11.根據(jù)權(quán)利要求1至8任一所述的方法,其特征在于,所述方法還包括:
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述基于所述稀疏八叉樹保存的所述三維地圖數(shù)據(jù),規(guī)劃尋路路徑,包括:
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述獲取當(dāng)前節(jié)點(diǎn)在上下左右前后六個方向上相鄰的至少六個第一鄰居節(jié)點(diǎn),包括:
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述第二鄰居節(jié)點(diǎn)包括所述索引信息,所述索引信息包括層級索引和節(jié)點(diǎn)索引,所述層級索引用于指示所述節(jié)點(diǎn)所在的層級,所述節(jié)點(diǎn)索引用于指示所述節(jié)點(diǎn)在對應(yīng)層級的數(shù)組中的位置;
15.根據(jù)權(quán)利要求11至14任一所述的方法,其特征在于,所述稀疏八叉樹包括靜態(tài)根節(jié)點(diǎn)和動態(tài)根節(jié)點(diǎn),所述靜態(tài)根節(jié)點(diǎn)對應(yīng)的靜態(tài)子樹用于保存靜態(tài)地圖的三維地圖數(shù)據(jù),所述動態(tài)根節(jié)點(diǎn)對應(yīng)的動態(tài)子樹用于保存動態(tài)地圖的三維地圖數(shù)據(jù),所述動態(tài)地圖用于指示基于用戶的交互進(jìn)行更新的地圖,所述靜態(tài)子樹與所述動態(tài)子樹共用至少一個節(jié)點(diǎn);
16.一種三維地圖數(shù)據(jù)的更新裝置,其特征在于,所述裝置包括:
17.一種計算機(jī)設(shè)備,其特征在于,所述計算機(jī)設(shè)備包括:處理器和存儲器,所述存儲器中存儲有至少一段程序;所述處理器,用于執(zhí)行所述存儲器中的所述至少一段程序以實(shí)現(xiàn)上述如權(quán)利要求1至15任一所述的三維地圖數(shù)據(jù)的更新方法。
18.一種計算機(jī)可讀存儲介質(zhì),其特征在于,所述計算機(jī)可讀存儲介質(zhì)中存儲有可執(zhí)行指令,所述可執(zhí)行指令由處理器加載并執(zhí)行以實(shí)現(xiàn)上述如權(quán)利要求1至15任一所述的三維地圖數(shù)據(jù)的更新方法。
19.一種計算機(jī)程序產(chǎn)品,其特征在于,所述計算機(jī)程序產(chǎn)品包括計算機(jī)指令,所述計算機(jī)指令存儲在計算機(jī)可讀存儲介質(zhì)中,處理器從所述計算機(jī)可讀存儲介質(zhì)讀取并執(zhí)行所述計算機(jī)指令,以實(shí)現(xiàn)上述如權(quán)利要求1至15任一所述的三維地圖數(shù)據(jù)的更新方法。