[發(fā)明專利]游戲幀循環(huán)的任務(wù)處理方法、設(shè)備及存儲(chǔ)介質(zhì)在審
| 申請(qǐng)?zhí)枺?/td> | 202111467985.5 | 申請(qǐng)日: | 2021-12-03 |
| 公開(kāi)(公告)號(hào): | CN114153584A | 公開(kāi)(公告)日: | 2022-03-08 |
| 發(fā)明(設(shè)計(jì))人: | 胡梓楠 | 申請(qǐng)(專利權(quán))人: | 完美世界互動(dòng)(北京)科技有限公司 |
| 主分類號(hào): | G06F9/48 | 分類號(hào): | G06F9/48;A63F13/55 |
| 代理公司: | 北京太合九思知識(shí)產(chǎn)權(quán)代理有限公司 11610 | 代理人: | 劉戈;張愛(ài) |
| 地址: | 100102 北京市朝陽(yáng)區(qū)望京東路*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 游戲 循環(huán) 任務(wù) 處理 方法 設(shè)備 存儲(chǔ) 介質(zhì) | ||
本申請(qǐng)實(shí)施例提供一種游戲幀循環(huán)的任務(wù)處理方法、設(shè)備及存儲(chǔ)介質(zhì)。游戲引擎中的任務(wù)系統(tǒng)接收第一工作線程提交的第一任務(wù)以及所述第一任務(wù)對(duì)至少一個(gè)依賴任務(wù)的依賴關(guān)系后,可在該至少一個(gè)依賴任務(wù)未執(zhí)行完畢時(shí),確定第一任務(wù)為等待狀態(tài)。在該至少一個(gè)依賴任務(wù)全部執(zhí)行完畢時(shí),將第一任務(wù)添加到就緒任務(wù)集合中,并通過(guò)第二工作線程讀取第一任務(wù)并執(zhí)行第一任務(wù)。在這種實(shí)施方式中,工作線程可通過(guò)任務(wù)系統(tǒng)根據(jù)任務(wù)的依賴關(guān)系掛起任務(wù),并通過(guò)任務(wù)系統(tǒng)根據(jù)任務(wù)的依賴關(guān)系判斷何時(shí)重新激活任務(wù),實(shí)現(xiàn)了工作線程可實(shí)現(xiàn)任務(wù)的調(diào)度,降低了對(duì)主線程的依賴,減少了主線程與其他工作線程的交互次數(shù)并降低了主線程的阻塞情況,提升了任務(wù)的處理效率。
技術(shù)領(lǐng)域
本申請(qǐng)涉及引擎技術(shù)領(lǐng)域,尤其涉及一種游戲幀循環(huán)的任務(wù)處理方法、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù)
游戲運(yùn)行時(shí),游戲引擎可不斷按照游戲邏輯規(guī)則運(yùn)行。游戲程序通過(guò)主線程運(yùn)行一次完整的游戲邏輯,稱為完成一次幀循環(huán)(或稱主循環(huán))。在幀循環(huán)中,部分環(huán)節(jié)可以并行執(zhí)行從而提升游戲的運(yùn)行速度。
現(xiàn)有技術(shù)中,游戲引擎的相關(guān)邏輯可被封裝成一系列的任務(wù),在每幀邏輯的特定步驟由主線程提交到線程池,并通過(guò)阻塞的方式同步等待任務(wù)完成,或者用非阻塞的方式查詢?nèi)蝿?wù)是否執(zhí)行完畢。這種方式無(wú)法高效地實(shí)現(xiàn)任務(wù)調(diào)度。因此,有待提出一種新的解決方案。
發(fā)明內(nèi)容
本申請(qǐng)的多個(gè)方面提供一種游戲幀循環(huán)的任務(wù)處理方法、設(shè)備及存儲(chǔ)介質(zhì),用以提任務(wù)處理效率。
本申請(qǐng)實(shí)施例提供一種游戲幀循環(huán)的任務(wù)處理方法,所述游戲幀循環(huán)中,任一幀游戲畫面的渲染邏輯被封裝為多個(gè)任務(wù);游戲引擎包括用于對(duì)所述多個(gè)任務(wù)進(jìn)行調(diào)度的任務(wù)系統(tǒng);所述方法包括:在游戲幀循環(huán)過(guò)程中,接收第一工作線程提交的第一任務(wù)以及所述第一任務(wù)對(duì)至少一個(gè)依賴任務(wù)的依賴關(guān)系;若所述至少一個(gè)依賴任務(wù)未執(zhí)行完畢,則將所述第一任務(wù)的狀態(tài)更新為等待狀態(tài);在所述至少一個(gè)依賴任務(wù)全部執(zhí)行完畢時(shí),將所述第一任務(wù)添加到就緒任務(wù)集合中;通過(guò)第二工作線程讀取所述第一任務(wù),并執(zhí)行所述第一任務(wù)。
進(jìn)一步可選地,接收第一工作線程提交的第一任務(wù),包括:接收所述第一工作線程提交的粒子效果計(jì)算任務(wù)、骨骼動(dòng)畫處理任務(wù)、布料計(jì)算任務(wù)、遮擋剔除任務(wù)、視錐體剔除任務(wù)、蒙皮處理任務(wù)、靜態(tài)裁剪任務(wù)或者渲染任務(wù)。
進(jìn)一步可選地,將所述第一任務(wù)的狀態(tài)更新為等待狀態(tài)之后,還包括:根據(jù)所述至少一個(gè)依賴任務(wù)的數(shù)量,為所述第一任務(wù)生成等待計(jì)數(shù);在所述至少一個(gè)依賴任務(wù)全部執(zhí)行完畢時(shí),將所述第一任務(wù)添加到就緒任務(wù)集合中,包括:在所述至少一個(gè)依賴任務(wù)依次執(zhí)行完畢時(shí),對(duì)所述等待計(jì)數(shù)進(jìn)行依次遞減;在所述等待計(jì)數(shù)為零時(shí),將所述第一任務(wù)添加到就緒任務(wù)集合中。
進(jìn)一步可選地,接收第一工作線程提交的第一任務(wù)以及所述第一任務(wù)對(duì)至少一個(gè)依賴任務(wù)的依賴關(guān)系之后,還包括:針對(duì)所述至少一個(gè)依賴任務(wù)中的任一第二任務(wù),在所述第二任務(wù)的等待任務(wù)列表中,添加所述第一任務(wù);在所述至少一個(gè)依賴任務(wù)依次執(zhí)行完畢時(shí),對(duì)所述等待計(jì)數(shù)進(jìn)行依次遞減,包括:在所述第二任務(wù)執(zhí)行完成時(shí),遍歷所述第二任務(wù)的等待任務(wù)列表,確定等待所述第二任務(wù)執(zhí)行完成的所述第一任務(wù),并對(duì)所述第一任務(wù)的等待計(jì)數(shù)進(jìn)行遞減。
進(jìn)一步可選地,接收第一工作線程提交的第一任務(wù)之后,還包括:確定所述第一任務(wù)的至少一個(gè)等待任務(wù);在所述第一任務(wù)的等待任務(wù)列表中,添加所述至少一個(gè)等待任務(wù)。
進(jìn)一步可選地,通過(guò)第二工作線程讀取所述第一任務(wù),并執(zhí)行所述第一任務(wù),包括:從線程池中,確定未終止的線程作為所述第二工作線程,或者,激活處于空閑狀態(tài)的線程作為所述第二工作線程;采用所述第二工作線程,從所述就緒任務(wù)集合中讀取所述第一任務(wù),并執(zhí)行所述第一任務(wù)。
進(jìn)一步可選地,采用所述第二工作線程,從所述就緒任務(wù)集合中讀取所述第一任務(wù),并執(zhí)行所述第一任務(wù)的過(guò)程中,還包括:若需調(diào)整所述第一任務(wù)的依賴關(guān)系,采用所述第二工作線程將所述第一任務(wù)以及所述第一任務(wù)的新的依賴關(guān)系重新提交至所述任務(wù)系統(tǒng)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于完美世界互動(dòng)(北京)科技有限公司,未經(jīng)完美世界互動(dòng)(北京)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111467985.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 循環(huán)貨倉(cāng)的錯(cuò)列循環(huán)鏈
- 循環(huán)貨倉(cāng)的錯(cuò)列循環(huán)鏈
- 球循環(huán)機(jī)和球循環(huán)方法
- 循環(huán)扇葉輪及循環(huán)扇
- 循環(huán)過(guò)濾式熱風(fēng)循環(huán)烘箱
- 循環(huán)泵(微循環(huán)泵)
- 機(jī)內(nèi)循環(huán)油循環(huán)系統(tǒng)
- 循環(huán)用水機(jī)與循環(huán)系統(tǒng)
- 自動(dòng)熱能循環(huán)利用熱風(fēng)循環(huán)烘箱
- 高溫循環(huán)風(fēng)扇自循環(huán)降溫裝置
- 任務(wù)協(xié)作裝置及方法
- 用于量化任務(wù)價(jià)值的任務(wù)管理方法及裝置
- 用于運(yùn)行任務(wù)的系統(tǒng)、方法和裝置
- 一種分布式任務(wù)調(diào)度系統(tǒng)及方法
- 任務(wù)信息處理方法
- 一種同步任務(wù)異步執(zhí)行的方法和調(diào)度系統(tǒng)
- 數(shù)據(jù)處理方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀介質(zhì)
- 一種自動(dòng)分配和推送的任務(wù)管理平臺(tái)及方法
- 程序執(zhí)行控制的裝置及方法、終端和存儲(chǔ)介質(zhì)
- 基于會(huì)話的任務(wù)待辦方法、系統(tǒng)、電子設(shè)備及存儲(chǔ)介質(zhì)





