欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種分布式三維虛擬環(huán)境的實體模型動態(tài)調(diào)度方法

文檔序號:8340286閱讀:440來源:國知局
一種分布式三維虛擬環(huán)境的實體模型動態(tài)調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于三維可視化仿真領(lǐng)域,尤其涉及諸如虛擬戰(zhàn)場這類大規(guī)模復(fù)雜虛擬環(huán)境中的實體模型動態(tài)調(diào)度方法。
【背景技術(shù)】
[0002]分布式三維虛擬環(huán)境是一種基于虛擬現(xiàn)實技術(shù)與網(wǎng)絡(luò)技術(shù)的實時網(wǎng)絡(luò)交互環(huán)境,它通過分布在各地的計算節(jié)點之間的通信,共享虛擬三維環(huán)境的局部或全局數(shù)據(jù)信息,協(xié)同完成分布到多計算節(jié)點上的任務(wù),給用戶提供一種整體的、真實的、可沉浸的虛擬三維空間。分布式三維虛擬環(huán)境技術(shù)由于其擴展性好,適應(yīng)性廣等特點,已在軍事仿真、網(wǎng)絡(luò)娛樂等方面得到了廣泛的應(yīng)用。
[0003]隨著計算機圖形技術(shù)的發(fā)展,分布式三維虛擬環(huán)境的圖形效果越來越逼真,隨之帶來存儲量和運算量的急劇增加,針對這一問題,目前通常采用out-of-core技術(shù)將場景數(shù)據(jù)根據(jù)需要動態(tài)調(diào)入調(diào)出內(nèi)存,但由于外存數(shù)據(jù)獲取速度較為緩慢,頻繁的內(nèi)外存數(shù)據(jù)交互必然會引起系統(tǒng)延遲,使渲染幀率變得非常不穩(wěn)定。
[0004]對于虛擬環(huán)境中的靜態(tài)模型(整個渲染過程中空間位置和狀態(tài)保持不變的模型),通過在數(shù)據(jù)調(diào)度的基礎(chǔ)上引入數(shù)據(jù)預(yù)測機制,即預(yù)先判斷并獲取與未來需求密切相關(guān)的數(shù)據(jù)集,將可能突然增加的調(diào)度量平均到多個幀間完成,保證渲染平滑連續(xù)。但是對于虛擬環(huán)境中的動態(tài)模型,由于在分布式三維虛擬環(huán)境中存在著大量的構(gòu)造復(fù)雜的實體模型,且這些模型空間位置和狀態(tài)一直處于隨機的動態(tài)變化之中,無法引入數(shù)據(jù)預(yù)測機制進行預(yù)測,因而無法采用現(xiàn)有的技術(shù)實現(xiàn)動態(tài)調(diào)度。

【發(fā)明內(nèi)容】

[0005]為解決上述問題,本發(fā)明提供一種分布式三維虛擬環(huán)境的實體模型動態(tài)調(diào)度方法,其在不降低三維虛擬環(huán)境內(nèi)場景實體逼真度的基礎(chǔ)上大幅降低實體模型的內(nèi)外存數(shù)據(jù)交互頻率,從而使得整個場景資源動態(tài)調(diào)度過程迅速、平滑。
[0006]本發(fā)明的分布式三維虛擬環(huán)境的實體模型動態(tài)調(diào)度方法,其方法包括以下步驟:
[0007]步驟1,建立所述分布式三維虛擬場景內(nèi)各實體模型的層次化數(shù)據(jù)結(jié)構(gòu),并將所述實體模型內(nèi)每個部件分別保存為一個模型資源文件;
[0008]其中,所述層次化數(shù)據(jù)結(jié)構(gòu)為:實體模型內(nèi)各部件的層級結(jié)構(gòu)、各部件名稱、各部件的局部坐標系和各部件的定位點;
[0009]步驟2,以外部文件的方式建立所述分布式三維虛擬場景內(nèi)各仿真節(jié)點發(fā)送的實體模型狀態(tài)信息數(shù)據(jù)包PDU與模型類模板的映射關(guān)系,所述映射關(guān)系為:實體模型ID、完好狀態(tài)state與模型類模板的模型類名template、派生方式碼mod--對應(yīng);
[0010]其中,所述實體模型狀態(tài)信息數(shù)據(jù)包PDU包括:實體模型ID、實體模型的三維空間坐標和完好狀態(tài)state ;所述模型類模板的內(nèi)容包括模型類名template、基礎(chǔ)模型和派生模型;所述基礎(chǔ)模型包括:部件層級結(jié)構(gòu)、基礎(chǔ)部件對應(yīng)的外部存儲器中的步驟I保存的模型資源文件、基礎(chǔ)部件識別碼;所述派生模型包括:派生方式碼mod、派生部件對應(yīng)的外部存儲器中的步驟I保存的模型資源文件、派生部件識別碼和派生部件的裝配偏移量和裝配相對方向;
[0011]步驟3,創(chuàng)建從三維虛擬環(huán)境回收不可見實體模型的緩沖池Ml和存放三維虛擬環(huán)境中所有可見實體模型索引的存儲池M2 ;
[0012]步驟4:獲取當前幀三維場景視點信息,并結(jié)合所述實體模型狀態(tài)信息數(shù)據(jù)包進行實體模型的可見性判斷,將已存在于場景中的不可見的實體模型放入緩沖池M1,并將其模型置為不可見、將其模型的索引從存儲池M2中刪除;對場景中不存在或已存在但完好狀態(tài)發(fā)生變化的可見的實體模型,根據(jù)步驟2中的映射關(guān)系和緩沖池Ml中存在對應(yīng)的模型類模型實例情況,或進行實體模型重用操作、或進行實體模型重組操作、或進行實體模型重構(gòu)操作。
[0013]進一步的,所述步驟4包括:
[0014]步驟40,獲取當前幀三維場景視點信息和所有仿真節(jié)點發(fā)送的rou,其中三維場景視點數(shù)據(jù)包括視點的位置、方向、水平視場角和可見距離;
[0015]步驟41,根據(jù)實體模型的三維空間坐標和三維場景視點數(shù)據(jù)計算各實體模型的觀察角和視目距離,并對從網(wǎng)絡(luò)中接收的所有PDU進行遍歷判斷:若觀察角和視目距離均處于設(shè)定的觀察范圍和視場角之內(nèi),則實體模型為可見實體模型,執(zhí)行步驟44;否則實體模型為不可見實體模型,執(zhí)行步驟42 ;
[0016]步驟42,以實體模型ID為關(guān)鍵字搜索M2內(nèi)其對應(yīng)的實體模型索引,如果搜索到,則說明該實體模型在三維虛擬場景中存在,則執(zhí)行步驟43 ;如果未搜索到,則說明該實體在場景中不存在,不需要進行處理;
[0017]步驟43,將實體模型以及實體模型的索引、template和mod加入緩沖池Ml,并將該實體模型置為不可見;同時將該實體模型的索引從M2中刪除;
[0018]步驟44:以實體模型ID為關(guān)鍵字搜索M2內(nèi)其對應(yīng)的實體模型索引:
[0019]如果搜索到,則說明該實體模型在三維虛擬場景中已存在,進一步判斷該實體模型的state是否發(fā)生變化,如果發(fā)生變化則先執(zhí)行步驟43,然后執(zhí)行步驟45 ;如果未發(fā)生變化,說明該實體模型不需要更新,不執(zhí)行調(diào)度處理;
[0020]如果未搜索到,說明該模型還未加入到三維虛擬場景,執(zhí)行步驟45 ;
[0021]步驟45,根據(jù)實體模型ID和state從步驟2中建立的映射關(guān)系中獲取模型類模板的template和mod,并在Ml中進行檢索,如果檢索到template和mod的值都匹配的實體模型,則對該模型執(zhí)行步驟46的模型重用操作;如果只有template的值匹配,則進入步驟47的模型重組操作;如果template和mod都不匹配,則進入步驟48的模型重構(gòu)操作;
[0022]步驟46,模型的重用操作:將實體模型的索引加入M2,并置為可見,同時將模型的索引、template和mod從緩沖池Ml中刪除;
[0023]步驟47,模型的重組操作:在緩沖池Ml中查找template相同,mod差值絕對值最小的模型,將該模型稱為原始模型,將需要重組的模型稱為目標模型;在template對應(yīng)的模板資源文件中找到目標模型mod對應(yīng)的派生方式描述T和原始模型mod對應(yīng)的派生方式描述0,首先對T中所有的部件識別碼進行遍歷,將原始模型中對應(yīng)的部件替換為T指定的部件;然后對O中的所有的部件識別碼進行遍歷,首先判斷部件識別碼是否在T中存在,若存在,則不進行任何操作,若不存在,則將原始模型中對應(yīng)的部件替換回基礎(chǔ)模型對應(yīng)的部件;對原始模型執(zhí)行步驟46的模型重用操作;
[0024]步驟48,模型構(gòu)造操作:依據(jù)template對應(yīng)的模板資源文件中的基礎(chǔ)模型部件層級結(jié)構(gòu),按照自頂向下的順序依次加載外部存儲器中基礎(chǔ)部件的模型資源文件,構(gòu)造出基礎(chǔ)模型B ;如果mod不等于0,按照步驟47對基礎(chǔ)模型B執(zhí)行模型重組操作;將重組后的模型索引加入M2,并置為可見。
[0025]進一步的,該方法還包括動態(tài)調(diào)整緩沖池Ml中各模型類的模型實例數(shù)量比例的步驟:在某一時間段內(nèi)對所有模型類調(diào)出和存入緩沖池的模型實例數(shù)量以及當前緩沖池內(nèi)存儲的模型實例數(shù)量進行統(tǒng)計,如果存入數(shù)量遠大于調(diào)出數(shù)量,則將緩沖池內(nèi)該模型類的模型實例數(shù)量減半;如果調(diào)出數(shù)量大于存入數(shù)量,則將緩沖池內(nèi)該模型類的模型實例通過復(fù)制,將其數(shù)量增加調(diào)出與存入差值的二倍。
[0026]進一步的,該方法還包括動態(tài)調(diào)整緩沖池Ml大小的步驟:在某一時間段內(nèi)對緩沖池內(nèi)所有模型類的模型實例總數(shù)量進行統(tǒng)計,如果大于某一閾值,以該時間段內(nèi)不同模型類的模型實例數(shù)量的方差值作為優(yōu)先級,對模型類的模型實例進行刪除。
[0027]有益效果:
[0028]本發(fā)明的實體模型動態(tài)調(diào)度方法以xml模板構(gòu)建模型部件-模型類-模型實體的層次化的模型數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ),在動態(tài)調(diào)度過程中實現(xiàn)了實體模型的部件級重用,減少模型幾何數(shù)據(jù)和紋理數(shù)據(jù)對內(nèi)存資源的消耗,并減少內(nèi)外存儲器的交互頻率,確保虛擬場景渲染的實時和平滑。
[0029]本發(fā)明針對大規(guī)
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
海阳市| 共和县| 新巴尔虎左旗| 康马县| 大安市| 景洪市| 错那县| 名山县| 千阳县| 漯河市| 类乌齐县| 包头市| 东海县| 察雅县| 突泉县| 南丰县| 阿巴嘎旗| 闵行区| 筠连县| 健康| 巫溪县| 东丽区| 昂仁县| 六安市| 常熟市| 衢州市| 明水县| 台北市| 旺苍县| 克什克腾旗| 卢龙县| 永清县| 江陵县| 申扎县| 宁河县| 宜君县| 姜堰市| 新绛县| 望谟县| 邹平县| 根河市|