本發(fā)明專利技術(shù)涉及一種多線程環(huán)境下基于消息的無(wú)同步3D渲染方法,該方法采用操作系統(tǒng)的消息機(jī)制作為通信手段,通過(guò)監(jiān)測(cè)當(dāng)前3D場(chǎng)景的使用情況,動(dòng)態(tài)分配CPU時(shí)間進(jìn)行邏輯事務(wù)處理、資源訪問(wèn)和3D渲染操作,進(jìn)行多線程同步控制。與現(xiàn)有技術(shù)相比,本發(fā)明專利技術(shù)可在不使用線程同步手段的情況下實(shí)現(xiàn)邏輯處理和3D渲染并行計(jì)算,具有并行處理高效等優(yōu)點(diǎn)。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及一種動(dòng)畫數(shù)據(jù)處理方法,尤其是涉及一種多線程環(huán)境下基于消息的無(wú) 同步3D渲染方法。
技術(shù)介紹
典型的3D應(yīng)用,如3D游戲等,需要把3D渲染和邏輯事件的處理分開,以提高系統(tǒng) 邏輯處理能力和3D渲染效果。為此,3D開發(fā)中往往使用多線程來(lái)處理,以提升并行處理能 力。但是,多線程的加入也為軟件開發(fā)復(fù)雜度帶來(lái)更高的要求,更重要的是對(duì)資源的管理要 求更為嚴(yán)格,特別是資源的訪問(wèn)不能沖突。已有解決方案是,對(duì)多線程訪問(wèn)的資源進(jìn)行同步,如加線程鎖進(jìn)行控制。這種方法 能有效地解決資源訪問(wèn)沖突造成的系統(tǒng)崩潰等問(wèn)題,但對(duì)軟件開發(fā)人員的要求會(huì)很高,對(duì) 多線程控制能力要求很強(qiáng),只要出現(xiàn)任何一個(gè)紕漏都可能讓整個(gè)系統(tǒng)出錯(cuò)。同時(shí),頻繁的多 線程同步反而會(huì)降低系統(tǒng)的性能。
技術(shù)實(shí)現(xiàn)思路
本專利技術(shù)的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種可實(shí)現(xiàn)邏輯處 理和3D渲染并行計(jì)算,且并行處理高效的多線程環(huán)境下基于消息的無(wú)同步3D渲染方法。本專利技術(shù)的目的可以通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)一種多線程環(huán)境下基于消息的無(wú)同步3D渲染方法,該方法采用操作系統(tǒng)的消息 機(jī)制作為通信手段,通過(guò)監(jiān)測(cè)當(dāng)前3D場(chǎng)景的使用情況,動(dòng)態(tài)分配CPU時(shí)間進(jìn)行邏輯事務(wù)處 理、資源訪問(wèn)和3D渲染操作,進(jìn)行多線程同步控制,具體包括以下步驟a)初始化3D環(huán)境,根據(jù)硬件顯卡及所使用的圖形API初始化3D環(huán)境;b) CPU分配線程模塊監(jiān)測(cè)并統(tǒng)計(jì)當(dāng)前3D場(chǎng)景的使用情況,計(jì)算并動(dòng)態(tài)分配CPU時(shí) 間片;c) CPU分配線程模塊把分配的CPU時(shí)間片通過(guò)消息方式通知主線程模塊;d)主線程模塊處理接收到消息,并判斷是否需要退出系統(tǒng),若是,則退出,若否,則 執(zhí)行步驟e);e)主線程模塊根據(jù)接收到的消息,以消息響應(yīng)方式進(jìn)行邏輯事務(wù)處理、資源訪問(wèn) 和3D渲染。所述的動(dòng)態(tài)分配CPU時(shí)間片具體為I)統(tǒng)計(jì)當(dāng)前3D場(chǎng)景所渲染的對(duì)象數(shù)量,包括實(shí)體對(duì)象和紋理數(shù)據(jù);2)記錄前一幀邏輯事務(wù)處理所花費(fèi)的時(shí)間;3)預(yù)測(cè)下一幀的邏輯事務(wù)處理時(shí)間及3D渲染對(duì)象數(shù)量;4)根據(jù)下一幀預(yù)測(cè)值和前一幀統(tǒng)計(jì)值獲得CPU時(shí)間片分配值。與現(xiàn)有技術(shù)相比,本專利技術(shù)具有以下優(yōu)點(diǎn)I、保持傳統(tǒng)的多線程功能,以實(shí)現(xiàn)邏輯處理和3D渲染的并行計(jì)算;2、取消多線程同步機(jī)制,通過(guò)機(jī)制保障資源的無(wú)沖突訪問(wèn),帶來(lái)高效并行的處理。 附圖說(shuō)明圖I為本專利技術(shù)的結(jié)構(gòu)示意圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施例對(duì)本專利技術(shù)進(jìn)行詳細(xì)說(shuō)明。本實(shí)施例以本專利技術(shù)技術(shù)方案 為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本專利技術(shù)的保護(hù)范圍不限于 下述的實(shí)施例。實(shí)施例一種多線程環(huán)境下基于消息的無(wú)同步3D渲染方法,該方法采用操作系統(tǒng)的消息 機(jī)制作為通信手段,通過(guò)監(jiān)測(cè)當(dāng)前3D場(chǎng)景的使用情況,動(dòng)態(tài)分配CPU時(shí)間進(jìn)行邏輯事務(wù)處 理、資源訪問(wèn)和3D渲染操作,進(jìn)行多線程同步控制。如圖I所示,上述渲染方法具體包括以下步驟a)初始化3D環(huán)境,根據(jù)硬件顯卡及所使用的圖形API初始化3D環(huán)境;b) CPU分配線程模塊監(jiān)測(cè)并統(tǒng)計(jì)當(dāng)前3D場(chǎng)景的使用情況,計(jì)算并動(dòng)態(tài)分配CPU時(shí) 間片;c) CPU分配線程模塊把分配的CPU時(shí)間片通過(guò)消息方式通知主線程模塊;d)主線程模塊判斷是否收到消息,若否,則返回步驟C),若是,則處理接收到消 息,并判斷是否需要退出系統(tǒng),若是,則退出,若否,則執(zhí)行步驟e);e)主線程模塊根據(jù)接收到的消息,以消息響應(yīng)方式進(jìn)行邏輯事務(wù)處理、資源訪問(wèn) 和3D渲染,處理完畢后,接收下一條消息。所述的動(dòng)態(tài)分配CPU時(shí)間片具體為I)統(tǒng)計(jì)當(dāng)前3D場(chǎng)景所渲染的對(duì)象數(shù)量,包括實(shí)體對(duì)象和紋理數(shù)據(jù);2)記錄前一幀邏輯事務(wù)處理所花費(fèi)的時(shí)間;3)預(yù)測(cè)下一幀的邏輯事務(wù)處理時(shí)間及3D渲染對(duì)象數(shù)量;4)根據(jù)下一幀預(yù)測(cè)值和前一幀統(tǒng)計(jì)值獲得CPU時(shí)間片分配值。上述多線程環(huán)境下基于消息的無(wú)同步3D渲染方法保持傳統(tǒng)的多線程功能,以實(shí) 現(xiàn)邏輯處理和3D渲染的并行計(jì)算,同時(shí)取消多線程同步機(jī)制,通過(guò)機(jī)制保障資源的無(wú)沖突 訪問(wèn),帶來(lái)高效并行的處理。權(quán)利要求1.一種多線程環(huán)境下基于消息的無(wú)同步3D渲染方法,其特征在于,該方法采用操作系統(tǒng)的消息機(jī)制作為通信手段,通過(guò)監(jiān)測(cè)當(dāng)前3D場(chǎng)景的使用情況,動(dòng)態(tài)分配CPU時(shí)間進(jìn)行邏輯事務(wù)處理、資源訪問(wèn)和3D渲染操作,進(jìn)行多線程同步控制,具體包括以下步驟 a)初始化3D環(huán)境,根據(jù)硬件顯卡及所使用的圖形API初始化3D環(huán)境; b)CPU分配線程模塊監(jiān)測(cè)并統(tǒng)計(jì)當(dāng)前3D場(chǎng)景的使用情況,計(jì)算并動(dòng)態(tài)分配CPU時(shí)間片; c)CPU分配線程模塊把分配的CPU時(shí)間片通過(guò)消息方式通知主線程模塊; d)主線程模塊處理接收到消息,并判斷是否需要退出系統(tǒng),若是,則退出,若否,則執(zhí)行步驟e); e)主線程模塊根據(jù)接收到的消息,以消息響應(yīng)方式進(jìn)行邏輯事務(wù)處理、資源訪問(wèn)和3D渲染。2.根據(jù)權(quán)利要求I所述的一種多線程環(huán)境下基于消息的無(wú)同步3D渲染方法,其特征在于,所述的動(dòng)態(tài)分配CPU時(shí)間片具體為 1)統(tǒng)計(jì)當(dāng)前3D場(chǎng)景所渲染的對(duì)象數(shù)量,包括實(shí)體對(duì)象和紋理數(shù)據(jù); 2)記錄前一幀邏輯事務(wù)處理所花費(fèi)的時(shí)間; 3)預(yù)測(cè)下一幀的邏輯事務(wù)處理時(shí)間及3D渲染對(duì)象數(shù)量; 4)根據(jù)下一幀預(yù)測(cè)值和前一幀統(tǒng)計(jì)值獲得CPU時(shí)間片分配值。全文摘要本專利技術(shù)涉及一種多線程環(huán)境下基于消息的無(wú)同步3D渲染方法,該方法采用操作系統(tǒng)的消息機(jī)制作為通信手段,通過(guò)監(jiān)測(cè)當(dāng)前3D場(chǎng)景的使用情況,動(dòng)態(tài)分配CPU時(shí)間進(jìn)行邏輯事務(wù)處理、資源訪問(wèn)和3D渲染操作,進(jìn)行多線程同步控制。與現(xiàn)有技術(shù)相比,本專利技術(shù)可在不使用線程同步手段的情況下實(shí)現(xiàn)邏輯處理和3D渲染并行計(jì)算,具有并行處理高效等優(yōu)點(diǎn)。文檔編號(hào)G06F9/38GK102981809SQ201210587740公開日2013年3月20日 申請(qǐng)日期2012年12月28日 優(yōu)先權(quán)日2012年12月28日專利技術(shù)者林秀全, 鄭婉清, 高小玲 申請(qǐng)人:上海創(chuàng)圖網(wǎng)絡(luò)科技發(fā)展有限公司本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種多線程環(huán)境下基于消息的無(wú)同步3D渲染方法,其特征在于,該方法采用操作系統(tǒng)的消息機(jī)制作為通信手段,通過(guò)監(jiān)測(cè)當(dāng)前3D場(chǎng)景的使用情況,動(dòng)態(tài)分配CPU時(shí)間進(jìn)行邏輯事務(wù)處理、資源訪問(wèn)和3D渲染操作,進(jìn)行多線程同步控制,具體包括以下步驟:a)初始化3D環(huán)境,根據(jù)硬件顯卡及所使用的圖形API初始化3D環(huán)境;b)CPU分配線程模塊監(jiān)測(cè)并統(tǒng)計(jì)當(dāng)前3D場(chǎng)景的使用情況,計(jì)算并動(dòng)態(tài)分配CPU時(shí)間片;c)CPU分配線程模塊把分配的CPU時(shí)間片通過(guò)消息方式通知主線程模塊;d)主線程模塊處理接收到消息,并判斷是否需要退出系統(tǒng),若是,則退出,若否,則執(zhí)行步驟e);e)主線程模塊根據(jù)接收到的消息,以消息響應(yīng)方式進(jìn)行邏輯事務(wù)處理、資源訪問(wèn)和3D渲染。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:林秀全,鄭婉清,高小玲,
申請(qǐng)(專利權(quán))人:上海創(chuàng)圖網(wǎng)絡(luò)科技發(fā)展有限公司,
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。