亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于改善分布式交互模擬中的對象的呈現的裝置和方法

文檔序號:1619259閱讀:665來源:國知局
用于改善分布式交互模擬中的對象的呈現的裝置和方法
【專利摘要】提供用于在多個計算設備上實質上同時呈現分布式模擬的系統和方法。第一計算設備控制所述模擬中的對象。第二計算設備產生與視覺狀態(tài)相關的所述對象的視覺表示。所述第二計算設備產生預測狀態(tài)并從所述第一計算設備接收包括新狀態(tài)的更新。所述預測狀態(tài)的部分被設置為等于所述新狀態(tài)的部分,且確定所述預測和視覺狀態(tài)之間的差異。當所述差異大于第一閾值時,可修改所述預測狀態(tài)的至少一個速度。當所述差異大于第二閾值時,至少部分基于所述預測狀態(tài)來修改所述視覺狀態(tài)。至少部分基于所述視覺狀態(tài)來渲染所述對象的新的視覺表示,且顯示所述新的視覺表示。
【專利說明】用于改善分布式交互模擬中的對象的呈現的裝置和方法
[0001]相關申請的交叉引用
[0002]本申請請求2011年5月3日提交的美國臨時申請N0.61/482,162的權益,所述申請以引用的方式全文并入本文。
【技術領域】
[0003]本發(fā)明一般針對分布式交互模擬,如在多個操作員站/玩家站的對面呈現連貫的虛擬世界的軍事模擬器和多玩家計算機游戲中使用的那些分布式交互模擬。
【背景技術】
[0004]分布式交互模擬是當今視頻游戲的流行形式,但起源于諸如20世紀80年代和20世紀90年代的SMNET的軍事模擬。在分布式交互模擬中,在多個計算機站之間創(chuàng)建并共享虛擬世界,每個計算機站支持具有控制器的至少一個用戶和至少一個顯示器。
[0005]在一些模擬中,站共享向例如每個已知網絡時間協議(“NTP”)提供公共時基的分布式時鐘。然而,這不是必需的。分布式模擬一般(但不一定)定期前進(例如,每秒更新30次),且一般(但是不一定)在每個站以同樣的速度前進(例如,其它站可每秒運行更新60 次)。
[0006]所述站也共享環(huán)境模型,包括空域和地形。地形可為靜態(tài)的,包括地貌、建筑物(可包括內部)和水體?;蛘?,地形可為非靜態(tài)的:例如,一些或所有建筑物可被破壞,地貌可“傷痕累累”(例如,具有輪胎軌道、火山口或燒傷的痕跡)等。在這個環(huán)境中,放置包括例如車輛、人、動物的模擬動態(tài)對象。這些動態(tài)對象的動畫給了模擬生命的外觀。
[0007]在此類模擬中,每個站負有管理一個或多個模擬對象的主要責任。對于站管理的每個對象,為每個本地時間增量計算詳細模型以確定它的行為。例如,全地形車(“ATV”)的詳細模型可接受來自操作員(通常是管理站本地的操作員)的方向盤和踏板輸入。ATV的詳細模型可進行計算以模擬自動變速器、ATV的懸架系統與地形之間的相互作用、輪胎和地形表面之間的牽引、也許還有油耗、發(fā)動機過熱或其它細節(jié)和模擬故障。通常,雖然對于足夠現實很關鍵,但是在交換效率中,在這個細節(jié)水平上建模只需由管理站計算,其中詳細模型的結果向分布式交互模擬中的其它站公布。
[0008]注意,ATV的操作員可為人類玩家,或者在另一人類玩家不可用或不需要的情況下,操作員可為模擬盟友或敵人的人工智能程序(“Al”)。當使用時,Al只是詳細模型的另一有效組件;管理站維持狀態(tài)并執(zhí)行ATV驅動Al所需的增量模擬,但是遠程站只接收結果O
[0009]在一些情況下,模擬的對象可能是復雜的并需要運動學模型的復雜動畫(如與人類、動物或外星人)進行鉸接,但是其它對象可相對簡單(例如,木箱或拋射體),在這種情況下,可使用簡單的彈道模型。
[0010]然而,共享來自管理站的詳細建模的結果(也稱為更新)存在問題。例如,需要花費時間來把更新分配到不控制對象的遠程站;且由于這個等待時間,模型的更新總是有些“舊”的信息。在所有站正確設置分布式模擬時鐘的模擬中,任何更新將在過去某一模擬時間進行時間戳,但是一般是近期。然而,剛性計時系統可把共振引入模型,從而產生視覺假象。另外,維持準確的時鐘有時是不必要的復雜性的來源且偶爾是錯誤的來源。另外,通過不可靠的網絡,更新可被丟失或延遲且到達時具有不規(guī)則等待時間。另外,帶寬限制和模擬中對象的數量可限制可為每個對象發(fā)送的更新的數量,使得更新不像管理站計算詳細模擬般頻繁地被提供到遠程站。
[0011]在每個站,顯示器向玩家呈現虛擬世界。對于遠程管理的對象,顯示器通常比更新到達更頻繁地刷新,而只像更新到達一樣頻繁地改變遠程管理對象的顯示將使遠程管理對象顯得生澀和不真實。為了緩和這種情況,對象更新與對象更新對應的時間相關且更新的接受者可推斷在更新后的時間如何顯示對象。
[0012]為了實現這個目標,更新必須代表對象在特定時間的狀態(tài)。例如,狀態(tài)可包括對象的位置和方向(一般(但不一定)包括6個坐標軸:X、Y、Z、滾動、俯仰和偏轉)和具有不同值的其它屬性(例如,前燈是否打開、車輛的發(fā)動機是否冒煙、未爆炸的手榴彈將爆炸的時間)。特定時間對應于當前狀態(tài)的時間。
[0013]對象的狀態(tài)究竟包括什么取決于對象的性質。對于復雜鉸接式對象,例如動物,狀態(tài)可包括對象的骨骼關節(jié)或總結此類關節(jié)的動畫循環(huán)的索引。
[0014]在一些情況下,對象可具有多個操作模式,例如,當“動物”對象是活著的時候,它可由動畫循環(huán)驅動,但當如在狩獵模擬中動物死亡時,鉸接式身體的操作模式變?yōu)榉潘傻倪\動學模型。例如,身體變得癱軟,但是骨骼施加的限制仍然在控制之中。對于具有多個控制模式的那些對象,狀態(tài)還可包括識別正使用哪個控制模式。
[0015]在這里,“狀態(tài)”可包括許多屬性,而不僅僅是物理位置、方向(旋轉)。諸如動畫循環(huán)索引、步行循環(huán)索引等的索引中的一些可能有益于推斷預測。然而,只瑣細地推斷諸如車輛的前燈是否打開或是否鳴喇叭的一些屬性。例如,一旦燈打開,它們將保持打開直到更新稱它們關閉。
[0016]狀態(tài)也可包括用于以提高的精度推斷后續(xù)狀態(tài)的信息,例如線性或旋轉軸的速度和線性或旋轉軸的加速度。雖然可例如通過把過去的兩個更新的位置差除以過去的兩個更新的時間差來得到速度以進行推斷而無需此類提示,但是提供明確的速度或加速度可改善結果。
[0017]在這里,“狀態(tài)”可包括狀態(tài)信息和/或相對于狀態(tài)獲得的一個或多個計算結果。
[0018]對于在站管理的對象的模擬的每個迭代,如果提供了對象中各種自由度的任一自由度,那么新的狀態(tài)源自操作員輸入和詳細模型執(zhí)行,包括速度和/或加速度值。
[0019]然而,對象的狀態(tài)以低于每迭代一次的頻率從管理站發(fā)送到其它站中的每個站。例如,如果管理站將每秒30次地更新對象模型,那么如果對象不重要、較遠、格外一致或只慢慢改變,或者如果有許多對象要更新且/或通信帶寬高度受限,則更新就只可每秒5次或甚至更低頻率(例如,每秒2次)地發(fā)送到其它站。
[0020]基于從管理站接收到的更新,推斷技術提供關于遠程管理對象的狀態(tài)的最佳可用信息和用于預測它的運動(至少在不久的將來)的最佳可用信息。仍然,當推斷狀態(tài)基本上超過或達不到后續(xù)更新中描述的狀態(tài)時,可發(fā)生表觀運動中的刺耳的不連續(xù)性。通常這是因為操作員進行來自較早更新的推斷并不預期的突然轉向、卡住剎車、躲閃或急轉彎以避免碰撞等。
[0021]按模擬的說法,提供對象當前狀態(tài)的最佳估計是“預測器”的工作,并且“校正器”的工作是以盡可能美觀的方式來隱藏推斷狀態(tài)的明顯不連續(xù)性。
[0022]不幸的是,適用于當前的預測器-校正器系統缺乏用于各種各樣的對象類型的美觀的、看似逼真的行為,或者缺乏用于相同對象類型的但是在各種各樣的條件下的美觀的、看似逼真的行為。結果是遠程管理對象的不可預知的生澀運動或行為。對于瞄準并射擊對象是主要目標的模擬,這可使瞄準變得困難并令人沮喪。類似地,在駕駛或飛行模擬中,這可使跟隨遠程管理對象變得困難并令人沮喪。因此,需要更好的方式來在分布式交互模擬中呈現遠程管理對象的移動。本申請?zhí)峁┤绺鶕韵略敿毭枋龊透綀D將明顯的這個和其它優(yōu)勢。

【發(fā)明內容】

[0023]實施方案包括用于在多個計算設備上實質上同時呈現分布式模擬的方法。多個計算設備包括執(zhí)行所述分布式模擬的第一部分的第一計算設備。第一部分控制對象。多個計算設備包括執(zhí)行分布式模擬的第二部分的第二計算設備。第二部分產生可在第一顯示設備上顯示的所述對象的第一視覺表示。第二計算設備包括與所述對象和所述第一視覺表示相關的視覺狀態(tài)。視覺狀態(tài)包括至少一個參數值。第二計算設備從所述第一計算設備接收到包括與所述對象的第二視覺表示相關的先前狀態(tài)的先前更新。第二計算設備至少部分基于所述先前狀態(tài)來產生所述對象的預測狀態(tài)。預測狀態(tài)包括至少一個速度和至少一個參數值。第二計算設備從所述第一計算設備接收包括與所述對象的第三視覺表示相關的新狀態(tài)的更新。新狀態(tài)包括至少一個參數值。第二計算設備把所述預測狀態(tài)的所述至少一個參數值設置為等于所述新狀態(tài)的所述至少一個參數值,并確定所述預測狀態(tài)的所述至少一個參數值和所述視覺狀態(tài)的所述至少一個參數值之間的差異。當所述差異大于第一閾值時,所述第二計算設備修改所述預測狀態(tài)的所述至少一個速度。當所述差異大于第二閾值時,所述第二計算設備至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的至少一個參數值。所述第二計算設備至少部分基于所述視覺狀態(tài)渲染所述對象的第四視覺表示并在所述第一顯示設備上顯示所述對象的所述第四視覺表示。
[0024]所述對象的所述第三視覺表示可由所述第一計算設備在第二顯示設備上顯示,且實質上與所述第一計算設備在所述第二顯示設備上顯示所述對象的所述第三視覺表示同時,所述對象的所述第四視覺表示可由所述第二計算設備在所述第一顯示設備上顯示。
[0025]在一些實施方案中,所述預測狀態(tài)是第一預測狀態(tài),且所述差異是第一差異。在此類實施方案中,第二計算設備可至少部分基于所述預測狀態(tài)的所述至少一個速度來產生第二預測狀態(tài)(包括至少一個參數值)。當所述第二差異大于所述第二閾值時,所述第二計算設備可至少部分基于所述第二預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值。在此類實施方案中,所述第二計算設備至少部分基于所述視覺狀態(tài)來渲染所述對象的第五視覺表示,并在所述第一顯示設備上顯示所述對象的所述第五視覺表
/Jn ο
[0026]所述第二計算設備可從所述第二計算設備可訪問的存儲設備獲得所述第一閾值。所述對象可具有類型,且所述第一閾值可被存儲在所述存儲設備上存儲的表中。在此類實施方案中,所述第一閾值與所述對象在所述表中的所述類型相關。在一些實施方案中,所述新狀態(tài)的所述至少一個參數值包括至少一個速度,且修改所述預測狀態(tài)的所述至少一個速度包括:獲得與所述對象的所述類型相關的凹凸值和根據所述凹凸值、所述差異和所述新狀態(tài)的所述至少一個速度來計算所述預測狀態(tài)的所述至少一個速度。
[0027]在一些實施方案中,所述視覺狀態(tài)的所述至少一個參數值包括至少一個速度,且所述預測狀態(tài)的所述至少一個參數值包括至少一個速度。在此類實施方案中,確定所述預測狀態(tài)的所述至少一個參數值和所述視覺狀態(tài)的所述至少一個參數值之間的所述差異可包括:確定所述預測狀態(tài)的所述至少一個速度和所述視覺狀態(tài)的所述至少一個速度之間的差異。當所述新狀態(tài)的所述至少一個參數值包括至少一個速度時,所述預測狀態(tài)的所述至少一個速度可被設置為等于所述新狀態(tài)的所述至少一個速度。
[0028]在一些實施方案中,當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值包括:確定所述差異是否大于第三閾值,所述第三閾值大于所述第二閾值。當確定所述差異大于所述第三閾值時,所述第二計算設備可把所述視覺狀態(tài)的所述至少一個參數值設置為等于所述預測狀態(tài)的所述至少一個參數值。當所述差異小于所述第三閾值時,所述第二計算設備可確定混合狀態(tài)?;旌蠣顟B(tài)可至少部分基于所述視覺狀態(tài)的所述至少一個參數值和所述預測狀態(tài)的所述至少一個參數值。所述混合狀態(tài)可包括至少一個參數值,且所述視覺狀態(tài)的所述至少一個參數值可被設置為等于所述混合狀態(tài)的所述至少一個參數值。
[0029]在一些實施方案中,所述視覺狀態(tài)的所述至少一個參數值包括位置信息和方向信息中的至少一個,且所述預測狀態(tài)的所述至少一個參數值包括位置信息和方向信息中的至少一個。在此類實施方案中,確定所述預測狀態(tài)的所述至少一個參數值和所述視覺狀態(tài)的所述至少一個參數值之間的所述差異可包括:確定所述預測狀態(tài)的位置信息和方向信息中的所述至少一個和所述視覺狀態(tài)的位置信息和方向信息中的所述至少一個之間的差異。當所述新狀態(tài)的所述至少一個參數值包括位置信息和方向信息中的至少一個時,所述預測狀態(tài)的位置信息和方向信息中的至少一個可被設置為等于所述新狀態(tài)的位置信息和方向信息中的至少一個。
[0030]當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值可包括:確定所述差異是否大于第三閾值,其中所述第三閾值大于所述第二閾值。當確定所述差異大于所述第三閾值時,所述視覺狀態(tài)的位置信息和方向信息中的所述至少一個可被設置為等于所述預測狀態(tài)的位置信息和方向信息中的所述至少一個。
[0031]所述對象可具有類型,且所述第三閾值可被存儲在表中且與所述表中的所述對象類型相關。所述第二計算設備可從所述表獲得所述第三閾值。
[0032]當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值可包括:當所述差異小于所述第三閾值時,確定混合狀態(tài)。所述混合狀態(tài)可至少部分基于所述視覺狀態(tài)的位置信息和方向信息中的所述至少一個和所述預測狀態(tài)的位置信息和方向信息中的所述至少一個。在此類實施方案中,所述混合狀態(tài)包括位置信息和方向信息中的至少一個。在確定所述混合狀態(tài)之后,所述視覺狀態(tài)的位置信息和方向信息中的所述至少一個可被設置為等于所述混合狀態(tài)的位置信息和方向信息中的所述至少一個。
[0033]在所述對象具有類型的實施方案中,所述混合狀態(tài)可至少部分基于與所述對象的所述類型相關的一個或多個參數值來確定。所述第二和第三閾值可被存儲在表中且與所述表中的所述對象類型相關。在此類實施方案中,所述第二計算設備可從所述表獲得所述第
二和第三閾值。
[0034]所述新狀態(tài)的所述至少一個參數值可包括所述對象的控制模式,且所述第二計算設備可至少部分基于所述對象的所述控制模式來從多個第一和第二閾值選擇所述第二和第三閾值中的至少一個。所述選擇也可至少部分基于所述對象的所述類型。
[0035]當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值可包括:確定局部碰撞狀態(tài)和基于所述局部碰撞狀態(tài)來修改所述視覺狀態(tài)。如果所述分布式模擬包括地形,那么所述第二計算設備可重復確定所述局部碰撞狀態(tài)和基于所述局部碰撞狀態(tài)來修改所述視覺狀態(tài),直到所述對象實質上不滲透所述地形。
[0036]在所述第一計算設備上執(zhí)行的所述分布式模擬的所述部分可控制所述多個對象的部分并把與所述多個對象的所述部分的至少一個對象有關的更新發(fā)送到所述第二計算設備。在此類實施方案中,所述第二計算設備從所述第一計算設備接收包括與所述第一計算設備控制的所述多個對象的所述部分的第一對象有關的狀態(tài)信息的先前更新。所述第二計算設備至少部分基于與所述第一對象有關的所述狀態(tài)信息來產生并顯示所述第一對象的第一視覺表示。所述第二計算設備包括與所述第一對象和所述第一視覺表示相關的視覺狀態(tài)信息。所述第二計算設備從所述第一計算設備接收包括狀態(tài)信息的新更新,所述新更新在所述先前更新之后已經被接收到。所述第二計算設備至少部分基于所述先前更新的所述狀態(tài)信息來確定所述第一對象的預測狀態(tài)信息。所述預測狀態(tài)信息包括至少一個速度值。所述第二計算設備確定所述新更新的所述狀態(tài)信息是否與所述第一對象有關。當所述新更新的所述狀態(tài)信息與所述第一對象有關時,所述第二計算設備把所述預測狀態(tài)信息的至少一部分設置為等于所述新更新的所述狀態(tài)信息的至少一部分。所述第二計算設備確定所述視覺狀態(tài)信息和所述預測狀態(tài)信息之間的差異。當所述差異大于第一閾值時,所述第二計算設備修改所述預測狀態(tài)信息的所述至少一個速度值,且當所述差異大于第二閾值時,所述第二計算設備至少部分基于所述預測狀態(tài)信息來修改所述視覺狀態(tài)信息。所述第二計算設備至少部分基于所述視覺狀態(tài)信息來渲染所述對象的第二視覺表示,并在所述顯示設備上顯示所述對象的所述第二視覺表示。
[0037]在一些實施方案中,所述預測狀態(tài)信息是第一預測狀態(tài)信息,且所述差異是第一差異。在此類實施方案中,所述第二計算設備至少部分基于所述第一預測狀態(tài)信息的所述至少一個速度來產生第二預測狀態(tài)信息,且確定所述視覺狀態(tài)信息和所述第二預測狀態(tài)信息之間的第二差異。當所述第二差異大于所述第二閾值時,所述第二計算設備至少部分基于所述第二預測狀態(tài)信息來修改所述視覺狀態(tài)信息。所述第二計算設備至少部分基于所述視覺狀態(tài)信息來渲染所述對象的第三視覺表示,并在所述顯示設備上顯示所述對象的所述第三視覺表示。
[0038]在一些實施方案中,在所述第二計算設備上執(zhí)行的所述分布式模擬的所述部分控制所述多個對象的第二部分。在此類實施方案中,所述第二計算設備把與所述多個對象的所述第二部分的至少一個對象有關的更新發(fā)送到所述第一計算設備。所述第二計算設備可通過用戶接口設備接收用戶輸入,所述用戶輸入改變所述多個對象的所述第二部分的選定對象的狀態(tài)。所述第二計算設備可創(chuàng)建包括與所述選定對象有關的狀態(tài)信息的更新,并把與所述選定對象有關的所述更新發(fā)送到所述第一計算設備。在一些實施方案中,服務器通過所述網絡連接到所述多個計算設備。在此類實施方案中,所述第二計算設備可把與所述多個對象的所述第二部分的至少一個對象有關的更新發(fā)送到所述服務器,從而轉發(fā)到所述多個計算設備中的其它計算設備。
[0039]一些實施方案包括一種所述第二計算設備從所述第一計算設備接收先前更新的方法。所述先前更新包括與所述第一計算設備控制的所述多個對象的所述部分的第一對象有關的狀態(tài)信息。所述第二計算設備至少部分基于與所述第一對象有關的所述狀態(tài)信息來產生并顯示所述第一對象的第一視覺表示。視覺狀態(tài)信息與所述第一對象和所述第一視覺表示相關。所述第二計算設備在所述先前更新之后接收來自所述第一計算設備的新更新。所述新更新包括狀態(tài)信息。所述第二計算設備至少部分基于所述先前更新的所述狀態(tài)信息來確定所述第一對象的預測狀態(tài)信息。所述第二計算設備確定所述新更新的所述狀態(tài)信息是否與所述第一對象有關,且當所述新更新的所述狀態(tài)信息與所述第一對象有關時,所述第二計算設備把所述預測狀態(tài)信息的至少一部分設置為等于所述新更新的所述狀態(tài)信息的至少一部分。所述第二計算設備確定所述視覺狀態(tài)信息和所述預測狀態(tài)信息之間的差異。當所述差異大于第一閾值時,所述第二計算設備把所述視覺狀態(tài)信息的至少一部分設置為等于所述預測狀態(tài)信息的至少一部分。當所述差異小于所述第一閾值且大于第二閾值時,所述第二計算設備至少部分基于所述視覺狀態(tài)信息和所述預測狀態(tài)信息來確定混合狀態(tài)信息,并把所述視覺狀態(tài)信息的至少一部分設置為等于所述混合狀態(tài)信息的至少一部分。所述第一閾值大于所述第二閾值。所述第二計算設備至少部分基于所述視覺狀態(tài)信息來渲染所述第一對象的第二視覺表示;并在所述顯示設備上顯示所述第一對象的所述第二視覺表示。
[0040]一些實施方案包括一種用于多個計算設備的方法,所述多個計算設備通過網絡彼此連接且每個執(zhí)行包括多個對象的分布式模擬的部分。所述部分在所述多個計算設備中的第一個上執(zhí)行,所述第一個計算設備控制所述多個對象的第一部分并把與所述多個對象的所述第一部分的至少一個對象有關的更新發(fā)送到所述多個計算設備中的第二個。所述部分在所述第二計算設備上執(zhí)行,所述第二計算設備控制所述多個對象的第二部分且把與所述多個對象的所述第二部分的至少一個對象有關的更新發(fā)送到所述第一計算設備。所述第二計算設備渲染所述多個對象的所述第一部分的第一對象的第一視覺表示和所述多個對象的所述第二部分的第二對象的第一視覺表示。所述第一對象的所述第一視覺表示與視覺狀態(tài)信息相關。所述第二計算設備通過用戶輸入設備接收改變所述第二對象的所述第一視覺表示的輸入以及偶爾從所述第一計算設備接收所述第二計算設備可用以修改所述第一對象的所述第一視覺表示的更新。從所述第一計算設備接收到的每個所述更新包括與所述第一對象有關的狀態(tài)信息。隨著所述第二對象的所述第一視覺表示改變,所述第二計算設備偶爾通過所述網絡把更新發(fā)送到所述第一計算設備。所述更新包括所述第一計算設備可用以修改所述第二對象的第二視覺表示的與所述第二對象有關的狀態(tài)信息。所述第二計算設備偶爾產生用于所述第一對象的包括至少一個速度的預測狀態(tài)信息。在所述第二計算設備上接收到每個所述更新之后,所述第二計算設備把所述預測狀態(tài)信息設置為等于所述更新的所述狀態(tài)信息。所述第二計算設備確定所述預測狀態(tài)信息和與所述第一對象的所述第一視覺表示相關的所述視覺狀態(tài)信息之間的差異。當所述差異大于第一閾值時,所述第二計算設備通過改變所述至少一個速度來更新所述預測狀態(tài)信息。當所述差異大于第二閾值時,所述第二計算設備至少部分基于所述預測狀態(tài)信息來修改與所述第一對象的第一視覺表示相關的所述視覺狀態(tài)信息。所述第二計算設備至少部分基于所述視覺狀態(tài)信息來重新渲染所述第二對象的所述第一視覺表示。
[0041]所述第一對象可具有類型,且所述第一和第二閾值可被存儲在表中且與所述對象在所述表中的所述類型相關。在此類實施方案中,所述第二計算設備可在所述表中查閱所述第一和第二閾值。
[0042]當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)信息來修改與所述第一對象的所述第一視覺表示相關的所述視覺狀態(tài)信息可包括:當所述差異大于第三閾值時,把所述視覺狀態(tài)信息設置為等于所述預測狀態(tài)信息。另一方面,當所述差異小于所述第三閾值且大于所述第二閾值時,所述第二計算設備可至少部分基于所述視覺狀態(tài)信息和所述預測狀態(tài)信息來確定混合狀態(tài)信息,并把所述視覺狀態(tài)信息設置為等于所述混合狀態(tài)信息。在此類實施方案中,所述第三閾值大于所述第二閾值。
[0043]實施方案包括存儲當被一個或多個處理器執(zhí)行時執(zhí)行一個或多個上述方法的計算機可執(zhí)行指令的一種或多種計算機可讀介質。例如,存儲當被一個或多個處理器執(zhí)行時執(zhí)行用于執(zhí)行分布式模擬的第一部分的第一計算設備的方法的計算機可執(zhí)行指令的一種或多種計算機可讀介質,所述第一部分控制對象。所述方法包括:執(zhí)行所述分布式模擬的第二部分,所述第二部分產生可在第一顯示設備上顯示的所述對象的第一視覺表示。視覺狀態(tài)與所述對象和所述第一視覺表示相關。所述視覺狀態(tài)可包括至少一個參數值。所述方法還可包括至少部分基于從所述第一計算設備接收到的先前更新中包括的先前狀態(tài)來產生所述對象的預測狀態(tài)。所述先前狀態(tài)可與所述對象的第二視覺表示相關。所述預測狀態(tài)包括至少一個速度和至少一個參數值。所述方法還可包括從所述第一計算設備接收更新。所述更新可包括與所述對象的第三視覺表示相關的新狀態(tài)。所述新狀態(tài)可包括至少一個參數值。所述方法還可包括把所述預測狀態(tài)的所述至少一個參數值設置為等于所述新狀態(tài)的所述至少一個參數值和確定所述預測狀態(tài)的所述至少一個參數值和所述視覺狀態(tài)的所述至少一個參數值之間的差異。當所述差異大于第一閾值時,修改所述預測狀態(tài)的所述至少一個速度。當所述差異大于第二閾值時,至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的至少一個參數值。所述方法還可包括至少部分基于所述視覺狀態(tài)來渲染所述對象的第四視覺表示,并在所述第一顯示設備上顯示所述對象的所述第四視覺表
/Jn ο
[0044]所述預測狀態(tài)可為第一預測狀態(tài),且所述差異可為第一差異。在此類實施方案中,方法還可包括至少部分基于所述預測狀態(tài)的所述至少一個速度來產生第二預測狀態(tài)。所述第二預測狀態(tài)包括至少一個參數值。當所述第二差異大于第二閾值時,至少部分基于所述第二預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值。所述方法還可包括至少部分基于所述視覺狀態(tài)來渲染所述對象的第五視覺表示,并在所述第一顯示設備上顯示所述對象的所述第五視覺表示。[0045]當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值可包括:確定所述差異是否大于第三閾值。所述第三閾值大于所述第二閾值。當確定所述差異大于所述第三閾值時,把所述視覺狀態(tài)的所述至少一個參數值設置為等于所述預測狀態(tài)的所述至少一個參數值。另一方面,當確定所述差異小于所述第三閾值時,至少部分基于所述視覺狀態(tài)的所述至少一個參數值和所述預測狀態(tài)的所述至少一個參數值來確定混合狀態(tài)。所述混合狀態(tài)包括至少一個參數值。所述視覺狀態(tài)的所述至少一個參數值被設置為等于所述混合狀態(tài)的所述至少一個參數值。
[0046]實施方案包括一種實施包括多個對象的分布式模擬的系統。所述系統包括通過網絡彼此連接的多個計算設備,每個計算設備被配置以執(zhí)行所述分布式模擬的部分。所述多個計算設備的第一計算設備執(zhí)行所述分布式模擬的第一部分,所述分布式模擬的第一部分控制所述多個對象的部分并把與所述多個對象的所述部分中至少一個對象有關的更新發(fā)送到所述多個計算設備中的第二個。所述第二計算設備可被配置以從所述第一計算設備接收包括與所述第一計算設備控制的所述多個對象的所述部分的第一對象有關的狀態(tài)信息的先前更新。所述第二計算設備還可被配置以至少部分基于與所述第一對象有關的所述狀態(tài)信息來產生所述第一對象的第一視覺表示,并在顯示設備上顯示所述第一視覺表示。所述第二計算設備具有與所述第一對象和所述第一視覺表示相關的視覺狀態(tài)信息。所述第二計算設備還可被配置以從所述第一計算設備接收包括狀態(tài)信息的新更新,所述新更新在所述先前更新之后已經被接收到。所述第二計算設備還可被配置以至少部分基于所述先前更新的所述狀態(tài)信息來確定所述第一對象的預測狀態(tài)信息,所述預測狀態(tài)信息包括至少一個速度值。所述第二計算設備還可被配置以確定所述新更新的所述狀態(tài)信息是否與所述第一對象有關,且當所述新更新的所述狀態(tài)信息與所述第一對象有關時,把所述預測狀態(tài)信息的至少一部分設置為等于所述新更新的所述狀態(tài)信息的至少一部分。所述第二計算設備還可被配置以確定所述視覺狀態(tài)信息和所述預測狀態(tài)信息之間的差異。當所述差異大于第一閾值時,所述第二計算設備可修改所述預測狀態(tài)信息的所述至少一個速度值。當所述差異大于第二閾值時,所述第二計算設備可至少部分基于所述預測狀態(tài)信息來修改所述視覺狀態(tài)信息。所述第二計算設備至少部分基于所述視覺狀態(tài)信息來渲染所述對象的第二視覺表示,并在所述顯示設備上顯示所述對象的所述第二視覺表示。
[0047]在所述預測狀態(tài)信息是第一預測狀態(tài)信息的實施方案中,所述差異是第一差異,所述第二計算設備還可被配置以至少部分基于所述第一預測狀態(tài)信息的所述至少一個速度來產生第二預測狀態(tài)信息,并確定所述視覺狀態(tài)信息和所述第二預測狀態(tài)信息之間的第二差異。當所述第二差異大于所述第二閾值時,所述第二計算設備可至少部分基于所述第二預測狀態(tài)信息來修改所述視覺狀態(tài)信息。所述第二計算設備至少部分基于所述視覺狀態(tài)信息來渲染所述對象的第三視覺表示,并在所述顯示設備上顯示所述對象的所述第三視覺表不。
[0048]在所述第二計算設備上執(zhí)行的所述分布式模擬的所述部分可控制所述多個對象的第二部分。在此類實施方案中,所述第二計算設備還可被配置以把與所述多個對象的所述第二部分的至少一個對象有關的更新發(fā)送到所述第一計算設備。所述第二計算設備可被配置以通過用戶接口設備接收用戶輸入(所述用戶輸入改變所述多個對象的所述第二部分的選定對象的狀態(tài))、創(chuàng)建包括與所述選定對象有關的狀態(tài)信息的更新并把與所述選定對象有關的更新發(fā)送到所述第一計算設備。所述系統可包括通過所述網絡連接到所述多個計算設備的服務器。所述第二計算設備可被配置以把與所述多個對象的所述第二部分的至少一個對象有關的更新發(fā)送到所述服務器,從而轉發(fā)到所述多個計算設備中的其它計算設備。
【專利附圖】

【附圖說明】
[0049]本發(fā)明的方面將在結合附圖考慮了下文詳細描述之后變得明顯,在整個附圖中,相同的參考數字代表相同的部分,以及在附圖中:
[0050]圖1是用于分布式交互模擬的系統的方塊圖;
[0051]圖2是示出在圖1的系統的兩個站之間共享的分布式交互模擬的本地表示的圖;
[0052]圖3是圖1的系統的控制臺的部分的方塊圖,示出了預測器-內插器模塊和它們的互連;
[0053]圖4是可由圖1的系統的至少一部分執(zhí)行的遠程管理對象狀態(tài)內插過程的流程圖;
[0054]圖5A是適于管理在不同的模式和條件下操作的第一示范性類型(稱為全地形車類型)的示范性動態(tài)對象的標準和參數的表;
[0055]圖5B是適于管理在不同的模式和條件下操作的第二示范性類型(稱為飛行類型)的示范性動態(tài)對象的標準和參數的表;以及
[0056]圖6是可實施圖1的系統的游戲控制臺中一個或多個的硬件環(huán)境和操作環(huán)境的圖。
【具體實施方式】
[0057]當描述分布式模擬時,在本文中以舉例的方式且為了便于討論而使用計算機游戲的上下文。然而,本文描述的系統和方法的適用性不限于用于計算機游戲且可用于其它類型的分布式模擬。另外,對于所討論的實施方案,不假設分布式時鐘。相反,基于具有典型等待時間的持續(xù)更新流的高質量預測可用以產生分布式交互模擬的連貫呈現。如果等待時間在很短的時間間隔差別很大,那么此類假設的結果可降級,但是仍然可提供大體一致且令人滿意的共享模擬。雖然本文描述的系統和方法可相對于在所有站具有相同幀速率和更新率的分布式模擬進行操作,但是這不是假定也不是必需的。因此,在所討論的實施方案中,在每個站的分布式模擬的每個連續(xù)增量不對應于“現在”以外的特定的時間或時間戳,且即使由于上文在發(fā)明背景部分討論的等待時間和限制,同時發(fā)生在現實世界中的更新也將會在短暫等待時間之后在所有參與站發(fā)生,一個站管理的對象所產生的更新的影響可能不能在一些其它站看到直到一些迭代之后。
[0058]通過非限定概述,接受關于分布式交互模擬的對象的遠程控制、基于物理的模型的更新。在關于對象的預定條件下,確定、縮放脈沖或“速度凹凸(bump)”并把脈沖或“速度凹凸”添加到更新以形成對模擬對象的正確位置的當前預測。基于物理的模擬的每個后續(xù)迭代提供新的預測狀態(tài),直到接收到新的更新。維持單獨的視覺模型以緩和預測或更新狀態(tài)中的可見的不連續(xù)性。然而,視覺模型朝向當前預測不斷收斂,其中視覺模型的新狀態(tài)從之前的狀態(tài)、它與當前預測的差異和關于代表的對象的某些預定標準和參數來確定。也與視覺模型相關聯的是檢測與其它對象尤其是拋射體的互動的碰撞系統。總的來說,這些特征提供(例如,當追趕或瞄準模擬車輛時)看上去比現有分布式交互模擬更真實和更正確的更美觀的視覺呈現。
[0059]參看圖1,分布式交互模擬系統100包括指定為用戶(未示出)本地的站的本地站110,和多個遠程站140,所有所述站都可通過網絡120(例如,因特網)與服務器130通信。在示出的實施方案中,遠程站140包括遠程站140AU40B和140C。然而,這不是必需的且遠程站140可包括任何數量的遠程站。如下文所闡釋,站110、140A、140B和140C可選擇性地彼此通信。
[0060]使用分布式游戲系統的實例,服務器130是游戲網絡服務器,從而允許在每個連接站的用戶彼此發(fā)現并安排和參加游戲。
[0061]站110、140A、140B、140C中的每個站包括可分別實施為游戲控制臺111、142、144、146的計算設備。以非限制性實例的方式,游戲控制臺111、142、144、146可各自實施為由華盛頓州雷蒙德的微軟公司制造的Xbox360。另外,站110、140A、140B、140C中的每個站分別包括控制器113、143、145、147。雖然站110、140A、140B、140C中的每個站也包括顯示器,但是圖1中只示出了本地站110的顯示器112。本地站110的控制臺111通過連接121與服務器130通信。遠程站140的控制臺142、144、146分別通過連接122、123、124與服務器130通信。
[0062]在一些實施方案中,控制臺111可分別通過通信信道152、153、154直接與控制臺142、144、146中的每一個通信,而控制臺111、142、144、146在諸如計算機游戲的分布式交互模擬中連接在一起。在其它實施方案中,服務器130處理站110、140A、140B、140C之間的通信。此類實施方案也可適合具有許多站的非常大的模擬,因為上傳帶寬通常比下載帶寬更有限,而從本地站110到遠程站140中每個站的通信量與從遠程站140到本地站110的通信量大致相同。通過允許服務器130從本地控制臺111有效地“播放”更新到遠程控制臺142、144、146中每一個,從控制臺111緩解相當大的傳輸負擔。然而,為簡化進一步討論的目的,我們將集中于兩個控制臺111和142且只考慮它們之間的通信而不管是否由服務器130調解。然而,如本領域那些普通技術人員所理解,控制臺111、142、144、146中的任何對之間的通信可用類似方式來操作。
[0063]因此,在圖2中,示出分布式交互模擬的一些內部運作??刂婆_111和142中的每一個把分布式模擬的對應的本地表示保持為數據??刂婆_111上保持的本地表示示出為本地模擬200??刂婆_142上保持的本地表示示出為本地模擬250。分布式模擬包括靜態(tài)對象和動態(tài)對象。本地模擬200、250中的每一個包括分布式模擬的靜態(tài)和動態(tài)對象中每一個的單獨的對象。例如,本地模擬200包括對應于本地模擬250中靜態(tài)對象251的靜態(tài)對象201。類似地,本地模擬200包括分別對應于本地模擬250中靜態(tài)對象252、253、254的動態(tài)對象 202、203、204。
[0064]控制臺111、142、144、146中的每一個負責控制特定對象。例如,控制臺111處的玩家可使用控制器113來向本地模型控制模塊220提供輸入,從而控制動態(tài)對象202 (例如,模擬車輛)。在這個實例中,本地模型控制模塊220也控制動態(tài)對象204,動態(tài)對象204例如可為地雷、拋射體、爆炸、盒子或其它動態(tài)對象。通常包括地形和一般建筑物的靜態(tài)對象201是靜態(tài)的且不受控制器113控制。偶爾(例如,定期),本地模型控制模塊220 (例如,通過信道152)把更新152A發(fā)送到遠程控制臺142中的遠程模型控制模塊280。遠程模型控制模塊280負責控制本地模擬250中的動態(tài)對象252和254,動態(tài)對象252和254與本地模擬200中的動態(tài)對象202和204相同。
[0065]對于控制器111負責的動態(tài)對象(例如,動態(tài)對象202和204)的至少一部分中的每一個,每個更新152A可包括動態(tài)對象的識別、動態(tài)對象的類型信息和所識別的動態(tài)對象的狀態(tài)信息,所述狀態(tài)信息可包括動態(tài)對象的操作模式(例如,“受控制”或“未受控制”)的指示。在一些實施方案中,所述信息可被包括在一個或多個更新中。
[0066]相反,本地模型控制模塊270接收來自游戲控制器143的輸入以管理動態(tài)對象253 (例如,另一車輛)。從本地模型控制模塊270發(fā)送到遠程模型控制模塊230的更新152B用以控制本地模擬200中動態(tài)對象的至少一部分。在這個實例中,更新152B控制對象203,借此,控制臺142的對象253 (例如,用戶“駕駛”的車輛)作為對象203出現在具有控制臺111的站110上。
[0067]對于控制器142負責的動態(tài)對象(例如,動態(tài)對象253)的至少一部分中的每一個,每個更新152B可包括動態(tài)對象的識別、動態(tài)對象的類型信息和所識別的動態(tài)對象的狀態(tài)信息,所述狀態(tài)信息可包括動態(tài)對象的操作模式(例如,“受控制”或“未受控制”)的指示。在一些實施方案中,所述信息可被包括在一個或多個更新中。
[0068]本地模擬250中的靜態(tài)對象251對應于本地模擬200中的對象201。
[0069]圖3示出當遠程模型控制模塊230在預測器模塊310上接收來自控制臺142的更新152B時控制臺111的遠程模型控制模塊230的內部運作300。
[0070]預測器模塊310獲得最近接收到的更新152B并把它與規(guī)則表321中對應更新152B中代表的對象(例如,動態(tài)對象203)的預定值作比較。為了便于說明,最近接收到的更新代表動態(tài)對象203。如果在本地視覺狀態(tài)323和最近的遠程模擬更新之間存在足夠的差異,那么從所述差異和規(guī)則表321中關于動態(tài)對象203的進一步的信息來確定脈沖或“凹凸”,且所述脈沖或“凹凸”被應用到動態(tài)對象203的物理模型。這有效地增大了用以推斷動態(tài)對象203在后續(xù)迭代中的未來狀態(tài)的某些速度矢量。這在下文結合圖4、圖5A和圖5B更詳細地描述。預測器模塊310為動態(tài)對象203運行詳細的物理模型,從而允許在本地模擬200的后續(xù)迭代中更好地進行預測。被應用到本地物理表示的凹凸有點類似于圖像處理中的“銳化”,其中不連續(xù)性增強了一定量。在這個情況下,凹凸被作為脈沖注入物理模型,且它的效果將只在本地模擬200的后續(xù)迭代中看得見。當新的更新152B到達時,本地模擬200的下一迭代使用如在新的更新中表示的遠程管理動態(tài)對象253的狀態(tài),且可添加速度凹凸以產生新的預測狀態(tài)311。在本地模擬200的后續(xù)迭代中,詳細物理模擬從當前預測狀態(tài)311進行推斷以獲得新的預測狀態(tài)311。
[0071]然而,如果本地預測狀態(tài)311直接用以驅動顯示器112,那么每次新的遠程模擬更新152B到達時本地預測狀態(tài)311的流暢動作中可能有不連續(xù)性,因為新的遠程模擬更新152B可能包括之前的更新152B沒有預料到的信息。
[0072]為了解決這個問題,內插器模塊320試圖使用規(guī)則表321來以美觀的方式把本地視覺狀態(tài)323移向當前本地預測狀態(tài)311。本地視覺狀態(tài)323的之前的值被用作基礎,使得通常當新的更新152B不連續(xù)地影響本地預測狀態(tài)311時,由用于顯示器112的渲染模塊350產生的對象的圖像示出美觀的動作,其中通常帶有被偽裝的不連續(xù)性。因此,視覺狀態(tài)323隨時間推移不斷收斂成當前預測狀態(tài)311。
[0073]內插器模塊320也維持局部碰撞狀態(tài)322。然而,不是渲染對象供玩家查看,而是對象的碰撞量隨視覺模型邏輯移動。這改善了使用拋射武器模擬瞄準和車輛碰撞的真實性。世界上對象的“硬度”是適當的且對應于對象的位置。例如,對象可在看到它的地方被射擊(如由拋射體碰撞檢測模塊340所檢測),或者在復雜的內插器模塊310中,看上去撞到障礙物的車輛損壞所述障礙物(或者被障礙物損壞)且可從所述障礙物反彈,從而影響本地視覺狀態(tài)323。
[0074]對象運動的外觀可由凹凸改善,所述凹凸被預測器模塊310根據規(guī)則表321中用于對象的標準和參數注入物理模型,并且標準和參數也被包括在這里供內插器模塊320使用,下文結合圖4、圖5A和圖5B進行了進一步的詳細描述。
[0075]圖4示出了可由遠程模型控制模塊230 (參看圖2和3)執(zhí)行的過程400。在方塊401,開始本地模擬200的迭代,其中動態(tài)對象203由本地模型控制模塊270遠程管理。
[0076]接下來,在決定方塊402,關于是否已經從本地模型控制模塊270接收到用于動態(tài)對象203的新的更新152B進行確定。如果在決定方塊402的決定是“是”,那么已接收到用于動態(tài)對象203的新的更新152B,且在方塊403,預測狀態(tài)311被設置為等于更新中提供的狀態(tài)。然后,遠程模型控制模塊230進行到方塊405。否則,如果在決定方塊402的決定是“否”,那么沒有接收到新的更新152B,且在方塊404,為動態(tài)對象203運行詳細的物理模型以提供用于預測狀態(tài)311的新值。然后,遠程模型控制模塊230進行到方塊405。
[0077]在方塊405,計算新的預測狀態(tài)311和當前視覺狀態(tài)323之間的差異。
[0078]在過程400的之前的迭代中,可能已經設置了本地視覺狀態(tài)323,但是如果未初始化,那么可用預測狀態(tài)311的當前值來設置本地視覺狀態(tài)323。即使沒有這樣做,那么過程400也將有意地迅速收斂到用于視覺狀態(tài)323的適當值。
[0079]然后,遠程模型控制模塊230進行到決定方塊406。當在方塊402上已經有新的更新152B且在方塊405上計算出的差異超過用于指示動態(tài)對象203的當前操作模式的一個或多個值時,在決定方塊406上的決定是“是”。當在決定方塊406上的決定是“是”時,在方塊407,脈沖或“速度凹凸”(或“凹凸”)被應用到預測狀態(tài)。這并不移動動態(tài)對象203的預測“物理”表示,但改變表示的速度以在方塊404在物理模型的未來迭代中產生不同結果。然后,遠程模型控制模塊230進行到決定方塊408。
[0080]當在決定方塊406的決定是“否”時,遠程模型控制模塊230進行到決定方塊408。
[0081]不管在方塊407是否應用凹凸,在決定方塊408,過程繼續(xù),其中關于差異是否大于關于動態(tài)對象203和它相關本地預測狀態(tài)311的規(guī)則表321的部分中的預定“大”值進行檢查。圖5A和圖5B以及以下相關討論中提供了在決定方塊408執(zhí)行的檢查的更詳細描述。如果在決定方塊408確定差異“大”,那么在決定方塊408的決定是“是”,且過程在方塊409繼續(xù)。另一方面,如果在決定方塊408的決定是“否”,那么過程在決定方塊410繼續(xù)。
[0082]在方塊409,用于視覺狀態(tài)323的新值被確定為預測狀態(tài)311的當前值,且對象的呈現將“偏轉”(例如,立即跳轉)到新的位置。然后,在方塊412,把這個新確定的值應用到視覺狀態(tài)323。
[0083]在一些實施方案中,在方塊412,當對象模型適應新的狀態(tài)時,進一步修改更新的視覺狀態(tài),例如,可通過地形跟蹤過程來調整車輛的車輪,以保持車輪明顯與地面接觸,或者當車輛“躍起”(即,當新的視覺狀態(tài)定義的位置和方向把車輪放置得足夠高于地形)時使車輪似乎從暫停適當地掛起。
[0084]至少在分層根上,與新確定的視覺狀態(tài)323基本一致的是局部碰撞狀態(tài)322。SP,技術人員定義來檢測對障礙物或拋射體的影響的碰撞量與技術人員提供來渲染對象的視覺模型具有基本上期望的關系。通常,碰撞量相對于渲染模塊350提供的視覺模型大大簡化,以例如在拋射體碰撞檢測模塊340中使對象對地形、對象對對象和對象對拋射體干擾的計算大幅簡化。
[0085]在一些實施方案中,局部碰撞狀態(tài)322可由內插器模塊320使用甚至迭代地使用,以例如在方塊412調整視覺狀態(tài),從而確保對象似乎并不滲透地形。
[0086]最后,用于對視覺狀態(tài)323和碰撞狀態(tài)322進行這些額外的調整的過程可根據對象的每個種類或類型而不同,且實質上是美學建模決定。
[0087]在對視覺狀態(tài)323進行調整結束之后,在方塊413,關于動態(tài)對象203的過程400結束。
[0088]然而,如果在決定方塊408,檢查發(fā)現差異不“大”(即,在決定方塊408的決定是“否”),那么在決定方塊410,進行檢查以確定差異是否大于預定“小”值,其中適當“小”值是由動態(tài)對象203的預測狀態(tài)311選自規(guī)則表321。再者,圖5A和圖5B以及下文相關討論中提供了在決定方塊408上執(zhí)行的檢查的更詳細描述。如果差異大于“小”值,那么在決定方塊410的決定是“是”,且在方塊411,用于視覺狀態(tài)323的新值被確定為當前視覺狀態(tài)323和當前預測狀態(tài)的“混合”(或加權平均),其中關于動態(tài)對象203的預測狀態(tài)的加權和其它限制來自規(guī)則表321,規(guī)則表321中具有不同值來用于比較并操縱視覺狀態(tài)323的位置和旋轉部分。然后,在方塊412應用用于視覺狀態(tài)323的新值。
[0089]但是,如果差異不超過在決定方塊410檢查的“小”值,那么在決定方塊410的決定是“否”,并且不進行修改且視覺狀態(tài)323在這個迭代中保持不變。在決定方塊410執(zhí)行的關于小差異的測試或檢查視覺上促使對象“停住”。在這個情況下,在方塊413,用于關于動態(tài)對象203的這個迭代的過程400結束。
[0090]在不同實施方案中,或者甚至只是對于不同類型(或種類)的對象,或者對于同一對象但是在不同模式下,在決定方塊406、408和410執(zhí)行的關于在方塊405確定的差異的量值的測試或檢查可使用集體測量,或可只分析如規(guī)則表321中所反映的差異的某些部分。例如,位置的線性測量難以與旋轉(方向)的測量作比較。因此,狀態(tài)的位置和旋轉部分常分開比較,且在一些實施方案中,如果任一部分超過每個部分的對應預定值,那么確定整個差異已超過。在一些實施方案中,或對于一些對象,位置的其它部分可被認為很重要且在規(guī)則表321中被給定特定的值。例如,對于跳躍的兩足動物(例如,人、外星人等),他們的地面軌跡可能需要對差異的更嚴格限制,地面軌跡即他們在χ-y平面上的位置而不是他們相對于χ-y平面的高度。對于諸如可跳躍的兩足動物的對象,單獨的預定值可更嚴格地從差異中投影在x-y平面上的所述部分觸發(fā),其中具有用于差異的整體位置部分的整體較寬松(即,較大)的預定值(即,在xyz平面上)。
[0091]圖5A和圖5B各自提供規(guī)則表321的不范性部分。圖5A包括用于第一動態(tài)對象類型(稱為模擬全地形車(“ATV”)類型對象500)的示范性標準和參數。圖5B包括用于第二動態(tài)對象類型(稱為飛行類型對象530)的示范性標準和參數。圖5A和圖5B中提供的標準和參數例如是實施且不意欲為限制性的。另外,規(guī)則表321可包括用于不同和/或另外的動態(tài)對象類型的部分。規(guī)則表321可被實施為單個表或多個表。
[0092]參看圖5A,在一些實施方案中,規(guī)則表321的部分510被指定用于模擬全地形車(“ATV”)類型對象500對象,且包括對應于在決定方塊406、408和410執(zhí)行的測試或檢查的若干預定值和用于在方塊411修改視覺狀態(tài)323 (例如,混合)和在方塊407修改預測狀態(tài)311的參數,所有的預定值和參數都適于供遠程模型控制模塊230在過程400中處理例如動態(tài)對象203的ATV類型對象時使用。
[0093]在決定方塊408中使用用于ATV類型對象500的標準511 (例如,用于動態(tài)對象203)。在決定方塊408關于來自方塊402的差異是否大于“大”值的確定被分成三個比較。第一比較是差異的xyz部分的量值是否大于3個世界單位(“WU”)的值(在這個示范性實施中,用類似于米或英尺但在模擬中為方便表示而選擇的“世界單位”進行線性測量,在這些模擬實例中,一個WU對應于現實世界中大約2.5m)。第二比較是差異的xy部分的量值是否大于100WU的值。注意,如果xy部分大于100WU,那么當然來自第一比較的xyz部分大于三。這個比較可充當用于禁止對ATV類型對象500進行xy比較的程序員的速記。如果xy差異可用于這個類型的對象,那么用于xy差異的值將需要小于用于xyz差異的值。第三比較是差異的角部分是否大于180度。如果這三個比較中任何比較發(fā)現差異的對應部分超過標準511中規(guī)定的值,那么在決定方塊408的確定是差異超過“大”值(或者在決定方塊408的決定是“是”)且在方塊409偏轉將隨之而來。
[0094]規(guī)則表321的部分510的列521和522提供不同預定值和參數,供類型ATV的對象(例如,ATV類型對象500)被控制與未被控制的情況下使用。列521提供當類型ATV的對象被控制時使用的預定值和參數,且列522提供當類型ATV的對象未被控制時使用的預定值和參數。在這個實施方案中,當玩家的輸入(例如,來自游戲控制器143)影響本地模型控制模塊(例如,本地模型控制模塊270)時,或者如之前所討論,如果Al或其它操作員過程影響模型,那么對象“被控制”。在“被控制”或“未被控制”很重要的情況下,遠程模擬更新(諸如更新152B)將指示操作模式。
[0095]在決定方塊410執(zhí)行的測試或檢查中使用用于ATV類型對象500的標準512 (例如,對于動態(tài)對象203)。在決定方塊410關于來自方塊402的差異是否大于“小”值的確定被分成兩個比較,其中用于比較的值來自列521或522,這取決于最近的遠程模擬更新152B中指示的操作模式。第一比較是差異的xyz部分或旋轉(方向)部分的量值是否分別大于值0.5WU或45度。在這個實例中,動態(tài)對象203 “被控制”或“未被控制”并不重要,因為在列521和522中的值相同。注意,為了有效,值(0.5WU、45度)必須各自比標準511中對應的值(3WU、180度)小。第二比較是當對象的預測狀態(tài)311移動得足夠緩慢(例如,小于
0.lWU/s和8度/s)時對差異使用更嚴格公差(例如,當處于“被控制”模式時,0.03WU、4度,或者當處于“未被控制”模式時,0.03WU或6度)的混合比較。因此,如果差異太大,那么決定方塊410觸發(fā)在方塊411的混合,但是所述比較可取決于速度。移動得更加緩慢的對象可要求較小的差異。
[0096]如果在方塊411需要混合,那么用來自部分513的關于動態(tài)對象203的參數和限制執(zhí)行混合?;旌习褋碜苑綁K405的差異的小部分添加到視覺狀態(tài)323以在方塊412獲得新的視覺狀態(tài),但是所述小部分應該是什么可具有足夠美觀的效果且可需要在不同情況下進行調整。在這個實施方案中,對于ATV類型對象500,界定速度上限閾值和下限閾值(速度上限閾值和下限閾值可根據操作模式而不同,但在這個實例中并不這樣)。對于等于或低于速度下限閾值的速度,添加到視覺狀態(tài)323的關于差異的位置和旋轉部分的所述小部分被給出作為標記為“下限閾值處的差異的小部分”的條目。類似地,對于等于或高于速度上限閾值的速度,所述小部分取自標記為“上限閾值處的差異的小部分”的條目。對于速度上限閾值和下限閾值之間的速度,所述小部分可根據上限和下限閾值小部分內插。例如,對于預測具有速度5WU/s和旋轉O度/s的處于“被控制”模式的動態(tài)對象203,用于位置的混合的差異的所述小部分可使用以下公式來計算:
[0097](預測速度-速度下限閾值)/(速度上限閾值-速度下限閾值)*(上限閾值處的小部分-下限閾值處的小部分)+ (下限閾值處的小部分)。
[0098]使用以上公式,在以上實例中,用于位置的混合的差異的小部分是0.4:
[0099](5-0) / (10-0) * (0.03-0.05) + (0.05) = 5/10* (-0.02) + (0.05) = 0.04。
[0100]當混合旋轉時用于待應用的小部分的類似計算可使用指示旋轉的值,但是在這個情況下,因為旋轉速度等于或低于速度下限閾值(O),所以直接使用給定為0.04的下限閾值處的差異的小部分。
[0101]對混合的最后的限制定義為對預測狀態(tài)311的最小接近速率。其中,如果預測狀態(tài)311的速度等于或低于下限閾值,那么需要當前視覺狀態(tài)323朝向預測狀態(tài)311的特定最小收斂速度。為當預測狀態(tài)的速度等于或大于上限閾值時提供對應的值,并且再次,對于在上限和下限閾值之間的速度,可用類似于上述方式的方式內插部分513中給定的所需最小收斂速度參數。
[0102]一旦已經確定適當的小部分,它們到視覺狀態(tài)323的位置和旋轉的應用借助于笛卡爾內插法用于位置部分以及借助于球形線性內插法(也稱為為“Slerp”)用于旋轉部分。Slerp實施可以使用四元數表示用于旋轉,但這不是嚴格要求的。
[0103]在決定方塊406中使用用于ATV類型對象500的標準514 (例如,對于動態(tài)對象203)。在決定方塊406關于是否在方塊402已經使用新的更新和來自方塊405的差異是否“足夠”以保證凹凸的確定是混合比較,其中用于比較的值來自列521或522,這取決于最近的遠程模擬更新152B中指示的操作模式。在這個實施方案中,正如上述的混合比較,執(zhí)行測試來看對象的預測狀態(tài)311是否移動得比閾值快(在部分514,標記為“如果速度>”)或者差異(標記為“或者xyz位置或旋轉差異”)是否足夠大。如果在決定方塊406的任何比較發(fā)現將要超過的對應參數,那么決定方塊406確定差異的確“足夠”且在方塊407執(zhí)行凹凸。
[0104]在部分515中給定用于凹凸的參數。在這個實施方案中,凹凸是差異乘以比例因子(標記為“凹凸由差異X”),所述比例因子有效地具有秒的倒數的單位,因為凹凸的值是在方塊407添加到預測狀態(tài)311的速度。一旦用于凹凸的值以這種方式來確定,它就還受制于部分515的參數內標記為“但不小于”和“不大于”的限制,從而允許設計者限制凹凸的效果。一般說來,如果允許凹凸大,那么凹凸的效果可能視覺上不合適。然而,當凹凸本來就小或者以其它方式被限制時,結果是實質改善了遠程模型控制模塊230控制的對象的美觀行為。[0105]通過進一步舉例,圖5B示出規(guī)則表321中對應于飛行類型對象530 (圖2示出的本地模擬200和250中未示出的對象類型)的部分540。返回到圖5B,在部分540中,列551和552各自包括分別對應于與圖5A的列521和522中包括的列相同控制模式的列。標準541,542和544分別以與標準511,512和514相同的方式來使用。部分543和545中的參數分別以與部分513和515中的參數相同的方式來使用。規(guī)則表321中提供的標準和參數的差異可例如由設計者憑經驗設置。標準中的每一個確定哪些條件將使過程400的某些元素應用,且每個參數可影響視覺結果。
[0106]計算設備
[0107]圖6是游戲控制臺111、142、144、146中一個或多個的實施可結合硬件和操作環(huán)境實踐的圖。圖6的描述旨在提供可實踐實施的合適的計算機硬件和合適的計算環(huán)境的簡短的一般的描述。雖然不是必需的,但是實施是在由處理器執(zhí)行的諸如程序模塊的計算機可執(zhí)行指令的一般上下文中描述的。通常,程序模塊包括執(zhí)行特定任務或實施特定抽象數據類型的例程、程序、對象、組件、數據結構等。
[0108]此外,本領域那些技術人員將了解,實施可使用其它計算機系統配置來實踐,包括手持設備、多處理器系統、基于微處理器的或可編程的消費電子產品、網絡PC、小型計算機、大型計算機等。實施也可在分布式計算環(huán)境中實踐,其中任務由通過通信網絡連接的遠程處理設備執(zhí)行。在分布式計算環(huán)境中,程序模塊可位于本地和遠程存儲器存儲設備中。
[0109]圖6的示范性硬件和操作環(huán)境包括呈計算設備12形式的通用計算設備。計算設備12可為常規(guī)游戲控制臺、移動電話、平板計算機、常規(guī)計算機、分布式計算機或任何其它類型的計算機。游戲控制臺111、142、144、146可各自與計算設備12基本上相同。然而,這并不是必需的。
[0110]計算設備12包括系統存儲器22、處理單元21和把包括系統存儲器22的各種系統組件操作性地耦接到處理單元21的系統總線23??赡苤挥幸粋€或者可能有超過一個的處理單元21,使得計算設備12的處理器包括單一中央處理單元(“CPU”),或通常被稱為并行處理環(huán)境的多個處理單元。當使用多個處理單元時,處理單元可能是異構的。以非限制性實例的方式,所述異構處理環(huán)境可包括常規(guī)CPU、常規(guī)圖形處理單元(“GPU”)、浮點單元(“FPU”)、它們的組合等。
[0111]系統總線23可為若干類型的總線結構中的任何總線結構,包括存儲器總線或存儲器控制器、外圍總線和使用各種總線結構中的任一的本地總線。系統存儲器22也可簡單地稱為存儲器,且包括只讀存儲器(ROM) 24和隨機存取存儲器(RAM) 25。包括諸如在啟動期間幫助在計算設備12中的元件之間傳遞信息的基本例程的基本輸入/輸出系統(BIOS) 26存儲在ROM 24中。計算設備12還包括用于從硬盤(未示出)讀取或寫入所述硬盤的硬盤驅動器27、用于從移動磁盤29讀取或寫入所述移動磁盤的磁盤驅動器28和用于從諸如CDROM、DVD或其它光學媒體的移動光盤31讀取或寫入所述移動光盤的光盤驅動器30。
[0112]硬盤驅動器27、磁盤驅動器28和光盤驅動器30分別由硬盤驅動器接口 32、磁盤驅動器接口 33和光盤驅動器接口 34連接到系統總線23。所述驅動器和它們相關的計算機可讀媒體提供對計算機可讀指令、數據結構、程序模塊和計算設備12的其它數據的非易失性存儲。本領域那些技術人員應理解,示范性操作環(huán)境中可使用可存儲計算機可訪問的數據的任何類型的計算機可讀媒體,諸如盒式磁帶、閃存卡、固態(tài)存儲器設備(“SSD”)、USB驅動器、數字視頻盤、伯努利墨盒、隨機存取存儲器(RAM)、只讀存儲器(ROM)等。如對于本領域那些普通技術人員明顯的,硬盤驅動器27和處理單元21可訪問的其它形式的計算機可讀媒體(例如,移動磁盤29、移動光盤31、閃存卡、SSD、USB驅動器等)可被認為是系統存儲器22的組件。
[0113]若干程序模塊可存儲在硬盤驅動器27、磁盤29、光盤31、R0M24或RAM 25上,包括操作系統35、一個或多個應用程序36、其它程序模塊37和程序數據38。用戶可通過諸如鍵盤40和指針設備42的輸入設備把命令和信息輸入計算設備12。參看圖1,輸入設備包括控制器113、143、145、147。輸入設備的非限制性實例包括麥克風、操縱桿、游戲墊、衛(wèi)星天線、掃描儀、觸摸敏感設備(例如,手寫筆、觸摸屏、觸摸板等)、視頻攝像頭、深度攝像頭等。這些和其它輸入設備常通過耦接到系統總線23的串行接口 46連接到處理單元21,但也可通過其它接口連接,諸如并行端口、游戲端口、通用串行總線(USB)或無線接口(例如,藍牙接口)。
[0114]顯示器47或其它類型的顯示設備(例如,圖1示出的顯示器112)也可通過諸如視頻適配器48的接口連接到系統總線23。顯示器112可實施為電視、顯示屏、觸摸屏等。除了顯示器47以外,計算機通常包括其它外圍輸出設備(未示出),諸如揚聲器、打印機和提供觸覺和/或其它類型的物理反饋的觸覺設備(例如,力反饋游戲控制器)。
[0115]上文所述的輸入設備可操作以接收用戶輸入和選擇。輸入和顯示設備一起可描述為提供用戶接口。
[0116]計算設備12可使用到諸如遠程計算機49的一個或多個遠程計算機的邏輯連接來在網絡環(huán)境中操作。如上文所闡述,游戲控制臺111、142、144、146中的兩個或更多個可通過網絡120選擇性地彼此連接。這些邏輯連接由耦接到計算設備12或計算設備12的部分的通信設備(作為本地計算機)來實現。實施不限于特定類型的通信設備。遠程計算機49可為另一計算機、服務器、路由器、網絡PC、客戶端、存儲器存儲設備、對端設備或其它公共網絡節(jié)點,且通常包括上文相對于計算設備12描述的許多或所有元件。遠程計算機49可連接到存儲器存儲設備50。圖6示出的邏輯連接包括局域網(LAN)51和廣域網(WAN)52。所述網絡環(huán)境在辦公室、企業(yè)范圍內的計算機網絡、內聯網和互聯網中很常見。
[0117]本領域那些普通技術人員將理解,LAN可通過使用電話網絡、有線網絡、蜂窩網絡或電源線上的載波信號的調制解調器連接到WAN。所述調制解調器可通過網絡接口(例如,串行接口或其它類型的接口)連接到計算設備12。另外,許多筆記本計算機可通過蜂窩數據調制解調器連接到網絡。
[0118]當用于LAN-網絡環(huán)境中時,計算設備12通過網絡接口或適配器53 (—種類型的通信設備)連接到局域網51。當用于WAN-網絡環(huán)境中時,計算設備12通常包括調制解調器54( —種類型的通信設備)或用于通過諸如因特網的廣域網52建立通信的任何其它類型的通信設備??赡苁莾炔炕蛲獠康恼{制解調器54通過串行接口 46連接到系統總線23。在網絡環(huán)境中,相對于個人計算設備12或它的部分示出的程序模塊可存儲在遠程計算機49和/或遠程存儲器存儲設備50中。應理解,示出的網絡連接是示范性的,且可使用它的其它構件和用于在計算機之間建立通信連接的通信設備。
[0119]本文以特定舉例的方式且通過抽象的方式提供了計算設備12和相關組件以促進所公開概念的高層次的視圖。實際的技術設計和實施可在維持所公開概念的整體性質的同時基于特定實施而改變。
[0120]在一些實施方案中,系統存儲器22存儲當被一個或多個處理器執(zhí)行時使一個或多個處理器執(zhí)行過程400的所有或部分的計算機可執(zhí)行指令。所述指令可存儲在一個或多個非臨時性計算機可讀媒體上。
[0121]正如所有此類系統,系統的特定特征、用戶接口的細節(jié)和過程的執(zhí)行可例如取決于用以實施系統的架構、所選服務器的操作系統、所選網絡的帶寬和其它屬性和編寫的軟件代碼。根據本教導,本文具體示出并描述的所述實施方案的各種另外的修改對于本領域那些普通技術人員將變得明顯。
[0122]上述實施方案描述了不同其它組件中包括的不同組件或與不同其它組件連接的不同組件。應理解,所述架構僅僅是示范性的,且實際上可實施實現相同的功能的許多其它架構。在概念意義上,實現相同的功能的組件的任何設置被有效地“關聯”,使得實現所期望的功能。因此,本文中組合來實現特定功能的任何兩個組件可視為彼此“相關”,使得實現期望功能,而不管架構或中間組件。同樣地,如此相關的任何兩個組件也可視為彼此“可操作地連接”或“可操作地耦接”以實現所期望的功能。
[0123]雖然已示出并描述了本發(fā)明的特定實施方案,基于本文的教導,可在不脫離本發(fā)明和它的更廣泛方面的情況下進行改變和修改對于本領域那些技術人員將變得明顯,因此,所附權利要求書將把所有所述改變和修改包括在它們的范圍中如包括在本發(fā)明的真正的精神和范圍中。此外,應理解,本發(fā)明僅由所附權利要求書定義。本領域那些技術人員將理解,通常本文使用的術語,特別是所附權利要求書(例如,所附權利要求書的主體)中使用的術語,一般旨在為“開放性”術語(例如,術語“包括”應理解為“包括但不限于”,術語“具有”應理解為“至少具有”,術語“包括”應理解為“包括但不限于”等)。本領域那些技術人員還將理解,如果計劃特定數量的引入權利要求記載,所述意圖將在權利要求中明確記載,且在缺乏所述記載的情況下,不存在所述意圖。例如,為了幫助理解,以上所附權利要求書可包括使用介紹性短語“至少一個”和“一個或多個”來引入權利要求記載。然而,所述短語的使用不應理解為暗示不定冠詞“一個(a/an) ”引入的權利要求記載把包括所述引入的權利要求記載的任何特定權利要求限制為只包括一個所述記載的發(fā)明,即使當相同權利要求包括介紹性的短語“一個或多個”或“至少一個”和諸如“一個(a/an) ”的不定冠詞(例如,“一個(a/an)”通常應理解為意指“至少一個”或“一個或多個”);這同樣適用于用以引入權利要求記載的定冠詞的使用。另外,即使明確敘述了特定數量的引入的權利要求記載,本領域那些技術人員將認識到,所述敘述應通常理解為意指至少所記載的數量(例如,只記載“兩個記載”而沒有其它修改,通常意指至少兩個記載,或者兩個或更多個記載)。
[0124]因此,本發(fā)明僅由所附的權利要求書限制。
【權利要求】
1.一種用于在多個計算設備實質上同時呈現分布式模擬的方法,所述多個計算設備包括執(zhí)行所述分布式模擬的第一部分的第一計算設備,所述第一部分控制對象,所述方法包括: a)在所述多個計算設備中的第二個上執(zhí)行所述分布式模擬的第二部分,所述第二部分產生可在第一顯示設備上顯示的所述對象的第一視覺表示,所述第二計算設備包括與所述對象和所述第一視覺表示相關的視覺狀態(tài),所述視覺狀態(tài)包括至少一個參數值,所述第二計算設備已經從所述第一計算設備接收到包括與所述對象的第二視覺表示相關的先前狀態(tài)的先前更新; b)至少部分基于所述先前狀態(tài)在所述第二計算設備上產生所述對象的預測狀態(tài),所述預測狀態(tài)包括至少一個速度和至少一個參數值; c)在所述第二計算設備上從所述第一計算設備接收更新,所述更新包括與所述對象的第三視覺表示相關的新狀態(tài),所述新狀態(tài)包括至少一個參數值; d)在所述第二計算設備上把所述預測狀態(tài)的所述至少一個參數值設置為等于所述新狀態(tài)的所述至少一個參數值; e)所述第二計算設備確定所述預測狀態(tài)的所述至少一個參數值和所述視覺狀態(tài)的所述至少一個參數值之間的差異; f)當所述差異大于第一閾值時,所述第二計算設備修改所述預測狀態(tài)的所述至少一個速度; g)當所述差異大于第二閾值時,所述第二計算設備至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的至少一個參數值; h)所述第二計算設備至少部分基于所述視覺狀態(tài)渲染所述對象的第四視覺表示;和 i)所述第二計算設備在所述第一顯示設備上顯示所述對象的所述第四視覺表示。
2.如權利要求1所述的方法,其中所述預測狀態(tài)是第一預測狀態(tài),所述差異是第一差異,且所述方法還包括: 所述第二計算設備至少部分基于所述預測狀態(tài)的所述至少一個速度來產生第二預測狀態(tài),所述第二預測狀態(tài)包括至少一個參數值; 當所述第二差異大于所述第二閾值時,所述第二計算設備至少部分基于所述第二預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值; 所述第二計算設備至少部分基于所述視覺狀態(tài)來渲染所述對象的第五視覺表示;和 所述第二計算設備在所述第一顯示設備上顯示所述對象的所述第五視覺表示。
3.如權利要求1所述的用于所述第一計算設備在第二顯示設備上顯示所述對象的所述第三視覺表示的方法,其中實質上與所述第一計算設備在所述第二顯示設備上顯示所述對象的所述第三視覺表示同時,所述對象的所述第四視覺表示由所述第二計算設備在所述第一顯示設備上顯示。
4.如權利要求1所述的方法,其還包括: 所述第二計算設備從所述第二計算設備可訪問的存儲設備獲得所述第一閾值。
5.如權利要求4所述的方法,其中所述對象具有類型,以及 所述第一閾值被存儲在所述存儲設備上存儲的表中,所述第一閾值與所述對象在所述表中的所述類型相關。
6.如權利要求1所述的方法,其中所述對象具有類型, 所述新狀態(tài)的所述至少一個參數值包括至少一個速度,以及 所述第二計算設備修改所述預測狀態(tài)的所述至少一個速度包括:獲得與所述對象的所述類型相關的凹凸值,和根據所述凹凸值、所述差異和所述新狀態(tài)的所述至少一個速度來計算所述預測狀態(tài)的所述至少一個速度。
7.如權利要求1所述的方法,其中所述視覺狀態(tài)的所述至少一個參數值包括至少一個速度, 所述預測狀態(tài)的所述至少一個參數值包括至少一個速度,以及 確定所述預測狀態(tài)的所述至少一個參數值和所述視覺狀態(tài)的所述至少一個參數值之間的所述差異包括:確定所述預測狀態(tài)的所述至少一個速度和所述視覺狀態(tài)的所述至少一個速度之間的差異。
8.如權利要求7所述的方法,其中所述新狀態(tài)的所述至少一個參數值包括至少一個速度,以及 所述預測狀態(tài)的所述至少一個速度被設置為等于所述新狀態(tài)的所述至少一個速度。
9.如權利要求1所述的方法,其中所述視覺狀態(tài)的所述至少一個參數值包括位置信息和方向信息中的至少一個; 所述預測狀態(tài)的所述至少一個參數值包括位置信息和方向信息中的至少一個;以及 確定所述預測狀態(tài)的所述至少一個參數值和所述視覺狀態(tài)的所述至少一個參數值之間的所述差異包括:確定所述預測狀態(tài)的位置信息和方向信息中的所述至少一個和所述視覺狀態(tài)的位置信息和方向信息中的所述至少一個之間的差異。
10.如權利要求9所述的方法,其中所述新狀態(tài)的所述至少一個參數值包括位置信息和方向信息中的至少一個,以及 所述預測狀態(tài)的位置信息和方向信息中的所述至少一個被設置為等于所述新狀態(tài)的位置信息和方向信息中的所述至少一個。
11.如權利要求9所述的方法,其中當所述差異大于第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值還包括: 確定所述差異是否大于第三閾值,所述第三閾值大于所述第二閾值;和 當確定所述差異大于所述第三閾值時,把所述視覺狀態(tài)的位置信息和方向信息中的所述至少一個設置為等于所述預測狀態(tài)的位置信息和方向信息中的所述至少一個。
12.如權利要求11所述的方法,其中所述對象具有類型, 所述第三閾值被存儲在表中且與所述表中的所述對象類型相關,以及 所述方法還包括所述第二計算設備從所述表獲得所述第三閾值。
13.如權利要求11所述的方法,其中當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值還包括: 當所述差異小于所述第三閾值時,所述第二計算設備確定混合狀態(tài),所述混合狀態(tài)至少部分基于所述視覺狀態(tài)的位置信息和方向信息中的所述至少一個和所述預測狀態(tài)的位置信息和方向信息中的所述至少一個,所述混合狀態(tài)包括位置信息和方向信息中的至少一個,以及 把所述視覺狀態(tài)的位置信息和方向信息中的所述至少一個設置為等于所述混合狀態(tài)的位置信息和方向信息中的所述至少一個。
14.如權利要求13所述的方法,其中所述對象具有類型,以及 所述混合狀態(tài)是至少部分基于與所述對象的所述類型相關的一個或多個參數值來確定的。
15.如權利要求11所述的方法,其中所述對象具有類型, 所述第二和第三閾值被存儲在表中且與所述表中的所述對象類型相關,以及 所述方法還包括所述第二計算設備從所述表獲得所述第二和第三閾值。
16.如權利要求9所述的方法,其中當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值還包括: 當所述差異小于第三閾值時,所述第二計算設備確定混合狀態(tài),所述混合狀態(tài)至少部分基于所述視覺狀態(tài)的位置信息和方向信息中的所述至少一個和所述預測狀態(tài)的位置信息和方向信息中的所述至少一個,所述混合狀態(tài)包括位置信息和方向信息中的至少一個,以及 將所述新的視覺狀態(tài)的位置信息和方向信息中的所述至少一個設置為等于所述混合狀態(tài)的位置信息和方向信息中的所述至少一個。
17.如權利要求1所述的方法,其中當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值還包括: 確定所述差異是否大于第三閾值,所述第三閾值大于所述第二閾值;和` 當確定所述差異大于所述第三閾值時,把所述視覺狀態(tài)的所述至少一個參數值設置為等于所述預測狀態(tài)的所述至少一個參數值。
18.如權利要求17所述的方法,其中當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值還包括: 當所述差異小于所述第三閾值時,所述第二計算設備確定混合狀態(tài),所述混合狀態(tài)至少部分基于所述視覺狀態(tài)的所述至少一個參數值和所述預測狀態(tài)的所述至少一個參數值,所述混合狀態(tài)包括至少一個參數值,和 把所述視覺狀態(tài)的所述至少一個參數值設置為等于所述混合狀態(tài)的所述至少一個參數值。
19.如權利要求18所述的方法,其中所述新狀態(tài)的所述至少一個參數值包括所述對象的控制模式,且所述方法還包括: 至少部分基于所述對象的所述控制模式來從多個第一和第二閾值選擇所述第二和第三閾值中的至少一個。
20.如權利要求18所述的方法,其中所述對象具有類型,以及 至少部分基于所述對象的所述控制模式來從所述多個第一和第二閾值選擇所述第二和第三閾值中的所述至少一個還包括:至少部分基于所述對象的所述類型來從所述多個第一和第二閾值選擇所述第二和第三閾值中的至少一個。
21.如權利要求1所述的方法,其中當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值還包括: 在所述第二計算設備上確定局部碰撞狀態(tài);和 基于所述局部碰撞狀態(tài)來在所述第二計算設備上修改所述視覺狀態(tài)。
22.如權利要求21所述的用于包括地形的所述分布式模擬的方法,所述方法還包括: 重復確定所述局部碰撞狀態(tài)和基于所述局部碰撞狀態(tài)來修改所述視覺狀態(tài),直到所述對象實質上不滲透所述地形。
23.一種用于多個計算設備的方法,所述多個計算設備通過網絡彼此連接且每個執(zhí)行包括多個對象的分布式模擬的部分,所述部分在所述多個計算設備中的第一個上執(zhí)行,所述第一個計算設備控制所述多個對象的部分并把與所述多個對象的所述部分的至少一個對象有關的更新發(fā)送到所述多個計算設備中的第二個,所述方法包括: a)在所述第二計算設備上,從所述第一計算設備接收包括與所述第一計算設備控制的所述多個對象的所述部分的第一對象有關的狀態(tài)信息的先前更新; b)在所述第二計算設備上,至少部分基于與所述第一對象有關的所述狀態(tài)信息來產生并顯示所述第一對象的第一視覺表示,所述第二計算設備包括與所述第一對象和所述第一視覺表不相關的視覺狀態(tài)?目息; c)在所述第二計算設備上,從所述第一計算設備接收包括狀態(tài)信息的新更新,所述新更新在所述先前更新之后已經被接收到; d)在所述第二計算設備上,至少部分基于所述先前更新的所述狀態(tài)信息來確定所述第一對象的預測狀態(tài)信息,所述預測狀態(tài)信息包括至少一個速度值; e)確定所述新更新的所述狀態(tài)信息是否與所述第一對象有關; f)當所述第二計算設備確定所述新更新的所述狀態(tài)信息與所述第一對象有關時,把所述預測狀態(tài)信息的至少一部分設置為等于所述新更新的所述狀態(tài)信息的至少一部分; g)確定所述視覺狀態(tài)信息和所述預測狀態(tài)信息之間的差異; h)當所述差異大于第一閾值時,`修改所述預測狀態(tài)信息的所述至少一個速度值; i)當所述差異大于第二閾值時,至少部分基于所述預測狀態(tài)信息來修改所述視覺狀態(tài)信息; j)所述第二計算設備至少部分基于所述視覺狀態(tài)信息來渲染所述對象的第二視覺表示;和 k)所述第二計算設備在所述顯示設備上顯示所述對象的所述第二視覺表示。
24.如權利要求23所述的方法,其中所述預測狀態(tài)信息是第一預測狀態(tài)信息,所述差異是第一差異,且所述方法還包括: 所述第二計算設備至少部分基于所述第一預測狀態(tài)信息的所述至少一個速度來產生第二預測狀態(tài)信息; 確定所述視覺狀態(tài)信息和所述第二預測狀態(tài)信息之間的第二差異; 當所述第二差異大于所述第二閾值時,至少部分基于所述第二預測狀態(tài)信息來修改所述視覺狀態(tài)信息; 所述第二計算設備至少部分基于所述視覺狀態(tài)信息來渲染所述對象的第三視覺表示;和 所述第二計算設備在所述顯示設備上顯示所述對象的所述第三視覺表示。
25.如權利要求23所述的方法,其用于在所述第二計算設備上執(zhí)行并控制所述多個對象的第二部分的所述分布式模擬的所述部分,所述方法還包括: 把與所述多個對象的所述第二部分的至少一個對象有關的更新發(fā)送到所述第一計算設備。
26.如權利要求23所述的方法,其用于在控制所述多個對象的第二部分的所述第二計算設備上執(zhí)行的所述分布式模擬的所述部分,所述方法還包括: 通過用戶接口設備接收用戶輸入,所述用戶輸入改變所述多個對象的所述第二部分的選定對象的狀態(tài); 創(chuàng)建包括與所述選定對象有關的狀態(tài)信息的更新;和 把與所述選定對象有關的所述更新發(fā)送到所述第一計算設備。
27.如權利要求23所述的方法,其用于通過所述網絡連接到所述多個計算設備的服務器的,且所述分布式模擬的所述部分在控制所述多個對象的第二部分的所述第二計算設備上執(zhí)行,所述方法還包括: 把與所述多個對象的所述第二部分的至少一個對象有關的更新發(fā)送到所述服務器,從而轉發(fā)到所述多個計算設備中的其它計算設備。
28.一種用于多個計算設備的方法,每個計算設備執(zhí)行包括多個對象的分布式模擬的部分,所述部分在所述多個計算設備中的第一個上執(zhí)行,所述第一個計算設備控制所述多個對象的部分并把與所述多個對象的所述部分的至少一個對象有關的更新發(fā)送到所述多個計算設備中的至少第二個,所述方法包括: a)在所述第二計算設備上,從所述第一計算設備接收包括與所述第一計算設備控制的所述多個對象的所述部分的第一對象有關的狀態(tài)信息的先前更新; b)在所述第二計算設備上,至少部分基于與所述第一對象有關的所述狀態(tài)信息來產生并顯示所述第一對象的第一視覺表示,所述第二計算設備包括與所述第一對象和所述第一視覺表不相關的視覺狀態(tài)?目息; c)在所述第二計算設備上,從所述第一計算設備接收包括狀態(tài)信息的新更新,所述新更新在所述先前更新之后已經被接收到; d)在所述第二計算設備上,至少部分基于所述先前更新的所述狀態(tài)信息來確定所述第一對象的預測狀態(tài)信息; e)在所述第二計算設備上,確定所述新更新的所述狀態(tài)信息是否與所述第一對象有關; f)當所述第二計算設備確定所述新更新的所述狀態(tài)信息與所述第一對象有關時,在所述第二計算設備上,把所述預測狀態(tài)信息的至少一部分設置為等于所述新更新的所述狀態(tài)信息的至少一部分; g)在所述第二計算設備上,確定所述視覺狀態(tài)信息和所述預測狀態(tài)信息之間的差異; h)當所述差異大于第一閾值時,在所述第二計算設備上,把所述視覺狀態(tài)信息的至少一部分設置為等于 所述預測狀態(tài)信息的至少一部分; i)當所述差異小于所述第一閾值且大于第二閾值時,所述第二計算設備至少部分基于所述視覺狀態(tài)信息和所述預測狀態(tài)信息來確定混合狀態(tài)信息,并把所述視覺狀態(tài)信息的至少一部分設置為等于所述混合狀態(tài)信息的至少一部分,所述第一閾值大于所述第二閾值; j)所述第二計算設備至少部分基于所述視覺狀態(tài)信息來渲染所述第一對象的第二視覺表示;和 k)在所述第二計算設備上,在所述顯示設備上顯示所述第一對象的所述第二視覺表/Jn ο
29.一種用于多個計算設備的方法,所述多個計算設備通過網絡彼此連接且每個執(zhí)行包括多個對象的分布式模擬的部分,所述部分在所述多個計算設備中的第一個上執(zhí)行,所述第一個計算設備控制所述多個對象的第一部分并把與所述多個對象的所述第一部分的至少一個對象有關的更新發(fā)送到所述多個計算設備中的第二個,所述部分在所述第二計算設備上執(zhí)行,所述第二計算設備控制所述多個對象的第二部分并把與所述多個對象的所述第二部分的至少一個對象有關的更新發(fā)送到所述第一計算設備,所述方法包括: 在所述第二計算設備上,渲染所述多個對象的所述第一部分的第一對象的第一視覺表示和所述多個對象的所述第二部分的第二對象的第一視覺表示,所述第一對象的所述第一視覺表不與視覺狀態(tài)?目息相關; 在所述第二計算設備上,通過用戶輸入設備接收改變所述第二對象的所述第一視覺表示的輸入,且偶爾從所述第一計算設備接收所述第二計算設備可用以修改所述第一對象的所述第一視覺表示的更新,從所述第一計算設備接收到的每個所述更新包括與所述第一對象有關的狀態(tài)信息; 隨著所述第二對象的所述第一視覺表示改變,在所述第二計算設備上,偶爾通過所述網絡把更新發(fā)送到所述第一計算設備,所述更新包括所述第一計算設備可用以修改所述第二對象的第二視覺表示的與所述第二對象有關的狀態(tài)信息; 在所述第二計算設備上, 偶爾產生包括至少一個速度的所述第一對象的預測狀態(tài)信息; 在所述第二計算設備上接收到每個所述更新之后,把所述預測狀態(tài)信息設置為等于所述更新的所述狀態(tài)信息; 在所述第二計算設備上,確定所述預測狀態(tài)信息和與所述第一對象的所述第一視覺表示相關的所述視覺狀態(tài)信息之間的差異; 在所述第二計算設備上,當所述差異大于第一閾值時,通過改變所述至少一個速度來更新所述預測狀態(tài)信息; 在所述第二計算設備上,當所述差異大于第二閾值時,至少部分基于所述預測狀態(tài)信息來修改與所述第一對象的所述第一視覺表示相關的所述視覺狀態(tài)信息;和 在所述第二計算設備上,至少部分基于所述視覺狀態(tài)信息來重新渲染所述第二對象的所述第一視覺表示。
30.如權利要求29所述的方法,其中所述第一對象具有類型,所述第一和第二閾值被存儲在表中且與所述對象在所述表中的所述類型相關,且所述方法還包括: 在所述第二計算設備上,在所述表中查閱所述第一和第二閾值。
31.如權利要求29所述的方法,其中當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)信息來修改與所述第一對象的所述第一視覺表示相關的所述視覺狀態(tài)信息包括: 當所述差異大于第三閾值時,把所述視覺狀態(tài)信息設置為等于所述預測狀態(tài)信息;和當所述差異小于所述第三閾值且大于所述第二閾值時,所述第二計算設備至少部分基于所述視覺狀態(tài)信息和所述預測狀態(tài)信息來確定混合狀態(tài)信息,并把所述視覺狀態(tài)信息設置為等于所述混合狀態(tài)信息,所述第三閾值大于所述第二閾值。
32.存儲計算機可執(zhí)行指令的一種或多種計算機可讀介質,所述計算機可執(zhí)行指令當被一個或多個處理器執(zhí)行時執(zhí)行用于執(zhí)行分布式模擬的第一部分的第一計算設備的方法,所述第一部分控制對象,所述方法包括: 執(zhí)行所述分布式模擬的第二部分,所述第二部分產生可在第一顯示設備上顯示的所述對象的第一視覺表示,視覺狀態(tài)與所述對象和所述第一視覺表示相關,所述視覺狀態(tài)包括至少一個參數值; b)至少部分基于從所述第一計算設備接收到的先前更新的先前狀態(tài)來產生所述對象的預測狀態(tài),所述先前狀態(tài)與所述對象的第二視覺表示相關,所述預測狀態(tài)包括至少一個速度和至少一個參數值; c)從所述第一計算設備接收更新,所述更新包括與所述對象的第三視覺表示相關的新狀態(tài),所述新狀態(tài)包括至少一個參數值; d)把所述預測狀態(tài)的所述至少一個參數值設置為等于所述新狀態(tài)的所述至少一個參數值; e)確定所述預測狀態(tài)的所述至少一個參數值和所述視覺狀態(tài)的所述至少一個參數值之間的差異; f)當所述差異大于第一閾值時,修改所述預測狀態(tài)的所述至少一個速度; g)當所述差異大于第二閾值時,至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的至少一個參數值; h)至少部分基于所述視覺狀態(tài)來渲染所述對象的第四視覺表示;和 i)在所述第一顯示設備上顯示所述對象的所述第四視覺表示。
33.如權利要求32所述的一種或多種計算機可讀介質,其中所述預測狀態(tài)是第一預測狀態(tài),所述差異是第一差異,且所述方法還包括: 至少部分基于所述預測狀態(tài)的所述至少一個速度來產生第二預測狀態(tài),所述第二預測狀態(tài)包括至少一個參數值; 當所述第二差異大于第二閾值時,至少部分基于所述第二預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值; 至少部分基于所述視覺狀態(tài)來渲染所述對象的第五視覺表示;和 在所述第一顯示設備上顯示所述對象的所述第五視覺表示。
34.如權利要求32所述的一種或多種計算機可讀介質,其中當所述差異大于所述第二閾值時至少部分基于所述預測狀態(tài)的所述至少一個參數值來修改所述視覺狀態(tài)的所述至少一個參數值還包括: 確定所述差異是否大于第三閾值,所述第三閾值大于所述第二閾值;和 當確定所述差異大于所述第三閾值時,把所述視覺狀態(tài)的所述至少一個參數值設置為等于所述預測狀態(tài)的所述至少一個參數值;和 當確定所述差異小于所述第三閾值時,至少部分基于所述視覺狀態(tài)的所述至少一個參數值和所述預測狀態(tài)的所述至少一個參數值來確定混合狀態(tài),所述混合狀態(tài)包括至少一個參數值,并把所述視覺狀態(tài)的所述至少一個參數值設置為等于所述混合狀態(tài)的所述至少一個參數值。
35.一種用于實施包括多個對 象的分布式模擬的系統,所述系統包括:通過網絡彼此連接的多個計算設備,每個計算設備被配置以執(zhí)行所述分布式模擬的部分, 執(zhí)行所述分布式模擬的第一部分的所述多個計算設備的第一計算設備,所述分布式模擬的所述第一部分控制所述多個對象的部分并把與所述多個對象的所述部分中至少一個對象有關的更新發(fā)送到所述多個計算設備中的第二個,所述第二計算設備被配置以: 從所述第一計算設備接收到包括與所述第一計算設備控制的所述多個對象的所述部分的第一對象有關的狀態(tài)信息的先前更新; 至少部分基于與所述第一對象有關的所述狀態(tài)信息來產生所述第一對象的第一視覺表不; 在顯示設備上顯示所述第一視覺表示,所述第二計算設備包括與所述第一對象和所述第一視覺表示相關的視覺狀態(tài)信息; 從所述第一計算設備接收包括狀態(tài)信息的新更新,所述新更新在所述先前更新之后已經被接收到; 至少部分基于所述先前更新的所述狀態(tài)信息來確定所述第一對象的預測狀態(tài)信息,所述預測狀態(tài)信息包括至少一個速度值; 確定所述新更新的所述狀態(tài)信息是否與所述第一對象有關; 當所述第二計算設備確定所述新更新的所述狀態(tài)信息與所述第一對象有關時,把所述預測狀態(tài)信息的至少一部分設置為等于所述新更新的所述狀態(tài)信息的至少一部分; 確定所述視覺狀態(tài)信息和所述預測狀態(tài)信息之間的差異; 當所述差異大于第一閾值時,修改所述預測狀態(tài)信息的所述至少一個速度值; 當所述差異大于所述第二閾值時,至少部分基于所述預測狀態(tài)信息來修改所述視覺狀態(tài)息; 至少部分基于所述視覺狀態(tài)信息來渲染所述對象的第二視覺表示;和 在所述顯示設備上顯示所述對象的所述第二視覺表示。
36.如權利要求35所述的系統,其中所述預測狀態(tài)信息是第一預測狀態(tài)信息,所述差異是第一差異,且所述第二計算設備還被配置以: 至少部分基于所述第一預測狀態(tài)信息的所述至少一個速度來產生第二預測狀態(tài)信息; 確定所述視覺狀態(tài)信息和所述第二預測狀態(tài)信息之間的第二差異; 當所述第二差異大于所述第二閾值時,至少部分基于所述第二預測狀態(tài)信息來修改所述視覺狀態(tài)信息; 至少部分基于所述視覺狀態(tài)信息來渲染所述對象的第三視覺表示;和 在所述顯示設備上顯示所述對象的所述第三視覺表示。
37.如權利要求35所述的系統,其中在所述第二計算設備上執(zhí)行的所述分布式模擬的所述部分控制所述多個對象的第二部分,且所述第二計算設備還被配置以把與所述多個對象的所述第二部分的至少一個對象有關的更新發(fā)送到所述第一計算設備。
38.如權利要求35所述的系統,其中在所述第二計算設備上執(zhí)行的所述分布式模擬的所述部分控制所述多個對象的第二部分,且所述第二計算設備還被配置以: 通過用戶接口設備接收用戶輸入,所述用戶輸入改變所述多個對象的所述第二部分的選定對象的狀態(tài); 創(chuàng)建包括與所述選定對象有關的狀態(tài)信息的更新;和 把與所述選定對象有關的所述更新發(fā)送到所述第一計算設備。
39.如權利要求35所述的系統,其還包括: 通過所述網絡連接到所述多個計算設備的服務器,其中在所述第二計算設備上執(zhí)行的所述分布式模擬的所述部分控制所述多個對象的第二部分,所述第二計算設備還被配置以把與所述多個對象的所述第二部分的至少一個對象有關的更新發(fā)送到所述服務器,從而轉發(fā)到所述多個計算設備中的其`它計算設備。
【文檔編號】A63F13/843GK103732300SQ201280032186
【公開日】2014年4月16日 申請日期:2012年5月3日 優(yōu)先權日:2011年5月3日
【發(fā)明者】大衛(wèi)·斯科特·奧爾德里奇, 盧克·威爾遜·蒂明斯, 克里斯多佛·查爾斯·約翰·布徹爾 申請人:邦吉有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1