在劃分為多個區(qū)域的三維場景中對對象的物理行為仿真的制作方法
【專利摘要】本發(fā)明指向一種計算機實現(xiàn)方法,用于模擬在被劃分為多個區(qū)域的3D場景中的至少一個對象的物理行為。該方法包括:至少提供拓撲相鄰的第一區(qū)域和第二區(qū)域,每個區(qū)域具有其自身的計算資源;提供位于一個或兩個區(qū)域中的對象;以及模擬該對象的物理行為,該模擬是由所述第一和第二區(qū)域中每一個的計算資源執(zhí)行的。
【專利說明】在劃分為多個區(qū)域的三維場景中對對象的物理行為仿真
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機程序和系統(tǒng)領(lǐng)域,特別涉及一種用于模擬在劃分為多個區(qū)域的3D場景中的至少一個對象的物理行為的方法、系統(tǒng)和程序。
【背景技術(shù)】
[0002]大型多用戶在線應(yīng)用程序(MMO)允許大量用戶同時使用例如真實世界現(xiàn)象模擬器、沉浸式應(yīng)用程序等的應(yīng)用程序。類似地,大型多用戶在線游戲(MMOG)允許大量玩家同時進行視頻游戲。MMO和MMOG顯著地依賴計算機網(wǎng)絡(luò),例如,因特網(wǎng),以允許用戶或玩家連接到應(yīng)用程序或視頻游戲。貫穿本說明書的詞語“應(yīng)用程序”和“視頻游戲”將被理解為同義詞,并且術(shù)語MMO和MMOG也不做區(qū)別使用。
[0003]MMO涉及復(fù)雜的并且大規(guī)模的虛擬環(huán)境,其被要求呈現(xiàn)盡可能多的細節(jié),盡可能接近實時,以便給用戶或游戲玩家提供更真實的體驗。MMO被特別設(shè)計用于呈現(xiàn)和操縱3D場景,并典型地用于終端用戶的計算機上要求交互性、順序性、實時的3D場景生成的應(yīng)用程序。在用戶與3D場景交互時,計算機足夠快地重繪3D呈現(xiàn),以向用戶傳達用戶正參與的連續(xù)的、不間斷的、現(xiàn)實的場景。該場景由多個獨立的對象構(gòu)成,當用戶與該3D場景交互時可對所述對象進行操縱。因此,MMO涉及很大的數(shù)據(jù)量,通常要求高數(shù)據(jù)速率和高數(shù)據(jù)復(fù)雜度以管理實時參與到空間復(fù)雜和高細致虛擬環(huán)境的大量用戶。
[0004]MMO典型地用于在計算機模型中模擬真實世界現(xiàn)象;例如,多體剛性動力學(Mult1-Body Rigid Dynamics)、人的模擬(Human Simulation)、布料模擬(ClothSimulation)、粒子模擬(Particle Simulation)。模擬要求對真實世界現(xiàn)象進行描述的準確數(shù)據(jù)和算法,例如制造過程中使用的材料的物理屬性(強度、彈性等等)和建立過程的模擬和使用產(chǎn)品的模擬的產(chǎn)品。3D CAD/CAM(計算機輔助設(shè)計/計算機輔助制造)工具允許建立產(chǎn)品或組成部件的3D呈現(xiàn)。
[0005]MMO和MMOG的主要的和關(guān)鍵的要求是向所連接的用戶在任何時間都能提供實時響應(yīng),而不管他們的數(shù)量,并且不管應(yīng)用程序的處理和呈現(xiàn)所誘發(fā)的計算成本。否則游戲體驗質(zhì)量將下降,在實現(xiàn)協(xié)同和分布式設(shè)計評審時玩家對應(yīng)用程序的興趣降低、限制交互。
[0006]MMO如同MM0G,必須是可擴展的以動態(tài)適應(yīng)不斷改變的工作負荷,進而保持實時性能??蓴U展性尤其包括能夠同時使用應(yīng)用程序的用戶數(shù)量,用于計算模擬的計算資源的數(shù)量,應(yīng)用程序所允許的3D場景的對象之間同時交互的數(shù)量,等等。對于MM0G,用戶的數(shù)量、以及所有被包含的動態(tài)對象的位置和圖形屬性都可能變化很大。然而,周圍布景是一次全部設(shè)定的,并且動態(tài)對象的類型和所支持的行為類別是在游戲開始前預(yù)定義的。換句話說,MMOG中的3D場景包括多個預(yù)先確定的角色,其有力地限制了計算資源的需求,因此提高了可擴展性。
[0007]相反,對于改進的MM0,3D場景的布景和人群類型能夠發(fā)展和豐富,特別是當應(yīng)用程序運行時。的確,MMO針對實時世界現(xiàn)象,其中對象的行為是動態(tài)的并且排除預(yù)定義的行為類別。因此,MMO中的3D布景不能像MMOG那樣使用預(yù)定義的角色。[0008]可擴展性的問題由MMOG解決了。這樣的解決方法和技術(shù)包括分片和分區(qū)。分片在于克隆世界(部分的或整體的)并且招待新登錄用戶以應(yīng)付工作負荷增長,但在分片之間沒有可能的交互。因此,分片自然不能支持虛擬世界空間和人群的無限擴展;碎片的確具有由分配給他們的處理資源的性能指示的物理容量上限(ceiling)。
[0009]分區(qū)依賴于在所謂區(qū)域中虛擬世界空間的劃分,他們中每一個承擔計算資源的責任。對象/用戶可以進行逐區(qū)域的導航。然后,相關(guān)聯(lián)的計算資源通信網(wǎng)絡(luò)上的專用消息以集成在他們的計算模型中的這些移動對象。
[0010]然而,在MMOG中,區(qū)域與其他區(qū)域非常獨立地發(fā)展而成:動態(tài)對象簡單地從區(qū)域“A”的若干預(yù)定義通道位置中的一個“遠距傳輸”到區(qū)域“B”的若干位置中的另一個。優(yōu)化負載平衡的問題是通過以下解決的:通過使用障礙物或?qū)嶓w墻圍住區(qū)域,通過限制區(qū)域內(nèi)部通道位置的數(shù)量,通過限制任意時間在每一區(qū)域內(nèi)對象的數(shù)量,以及通過用調(diào)整過的靜態(tài)布景(d6COr)來填充區(qū)域。在某種程度上,虛擬環(huán)境的不同區(qū)域被定制以適應(yīng)實時需求。
[0011]然而,對于MMO的改進的物理模擬,這些簡化不被接受。的確,虛擬環(huán)境,特別是在模擬真實世界現(xiàn)象時,不能支持人工圍起布景,這限制了所模擬的真實世界定制化的可能性。特別是,所有對象應(yīng)該能夠在任意點跨越兩個或多個區(qū)域間的邊界,并且必須實現(xiàn)該跨越以保持對象的狀態(tài)連續(xù)性(例如,位置和速度)。此外,相鄰區(qū)域通常通過他們在他們的公共邊界共享的對象而具有相互交互(例如,接觸壓力),并且因此例如“遠距傳輸”的機制對于實際模擬而言效率較差。此外,公共物理行為的模擬要求根據(jù)所考慮的可能是非常復(fù)雜的物理規(guī)則在數(shù)據(jù)區(qū)域之間進行連續(xù)且重復(fù)性的通信。
[0012]在這個環(huán)境中,仍舊需要一種改進的方法、計算機程序和系統(tǒng),用以提供在劃分為多個區(qū)域的3D場景中對對象的物理行為的可擴展的、無縫并且有效的實時模擬。
【發(fā)明內(nèi)容】
[0013]根據(jù)一個方面,本發(fā)明從而提供一種計算機實現(xiàn)的方法,用于模擬劃分為多個區(qū)域的3D場景中的至少一個對象的物理行為。該方法包括:
[0014]-提供拓撲相鄰的至少第一區(qū)域和第二區(qū)域,每個區(qū)域具有其自身的計算資源;
[0015]-提供位于一個或兩個區(qū)域中的對象;以及
[0016]-模擬對象的物理行為,該模擬是由所述第一和第二區(qū)域中的每個的計算資源實現(xiàn)的。
[0017]該方法可包括以下步驟的一個或多個:
[0018]-在提供對象的步驟,為對象所位于的每個區(qū)域計算該對象的實例,計算出的所述對象的實例是相同的;以及模擬對象的物理行為的步驟是根據(jù)與該對象的實例有關(guān)的物理狀態(tài)來執(zhí)行的。
[0019]-在提供步驟之后,在第一區(qū)域和第二區(qū)域之間交換信息的步驟,所交換的信息至少包括對象在一個區(qū)域的物理狀態(tài)以及對象在另一區(qū)域的存在或缺失。
[0020]-在提供步驟之后,確定對象位于兩個區(qū)域的步驟;由兩個區(qū)域中作為對象的到達區(qū)域的一個區(qū)域,通過檢查該對象沒有完全在到達區(qū)域中,來計算該對象在作為該對象的出發(fā)區(qū)域的另一區(qū)域中的存在;將表明對象在出發(fā)區(qū)域中的存在的信息從到達區(qū)域交換到出發(fā)區(qū)域。[0021]-在提供步驟之后,確定對象不再位于所述區(qū)域的一個中的步驟;由作為對象的到達區(qū)域的一個區(qū)域,通過檢查該對象完全在到達區(qū)域內(nèi),來計算該對象在作為該對象的出發(fā)區(qū)域的另一區(qū)域中的缺失;將表明對象在出發(fā)區(qū)域中的缺失的信息從到達區(qū)域交換到出發(fā)區(qū)域;以及由出發(fā)區(qū)域刪除對象在該出發(fā)區(qū)域中的實例;
[0022]-在提供步驟之后,確定對象正在進入作為該對象的到達區(qū)域的一個區(qū)域的步驟;由作為出發(fā)區(qū)域的另一區(qū)域,通過檢查該對象沒有完全在出發(fā)區(qū)域中,來計算該對象在出發(fā)區(qū)域中的存在;將表明該對象在出發(fā)區(qū)域中的存在的信息從出發(fā)區(qū)域交換到到達區(qū)域;以及由到達區(qū)域創(chuàng)建該對象的實例;
[0023]-在第一區(qū)域和第二區(qū)域之間交換信息的步驟是通過第一區(qū)域和第二區(qū)域之間的同步通信信道執(zhí)行的;
[0024]-在第一區(qū)域和第二區(qū)域之間交換信息的步驟是通過第一區(qū)域和第二區(qū)域之間的異步通信信道執(zhí)行的;
[0025]-在第一區(qū)域和第二區(qū)域之間交換信息的步驟是用在第一區(qū)域和第二區(qū)域之間的可靠通信信道執(zhí)行的;
[0026]-在第一區(qū)域和第二區(qū)域之間交換信息的步驟是通過第一區(qū)域和第二區(qū)域之間的不可靠通信信道執(zhí)行的;
[0027]-不可靠通信信道使用用戶數(shù)據(jù)報協(xié)議。
[0028]本發(fā)明進一步提出了一種包括指令的計算機程序,計算機程序包括由計算機執(zhí)行的指令,該指令適于執(zhí)行本發(fā)明的方法的步驟。
[0029]本發(fā)明進一步提出了一種計算機可讀存儲介質(zhì),其上記錄有前述計算機程序。
[0030]本發(fā)明進一步提出了一種計算機化系統(tǒng),包括存儲系統(tǒng),用于存儲被分割為多個區(qū)域的三維場景的拓撲相鄰的至少第一區(qū)域和第二區(qū)域,以及用于存儲在一個或兩個區(qū)域中的對象;處理單元,用于根據(jù)本發(fā)明的方法模擬對象的物理行為。
【專利附圖】
【附圖說明】
[0031]通過非限制性的例子并參考相關(guān)附圖,對本發(fā)明的實施例進行描述,其中:
[0032]圖1示出方法的示例的流程圖;
[0033]圖2-4描述圖1的步驟140、150、160的示例;
[0034]圖5示出被劃分為多個區(qū)域的3D場景的示例;
[0035]圖6是圖5的3D場景的另一視圖;
[0036]圖7示出在兩個區(qū)域之間交換信息的示例;
[0037]圖8示出計算化系統(tǒng)的示例。
【具體實施方式】
[0038]提出一種計算機實現(xiàn)方法,用于模擬在被劃分為多個區(qū)域的三維(3D)場景中的至少一個對象的物理行為。該3D場景可模擬真實世界環(huán)境。該3D場景包括一個或多個對象,例如,3D建模對象。該方法包括提供位于一個或兩個區(qū)域中的對象。該方法進一步包括模擬對象的物理行為。物理行為意味著對象在3D場景中如何與(如果有的話)其他對象交互。對對象物理行為的模擬由上述第一和第二區(qū)域中的每一個的計算資源執(zhí)行。因此,對象所在的每個區(qū)域的計算資源對模擬起作用。
[0039]這樣的方法改進了對3D場景中對象的物理行為的模擬,而不強加對3D場景的特別定制或?qū)ζ浣巧募s束。的確,由對象所在的一個或多個區(qū)域負責模擬,從而以連續(xù)的方式也就是無縫的方式實現(xiàn)從第一區(qū)域跨越到第二區(qū)域。結(jié)果是,對象所在的區(qū)域中的一個對模擬沒有影響,因此物理定律可連續(xù)地應(yīng)用于該對象。模擬因此而被改進;也就是說,模擬更加真實。
[0040]該方法是計算機實現(xiàn)的。這意味著該方法的步驟(或基本上所有步驟)由至少一個計算機或定制系統(tǒng)執(zhí)行。在示例中,該方法的至少一些步驟的觸發(fā)可通過用戶-計算機的交互執(zhí)行。所要求的用戶-計算機交互的水平可依賴于預(yù)知的自動性的水平,并且與實現(xiàn)用戶的希望的需求進行平衡。在示例中,這個水平可是用戶定義的和/或預(yù)定義的。
[0041]例如,提供位于一個或兩個區(qū)域中的對象的步驟可基于用戶選擇來執(zhí)行。用戶可以經(jīng)由觸覺設(shè)備來執(zhí)行選擇,所述觸覺設(shè)備例如是鍵盤、鼠標、定位筆(stylus)等。例如,在兩鍵鼠標中,左鍵可用于在場景列表中選擇場景。系統(tǒng)也可以缺省識別對象并將其定位在3D場景的一個或多個區(qū)域中,即,提供及定位的執(zhí)行可不需要用戶選擇。
[0042]本方法的計算機實現(xiàn)的典型示例是由包括存儲器和處理器的系統(tǒng)執(zhí)行該方法。存儲數(shù)據(jù)庫的存儲器僅是適合這種存儲的任意硬件。處理器也可稱為是計算單元。這種系統(tǒng)提供在真實世界模擬應(yīng)用程序背景下對3D場景的可擴展的、無縫的、并且有效的實時模擬。該系統(tǒng)可進一步包括適宜顯示3D場景的圖形用戶界面(GUI)、第一和第二區(qū)域、以及3D場景中的一個或多個對象。該⑶I與存儲器和處理器耦合。
[0043]“數(shù)據(jù)庫”表示組織起來用于搜索和取回的任意數(shù)據(jù)(即信息)收集。當在存儲器上存儲時,數(shù)據(jù)庫允許通過計算機的快速搜索和取回。數(shù)據(jù)庫被真正結(jié)構(gòu)化以方便連同各種數(shù)據(jù)處理操作對數(shù)據(jù)進行存儲、取回、修改和刪除。數(shù)據(jù)庫可由文件或文件集組成,其可分割為記錄,每個 記錄包括一個或多個字段。字段是數(shù)據(jù)存儲的基本單元。用戶可以主要通過查詢?nèi)』財?shù)據(jù)。使用關(guān)鍵字和分類命令,根據(jù)正使用的數(shù)據(jù)庫管理系統(tǒng)的規(guī)則,用戶能快速對多個記錄中的字段進行搜索、重排、分組以及選擇,從而對數(shù)據(jù)的特定組合取回或創(chuàng)建?艮告。
[0044]在該方法的情況下,數(shù)據(jù)庫能存儲被劃分為多個區(qū)域的三維場景,例如拓撲相鄰的第一和第二區(qū)域。數(shù)據(jù)庫可進一步存儲一個或多個對象,且他們可獨立于場景存儲。數(shù)據(jù)庫可進一步包括包含由系統(tǒng)執(zhí)行的指令的計算機程序。所述指令適于實現(xiàn)本方法的步驟。
[0045]該方法一般操縱對象。對象是由數(shù)據(jù)庫中存儲的數(shù)據(jù)定義的任意對象。通過擴展,用語“對象”指數(shù)據(jù)本身。根據(jù)系統(tǒng)類型,對象可由不同種類的數(shù)據(jù)定義。系統(tǒng)可以是CAD系統(tǒng)、CAE系統(tǒng)、CAM系統(tǒng)和/或PLM系統(tǒng)的任意組合。在那些不同系統(tǒng)中,建模的對象通過相應(yīng)數(shù)據(jù)定義。人們可以相應(yīng)談及CAD對象、PLM對象、CAE對象、CAM對象、CAD數(shù)據(jù)、PLM數(shù)據(jù)、CAM數(shù)據(jù)、CAE數(shù)據(jù)。然而,這些系統(tǒng)不排斥其它的,因為對象可由對應(yīng)于這些系統(tǒng)的任意組合的數(shù)據(jù)定義。系統(tǒng)因此可以既是CAD系統(tǒng)又是PLM系統(tǒng),從下面提供的這些系統(tǒng)的定義可明顯看出。系統(tǒng)也可以是MMO系統(tǒng)或MMOG系統(tǒng),其中基于用戶行為操縱對象。
[0046]對于CAD系統(tǒng),這意味著至少適合基于建模對象的圖形表示設(shè)計該建模對象的任何系統(tǒng),例如CATIA。在此情況下,定義建模對象的數(shù)據(jù)包括允許表現(xiàn)該建模對象的數(shù)據(jù)。CAD系統(tǒng)例如可提供利用邊或線(在特定情況下利用面或表面)的CAD建模對象的表示。線、邊或表面可用不同方式表示,例如,非均勻有理B樣條(NURBS)。特別的,CAD文件包括規(guī)范,根據(jù)該規(guī)范可生成幾何結(jié)構(gòu),其反過來允許生成表示。建模對象的規(guī)范可存儲在單個或多個CAD文件中。CAD系統(tǒng)中表示建模對象的文件的典型大小在每部分一兆字節(jié)的范圍內(nèi)。并且建模對象典型地可以是數(shù)千個部分的組合。
[0047]在CAD的環(huán)境中,建模對象典型的可以是3D建模對象,例如,表示例如一部分或多部分的組合的產(chǎn)品,或者可以是產(chǎn)品的組合。對于“3D建模對象”,它表示由允許其3D表示的數(shù)據(jù)所建模的任意對象。3D表示允許全角度觀察該部分。例如,在以3D表示3D建模對象時,可圍繞其任意軸線處理和轉(zhuǎn)動所述3D建模對象,或圍繞顯示該表示的屏幕中的任意軸線處理和轉(zhuǎn)動所述3D建模對象。這尤其排除了 2D圖標,其不是3D建模的。3D表示的顯示方便了設(shè)計(即,增加了設(shè)計者統(tǒng)計上完成其工作的速度)。因為產(chǎn)品設(shè)計是制造過程的一部分,所以這加速了工業(yè)中的制造過程。
[0048]CAD系統(tǒng)可基于歷史。在這種情況下,建模對象被通過包含幾何特征歷史的數(shù)據(jù)進一步定義。建模對象確實可通過自然人(即,設(shè)計者/用戶)使用標準建模特征(例如,突出、卷曲、切口和/或圓等)和/或標準表面特征(例如,掃描、混合、提高、填充、變形、平滑和/或等等)進行設(shè)計。很多支持這種建模功能的CAD系統(tǒng)是基于歷史的系統(tǒng)。這意味著設(shè)計特征的創(chuàng)建歷史典型地通過連接所述幾何特征的非循環(huán)數(shù)據(jù)流以及通過輸入和輸出鏈接進行保存?;跉v史的建模范例自80年代初就已眾所周知。建模對象由兩個持久性數(shù)據(jù)表示進行描述:歷史和B-rep(即邊界表示法)。B-rep是歷史中定義的計算的結(jié)果。當建模對象被呈現(xiàn)時在計算機屏幕上顯示的部分的形狀是B-rep(的鑲嵌)。該部分的歷史是設(shè)計意圖?;旧希瑲v史收集建模對象所經(jīng)受的操作的信息。B-rep可與歷史一起保存,從而更易于顯示復(fù)雜部分。歷史可與B-rep —起保存,以允許根據(jù)設(shè)計意圖對所述部分進行設(shè)計改變。
[0049]對于PLM系統(tǒng),其意味著適合管理表示物理制造產(chǎn)品的建模對象的任意系統(tǒng)。在PLM系統(tǒng)中,建模對象因此被適合制造物理對象的數(shù)據(jù)定義。典型地,這些可以是尺寸值和/或容差值。對于對象的正確制造,具有這些值確實更好。
[0050]對于CAE系統(tǒng),其意味著適合分析建模對象的物理行為的任意系統(tǒng)。在CAE系統(tǒng)中,建模對象因此由適合分析這種行為的數(shù)據(jù)定義。典型地,這可以是行為特征集合。例如,對應(yīng)于門的建模對象可以由指示該門繞軸線旋轉(zhuǎn)的數(shù)據(jù)來定義。
[0051]圖8示出了客戶端計算機系統(tǒng),例如是用戶工作站。
[0052]客戶端計算機包括:中央處理單元(CPU) 1010,其連接到內(nèi)部通信總線1000 ;隨機存取存儲器(RAM) 1070,其也連接到總線。客戶端計算機還設(shè)置有圖形處理單元(GPU) 1110,其與連接到總線的視頻隨機存取存儲器1100關(guān)聯(lián)。視頻RAMl 100在本領(lǐng)域中已知作為幀緩沖器。大容量存儲設(shè)備控制器1020管理對大容量存儲器設(shè)備(例如硬盤驅(qū)動器1030)的存取。適合明確體現(xiàn)計算機程序指令和數(shù)據(jù)的大容量存儲器設(shè)備包括所有形式的非易失性存儲器,舉例包括半導體存儲器設(shè)備,例如EPROM,EEPROM和閃速存儲器設(shè)備;磁盤,例如內(nèi)部硬盤和可移除磁盤;磁光盤;以及⑶-ROM盤1040。之前的任何一個可以由專門設(shè)計的ASIC (專用集成電路)補充,或與其合并。網(wǎng)絡(luò)適配器1050管理對網(wǎng)絡(luò)1060的訪問??蛻舳擞嬎銠C還可以包括觸覺設(shè)備1090,例如光標控制設(shè)備、鍵盤等等。光標控制設(shè)備用于客戶端計算機中,以允許用戶在顯示器1080的任意期望位置選擇性地定位光標。另外,光標控制設(shè)備允許用戶選擇多種命令,并輸入控制信號。光標控制設(shè)備包括多個信號生成設(shè)備,用于向系統(tǒng)輸入控制信號。典型地,光標控制設(shè)備可以是鼠標,使用該鼠標的按鍵來生成信號。
[0053]計算機程序可包括計算機指令,該指令包括使得上述系統(tǒng)執(zhí)行上述方法的方式。本發(fā)明例如可以在數(shù)字電子電路中實現(xiàn),或者在計算機硬件、固件、軟件或它們的組合中實現(xiàn)。本發(fā)明的裝置可以在明確體現(xiàn)在機器可讀存儲設(shè)備以由可編程處理器執(zhí)行的計算機程序產(chǎn)品中實現(xiàn);并且本發(fā)明的方法步驟可由可編程處理器執(zhí)行,所述可編程處理器通過操作輸入數(shù)據(jù)及生成輸出來執(zhí)行指令程序以實現(xiàn)本發(fā)明的功能。
[0054]本發(fā)明可有利地實現(xiàn)在一個或多個在可編程系統(tǒng)上可執(zhí)行的計算機程序中,所述可編程系統(tǒng)包括被耦合以從數(shù)據(jù)存儲系統(tǒng)接收數(shù)據(jù)和指令并向其傳送數(shù)據(jù)和指令的至少一個可編程處理器,至少一個輸入設(shè)備,以及至少一個輸出設(shè)備。應(yīng)用程序可以高級過程或面向?qū)ο蟮木幊陶Z言實現(xiàn),或者如果期望的話以匯編語言或機器語言實現(xiàn);在任何情況下,語目可以是編譯語目或解釋語目。
[0055]參考圖1的流程圖,其是現(xiàn)在討論的方法的例子,所述方法模擬在被劃分為多個區(qū)域的3D場景中的至少一個對象的物理行為。
[0056]在步驟100,至少提供拓撲相鄰的第一區(qū)域和第二區(qū)域。實際中,第一和第二區(qū)域是被劃分為多個區(qū)域的3D場景的一部分。術(shù)語“區(qū)域”可指示3D場景中的表面。術(shù)語“區(qū)域”也可以指示3D場景中的體積。第一和第二區(qū)域是拓撲相鄰的,因此3D場景的完整空間被劃分為多個區(qū)域,例如,至少是第一和第二區(qū)域。舉例來說,由3D場景定義的體積可被劃分為拓撲相鄰的一組框(box),例如立方體,從而3D場景定義的完整體積包含于這些盒子中。作為另一個例子,3D場景可包括對象(例如,人、汽車)在其上移動的地面,并且該地面可被劃分為多個相鄰的多邊形區(qū)域。
[0057]3D場景的每個區(qū)域具有其自身的計算資源。實際上,中央處理單元(CPU)的一定比例的計算能力被分配給每個區(qū)域。這個比例對于每個區(qū)域可以都相同也可以有區(qū)別。區(qū)域的計算資源典型地被用于模擬位于區(qū)域中的對象;的確,對象生成計算資源成本,也就是,每個對象要求一段時間的計算資源以便在該區(qū)域內(nèi)執(zhí)行。
[0058]3D場景是描述其中對象(若有的話)之間的空間關(guān)系的空間。場景由至少一個對象組成,并且該對象可以是,但不限于,建模對象或3D建模對象。3D建模對象是3D空間中對象的描述。3D場景是物理世界的模型,其可通過利用坐標描述3D空間中的每個點的幾何學進行數(shù)字化表示。典型的3D場景是模擬的真實世界,其中模擬對象間的真實交互。用語“真實交互”表示所模擬的交互反映了真實世界的交互,例如,諸如力和作用力(重力、接觸力、……)的物理定律;諸如信息流、控制事件……的控制規(guī)律。一個或多個對象在3D場景中發(fā)展并遵守所模擬的真實世界的規(guī)律,例如兩個對象不能彼此交叉。3D場景可執(zhí)行指定的情景,其中情景是一種敘述,其最常描述可預(yù)見的對象的交互。換種說法,情景評估可選擇的可能世界或處境的含義;例如,對汽車上新材料的效果進行分析??梢岳斫獾氖?,情景可以由用戶定義。
[0059]接下來,在步驟110,提供對象。這相當于說選擇一個對象并將其加載到3D場景中。選擇對象可由用戶實施,或者可以由實施本方法的系統(tǒng)進行。選擇的實施在本領(lǐng)域是已知的。加載意味著對象對于實施該方法的系統(tǒng)是可用的。[0060]對象位于第一和第二區(qū)域的一個中,或者既在第一區(qū)域也在第二區(qū)域中。如果對象沒有點在區(qū)域之外,則該對象位于一個區(qū)域中。如果對象有至少一個點位于第一區(qū)域外而在第二區(qū)域內(nèi),則該對象位于兩個區(qū)域中。在對象的至少一個點位于拓撲相鄰的兩個區(qū)域間的公共邊界上的情況下,該對象可被認為僅位于一個區(qū)域內(nèi)或位于兩個區(qū)域中;這是一種約定并例如由用戶配置。對象的點是3D場景中該對象邊界的內(nèi)部或邊界的一部分的任意點。
[0061]接下來,在步驟120,為對象所在的每個區(qū)域計算對象的實例。對象的實例化的實現(xiàn)在本領(lǐng)域是已知的。該實例化可根據(jù)用戶設(shè)置的或自動設(shè)置的參數(shù)來實現(xiàn)。實例化的這些參數(shù)可以是,但不限于,選擇的對象的3D網(wǎng)格的復(fù)雜度,紋理的精密性,3D場景中對象的反射和陰影,以及其他物理參數(shù)和屬性??梢岳斫獾氖?,對象的實例化可在所提供的對象被置于3D場景中時實現(xiàn),即被置于第一區(qū)域和/或第二區(qū)域內(nèi)時實現(xiàn)。
[0062]從而,在步驟120,對象的一個實例被計算,并被定位在與該對象所在相同的區(qū)域;或者對象的兩個實例被計算并且一個實例被定位在該對象所在的每個區(qū)域。
[0063]在對象位于第一和第二區(qū)域的情況下,為每個區(qū)域計算該對象的實例,即計算兩個實例,并且所計算的實例是相同的。術(shù)語“相同”涉及該對象的每一個實例的各自物理狀態(tài)是相同的。這相當于說該實例是對步驟110提供的對象克隆而獲得的。對象的物理狀態(tài)是具有3D場景的該對象的物理參數(shù)的集合。該3D場景從而是虛擬環(huán)境。用語“物理參數(shù)”和用語“物理屬性”在兩個區(qū)域中是相同的。該對象的物理參數(shù)可以是,但不限于,該對象在3D場景中的位置,該對象在3D場景中的速度……。本領(lǐng)域已知的是,對象的物理參數(shù)典型地由經(jīng)典力學定義。
[0064]實際上,對象的物理狀態(tài)可由對象解算機(solver)獲得,該對象解算機是一個軟件,例如計算機程序或作為軟件庫,其獲得問題描述并計算問題解答。通過對象解算機維持對象的物理狀態(tài)是有利的,因為該解算機使用對象的物理狀態(tài)來計算實例。對象的物理狀態(tài)可以由例如,但不限于包括適當梯度和根據(jù)所模擬的物理的單元系統(tǒng)的數(shù)據(jù)向量來表
/Jn ο`
[0065]對象物理行為的模擬可根據(jù)與該對象的實例有關(guān)的物理狀態(tài)來實施。這意味著對象實例的物理參數(shù)集合的物理參數(shù)被用于實施模擬。對象物理行為的模擬是根據(jù)對象的一個或多個具有相同物理狀態(tài)的實例進行的。這有利地允許避免跨越區(qū)域的任何影響,從而可以連續(xù)方式將物理定律應(yīng)用于對象。
[0066]物理狀態(tài)與對象實例有關(guān)意味著在物理狀態(tài)和對象實例之間具有關(guān)聯(lián)性或關(guān)系。典型地,這個關(guān)系可由與包含該實例的區(qū)域關(guān)聯(lián)的解算機處理。將物理狀態(tài)與對象相關(guān)是有利的,因為對象實例間的物理狀態(tài)的交換和共享相對于將物理信息存儲在對象內(nèi)(例如該對象數(shù)據(jù))的情況更加容易。因此,維持所計算的實例相同是有幫助的。此外,解算機不必被同時調(diào)度,因此避免了同步機制的實施困境。
[0067]實際上,信息可以在第一區(qū)域和第二區(qū)域間交換,其至少包括在一個區(qū)域中對象的物理狀態(tài)和另一區(qū)域中對象的存在或缺失。換句話說,信息包括數(shù)據(jù),這些數(shù)據(jù)至少表示第一區(qū)域中對象的物理狀態(tài),并且至少指示另一區(qū)域中對象的存在或缺失。
[0068]第一區(qū)域和第二區(qū)域間的信息交換可通過第一和第二區(qū)域間的異步通信信道實現(xiàn)。異步通信信道可包括異步傳輸,其使起始位和停止位來表明開始位。異步通信信道有利地避免了通信雙方間的同步,并且因而能更易于實施。特別地,解算機不用必須同步調(diào)度。
[0069]第一區(qū)域和第二區(qū)域間的信息交換也可用第一和第二區(qū)域間的可靠通信信道實現(xiàn)。例如,通信信道可由IP協(xié)議定義且傳輸系統(tǒng)由TCP(傳輸控制協(xié)議)協(xié)議定義??梢岳斫獾氖牵煽啃钥捎蒓SI (開放系統(tǒng)互聯(lián))模型的任一層提供。由于區(qū)域是在相同節(jié)點計算并且同步,所以不存在延遲或數(shù)據(jù)丟失,因而數(shù)值噪聲是最小的。
[0070]第一區(qū)域和第二區(qū)域間的信息交換也可用第一和第二區(qū)域間的不可靠通信信道實現(xiàn)。所說的信息傳輸不可靠,是由于所傳輸?shù)男畔⒖赡軄G失、被復(fù)制、被延遲或被亂序傳輸而沒有通知發(fā)送方或接收方。例如,通信信道可由IP協(xié)議定義且傳輸系統(tǒng)由UDP(用戶數(shù)據(jù)報協(xié)議)協(xié)議定義。不可靠通信信道因此可使用UDP協(xié)議??衫斫獾氖?,不可靠性可在OSI (開放系統(tǒng)互聯(lián))模型的任一層提供。使用不可靠通信能有利地節(jié)約帶寬。此外,偶爾的消息丟失導致的局部微擾可以由解算機進行平滑,因而局部微擾幾乎不可見。
[0071]區(qū)域間的信息交換優(yōu)選地可僅與該區(qū)域的相鄰區(qū)域進行。換句話說,消息可僅在拓撲相鄰的區(qū)域間交換。
[0072]此外,區(qū)域總是與其他區(qū)域交換信息而不期望任何確認。這例如顯示在下面對圖7的討論中,其假設(shè)兩個區(qū)域間的信息交換由不可靠的通信信道實現(xiàn)。
[0073]現(xiàn)參照圖5,其舉例說明了被劃分為多個拓撲相鄰的區(qū)域51、52、53、54、55的3D場景50的例子。3D場景表示虛擬世界,該虛擬世界的地面被分割為相鄰的區(qū)域。每個區(qū)域由計算資源管理,例如由CPU提供的計算資源的一部分。計算資源使用適當?shù)慕馑銠C,可連續(xù)實施對位于區(qū)域54中的所有對象60、61、62和63的即時物理狀態(tài)的解算。在這樣的例子中,對象56的物理狀態(tài)可包括該對象在區(qū)域54中的即時笛卡爾積和角位置/速度,從而例如根據(jù)剛體動力學渲染它的行為??衫斫獾氖牵@可推廣到物理學的其他領(lǐng)域。
[0074]回顧圖1,在步驟130,確定對象位于3D場景的什么地方。的確,在步驟110提供的對象可在3D場景中移動,這涉及對象的位置已被修改。取決于對象是否已移動以及對象是否已改變區(qū)域,會考慮多種情況140、150以及160。
[0075]現(xiàn)在參考圖6,其舉例說明了圖5的3D場景的其他視圖,其中對象60、61、62、63已
經(jīng)移動因而具有新位置。
[0076]對象60仍然位于區(qū)域54中。因此對象60被稱為僅在區(qū)域54中發(fā)展。該對象的物理狀態(tài),例如位置和速度,完全由對象60的自身解算機確定。對于普通模擬而言,這是典型狀況。
[0077]對象61在邊界59上具有一點。在這個例子中,對象61被認為僅位于區(qū)域54中??衫斫獾氖?,取決于所選擇的約定,其可能被認為位于區(qū)域54和53上。對于對象60,對象61的物理狀態(tài)完全由它的解算機維持。
[0078]對象62至少有一個點在區(qū)域54中且至少有一個點在區(qū)域55中:因此其位于區(qū)域54和55兩者中。對象62因而沒有完全跨越拓撲相鄰的區(qū)域54和55間的邊界58 ;該對象可被稱為在邊界58上。這種狀況的發(fā)生是因為該對象初始完全位于稱為出發(fā)區(qū)域(區(qū)域54)的第一區(qū)域,由于移動其進入了被稱為到達區(qū)域(區(qū)域55)的第二區(qū)域。這種狀況顯示在描述圖1的情況140的圖2中。
[0079]現(xiàn)在參考圖2,在步驟142,其確定對象位于第一區(qū)域和第二區(qū)域;也就是,該對象位于兩個區(qū)域。這是由對象所在的每個區(qū)域?qū)嵤┑?,即每個區(qū)域均指示對象在其上。[0080]接下來在步驟144,由對象的到達區(qū)域計算對象在對象出發(fā)區(qū)域的存在??衫斫獾氖?,由到達區(qū)域檢測對象在出發(fā)可由與該區(qū)域關(guān)聯(lián)的專用解算機執(zhí)行。該檢測通過檢查對象沒有完全位于到達區(qū)域來執(zhí)行。可理解的是,步驟142和144是緊密相關(guān)的。
[0081]之后在步驟146,表示對象存在于出發(fā)區(qū)域的信息被從到達區(qū)域交換到出發(fā)區(qū)域。換句話說,到達區(qū)域發(fā)送一個或多個消息給出發(fā)區(qū)域表明到達區(qū)域已檢測到該對象存在于到達區(qū)域。由于該檢測是由到達區(qū)域完成的,所以提高了該過程的魯棒性。這在對圖7描述的討論中是明顯的。
[0082]實際上,實例的創(chuàng)建可包括:根據(jù)由第一區(qū)域和第二區(qū)域的各自的兩個解算機傳送的兩個結(jié)果,對對象物理狀態(tài)的調(diào)解(conciliation)。調(diào)解過程有利地允許獲得對象的兩個相同的實例。調(diào)解過程可由對象的每個實例的解算機執(zhí)行。在調(diào)解過程之后,兩個區(qū)域應(yīng)一致地具有他們共享對象的物理狀態(tài)的相同賦值。可理解的是,在到達區(qū)域于該到達區(qū)域創(chuàng)建對象實例之前,優(yōu)選地執(zhí)行該調(diào)解。
[0083]回顧圖6,初始完全位于區(qū)域54中的對象63,由于移動已離開區(qū)域54且現(xiàn)已完全位于區(qū)域55中。因此,對象離開出發(fā)區(qū)域54并完全進入到達區(qū)域55。這個情形在描述圖1的步驟150的圖3中舉例說明。
[0084]現(xiàn)在參考圖3,在步驟152,確定對象不再位于第一區(qū)域或第二區(qū)域中。該確定由對象所在的每個區(qū)域執(zhí)行。
[0085]接下來在步驟154,由對象的到達區(qū)域計算對象在該對象的出發(fā)區(qū)域的缺失??衫斫獾氖?,由到達區(qū)域檢測對象在出發(fā)可由與到達區(qū)域關(guān)聯(lián)的專用解算機執(zhí)行。通過檢查對象是否完全位于到達區(qū)域而進行所述檢測。即,所述檢測檢查對象的每個點是否位于到達區(qū)域中。
[0086]之后在步驟156,表示對象在出發(fā)區(qū)域缺失的信息被從到達區(qū)域交換到出發(fā)區(qū)域。換句話說,到達區(qū)域發(fā)送一個或多個消息給出發(fā)區(qū)域,表明到達區(qū)域已經(jīng)檢測到對象在出發(fā)區(qū)域的缺失。
[0087]接下來在步驟158,出發(fā)區(qū)域刪除在出發(fā)區(qū)域的對象的實例。刪除實例意味著該實例從該區(qū)域(此處為出發(fā)區(qū)域)廢止。因此,實例的廢止是到達區(qū)域向出發(fā)區(qū)域發(fā)送一個或多個消息的結(jié)果,該消息表明步驟154的結(jié)果,即到達區(qū)域已經(jīng)計算出對象在該對象的出發(fā)區(qū)域缺失。
[0088]實際上,實例的廢止可包括在解算機中丟棄對象實例的相應(yīng)物理狀態(tài)。例如,現(xiàn)在參考圖6,到達區(qū)域54中對象63的實例的解算機將丟棄在區(qū)域54中對象63的實例的解算機間交換的任何信息,其中該實例在到達區(qū)域已計算出該對象在出發(fā)區(qū)域缺失后將被丟棄。這有利地允許避免基于不應(yīng)該再存在的對象實例的物理狀態(tài)信息對在到達區(qū)域中對象實例的物理狀態(tài)的修改:確實,向出發(fā)區(qū)域表明其可以刪除該對象的實例的消息的傳輸可能沒有到達,或者被延誤。因此,丟棄提供了一種到達區(qū)域中對象實例的物理屬性的安全機制。另外,丟棄使解算機能夠從計算無用數(shù)據(jù)中解除。
[0089]回顧圖6,對象62初始完全位于區(qū)域54,現(xiàn)在已經(jīng)進入?yún)^(qū)域54并在區(qū)域54和55兩者中。換句話說,對象62穿透了區(qū)域54的一個相鄰區(qū)域55 ;邊界58正被該對象跨越。此情形顯示在描述圖1的步驟160的圖4中。
[0090]現(xiàn)參考圖4,在步驟162,確定對象正在進入作為該對象的到達區(qū)域的區(qū)域中的一個。該確定由對象所在的每個區(qū)域執(zhí)行,即,每個區(qū)域均指示該對象位于其中。
[0091]接下來,在步驟164,由出發(fā)區(qū)域通過檢查對象沒有完全在出發(fā)區(qū)域中而計算對象存在于到達區(qū)域內(nèi)??衫斫獾氖?,出發(fā)區(qū)域檢測對象在到達區(qū)域可由與出發(fā)區(qū)域關(guān)聯(lián)的專用解算機執(zhí)行。通過檢查對象的至少一個點位于到達區(qū)域中來執(zhí)行該檢測。
[0092]接下來,在步驟166,表示對象存在于到達區(qū)域的信息被從出發(fā)區(qū)域交換到到達區(qū)域。換句話說,出發(fā)區(qū)域發(fā)送一個或多個消息給到達區(qū)域,表明出發(fā)區(qū)域已經(jīng)檢測到對象存在于到達區(qū)域中。
[0093]之后在步驟168,到達區(qū)域創(chuàng)建對象的實例,其與出發(fā)區(qū)域中對象實例的狀態(tài)相似。這相當于說計算該對象的相似實例。
[0094]在圖1的過程的這個步驟,對于3D場景的一個或多個對象,已經(jīng)識別出情況140、150 或 160。
[0095]接下來,在步驟170,模擬對象的物理行為,即,根據(jù)與對象的實例有關(guān)的物理狀態(tài)實施該對象的物理行為。優(yōu)選地,可依據(jù)與對象的實例有關(guān)的物理狀態(tài)來執(zhí)行該模擬。
[0096]現(xiàn)參考圖7,其顯示了在兩個區(qū)域54和55 (所述區(qū)域也在圖5和6中描述過)之間的信息交換的例子。在圖7的情景中,對象63從其定位的出發(fā)區(qū)域54移動到其最終完全定位的到達區(qū)域55。從第一到第二區(qū)域的移動以6個連續(xù)序列(A)、(B)、(C)、(D)、(E)、(F)和(G)描述。圖7的左邊部分顯示出發(fā)區(qū)域54看到的對象63的位置,而右邊部分顯示到達區(qū)域55看到的同一對象的位置。人們會注意到到達區(qū)域55將對象63認為是對象74。
[0097]在序列⑷,對象63僅在區(qū)域54中。
[0098]之后,在序列(B),區(qū)域54檢測到對象63定位跨越與其相鄰區(qū)域55的邊界58。區(qū)域54已經(jīng)檢查該對象沒有完全在出發(fā)區(qū)域中。區(qū)域54與到達區(qū)域交換該信息并發(fā)送所謂邊界消息的消息70給區(qū)域55。這個消息70明確通知該對象是跨越邊界的。此外,從出發(fā)區(qū)域到到達區(qū)域的交換信息進一步包括對象在出發(fā)區(qū)域中的物理狀態(tài)。
[0099]接下來在序列(C),區(qū)域55接收邊界消息70。假設(shè)消息傳輸是可靠的,可能發(fā)生兩種情形。這兩種情形如下:
[0100](i)或者區(qū)域55不知曉對象63。在這種情況下,區(qū)域55以在邊界消息70中指定的物理狀態(tài)創(chuàng)建對象63的實例74。
[0101](ii)或者區(qū)域55已將對象63認為是對象74。在這種情況下,區(qū)域55登記所接收到的邊界消息70中包含的特定物理狀態(tài)信息。伴隨地,區(qū)域55檢測對象74定位跨越邊界58,并發(fā)送邊界消息72給區(qū)域54,通知該對象跨越邊界(S卩,區(qū)域55通知區(qū)域54:區(qū)域55已經(jīng)檢測到對象在區(qū)域54中)連同對象74的實例在區(qū)域55中的物理狀態(tài)。
[0102]人們注意到,區(qū)域54在序列(C)再次檢測該對象跨越邊界。可理解的是,當對象跨越邊界時,出發(fā)區(qū)域和到達區(qū)域?qū)⒔粨Q邊界消息70、72。
[0103]然后,在序列(D),區(qū)域55確定對象74不再位于鄰近區(qū)域54內(nèi),并且仍然從區(qū)域54接收有關(guān)該對象的邊界消息。到達區(qū)域55發(fā)送刪除消息75給出發(fā)區(qū)域54。這個刪除消息明確通知該對象不再位于區(qū)域54內(nèi)。
[0104]接下來,在序列(E),區(qū)域54接收刪除消息75并在沒有被破壞時刪除對象63的實例。[0105]接下來,在序列(F),對象63完全位于區(qū)域55,也就是,在區(qū)域55中僅維持對象63的一個實例。
[0106]回到序列(C),現(xiàn)在假設(shè)在出發(fā)區(qū)域54和到達區(qū)域55之間的信息交換是利用不可靠通信信道執(zhí)行的。因而可能會發(fā)生偶然的消息丟失。注意,只要對象被兩個區(qū)域共享,兩個區(qū)域間的消息發(fā)送是重復(fù)過程,那么丟失的消息總是跟隨有相同種類的另一消息,但其具有關(guān)于該對象的較近狀態(tài)數(shù)據(jù):
[0107](i)假設(shè)關(guān)于到達區(qū)域55不知道的對象的邊界消息70丟失,這意味著區(qū)域55在接收到下一個邊界消息時將用額外的延遲實例化相同的對象。
[0108](ii)假設(shè)關(guān)于到達區(qū)域55已知的對象的邊界消息70丟失,這個區(qū)域?qū)㈠e過很少的對象物理狀態(tài)的調(diào)解環(huán)的有用信息,因此產(chǎn)生微擾。然而,這個微擾會由后續(xù)邊界消息的接收而補償??衫斫獾氖牵@種情況與丟失從到達區(qū)域發(fā)送到出發(fā)的邊界消息70的情況相似。
[0109](iii)假設(shè)丟失了刪除消息75,區(qū)域54仍然知道對象63的實例并且因而發(fā)送關(guān)于該對象的消息給區(qū)域55。因此,在下個模擬階段,區(qū)域55會再次發(fā)送刪除給區(qū)域54,這將有希望地刪除該對象。
[0110]然后在序列(G),對象74完全在區(qū)域55中且其物理狀態(tài)僅依賴區(qū)域中的條件。
[0111]根據(jù)本發(fā)明的方法可由實現(xiàn)本發(fā)明的系統(tǒng)連續(xù)地執(zhí)行。特別地,在提供拓撲相鄰的至少第一區(qū)域和第二區(qū)域的步驟以及提供位于一個或兩個區(qū)域中的對象的步驟之后,可以連續(xù)地執(zhí)行步驟。
[0112]因此,消息在區(qū)域間連續(xù)地交換以通知彼此對象進入或離開區(qū)域。有趣地,當檢測到?jīng)]有對象在3D場景中移動時(例如,3D場景中沒有提供對象),該方法可停止;并且當一個或多個對象在3D場景中移動時(例如,在3D場景中已經(jīng)提供了對象),該方法重新啟動。
[0113]所以,在特定區(qū)域創(chuàng)建或刪除對象不是由區(qū)域本身觸發(fā),而是由其相鄰區(qū)域及消息在時間上的冗余所觸發(fā),這一事實保證了協(xié)議的魯棒性。
[0114]本發(fā)明的優(yōu)選實施例已經(jīng)被描述??衫斫獾氖?,不需偏離本發(fā)明的精神和范圍即可進行多種修改。因此,其他實施方式在后續(xù)權(quán)利要求的范圍內(nèi)。
【權(quán)利要求】
1.一種用于模擬在被劃分為多個區(qū)域的3D場景中的至少一個對象的物理行為的計算機實現(xiàn)方法,包括: 提供拓撲相鄰的至少第一區(qū)域和第二區(qū)域,每個區(qū)域具有其自身的計算資源; 提供位于一個或兩個區(qū)域中的對象;以及 模擬所述對象的物理行為,所述模擬是由所述第一區(qū)域和第二區(qū)域中每個的計算資源執(zhí)行的。
2.如權(quán)利要求1所述的計算機實現(xiàn)方法,其中: 在提供對象的步驟,為所述對象所位于的每個區(qū)域計算所述對象的實例,計算出的所述對象的實例是相同的;以及 模擬對象的物理行為的步驟是根據(jù)與所述對象的實例有關(guān)的物理狀態(tài)來執(zhí)行的。
3.如權(quán)利要求2所述的計算機實現(xiàn)方法,在提供步驟之后進一步包括以下步驟: 在所述第一區(qū)域和第二區(qū)域之間交換信息,所交換的信息至少包括所述對象在一個區(qū)域的物理狀態(tài)以及所述對象在另一區(qū)域的存在或缺失。
4.如權(quán)利要求3所述的計算機實現(xiàn)方法,在提供步驟之后進一步包括以下步驟: 確定所述對象位于兩個區(qū)域中; 由兩個區(qū)域中作為所述對象的到達區(qū)域的一個區(qū)域,通過檢查所述對象沒有完全在所述到達區(qū)域內(nèi),來計算所述對象在作為該對象的出發(fā)區(qū)域的另一區(qū)域中的存在; 將表明所述對象在所述出發(fā)區(qū)域中的`存在的信息從所述到達區(qū)域交換到所述出發(fā)區(qū)`域。
5.如權(quán)利要求3-4中任一項所述的計算機實現(xiàn)方法,在提供步驟之后進一步包括以下步驟: 確定所述對象不再位于所述區(qū)域的一個中; 由所述區(qū)域中的作為所述對象的到達區(qū)域的一個區(qū)域,通過檢查所述對象完全在所述到達區(qū)域內(nèi),來計算所述對象在作為該對象的出發(fā)區(qū)域的另一區(qū)域中的缺失; 將表明所述對象在所述出發(fā)區(qū)域中的缺失的信息從所述到達區(qū)域交換到所述出發(fā)區(qū)域;以及 由所述出發(fā)區(qū)域刪除所述對象在所述出發(fā)區(qū)域中的實例。
6.如權(quán)利要求3-5中任一項所述的計算機實現(xiàn)方法,在提供步驟之后進一步包括以下步驟: 確定所述對象正在進入所述區(qū)域中作為該對象的到達區(qū)域的一個區(qū)域; 由作為出發(fā)區(qū)域的另一區(qū)域,通過檢查所述對象沒有完全在所述出發(fā)區(qū)域,來計算所述對象在所述到達區(qū)域的存在; 將表明所述對象在所述到達區(qū)域中的存在的信息從所述出發(fā)區(qū)域交換到所述到達區(qū)域;以及 由所述到達區(qū)域創(chuàng)建所述對象的實例。
7.如權(quán)利要求3-6中任一項所述的計算機實現(xiàn)方法,其中在第一區(qū)域和第二區(qū)域之間交換信息的步驟是通過所述第一區(qū)域和第二區(qū)域之間的同步通信信道執(zhí)行的。
8.如權(quán)利要求3-6中任一項所述的計算機實現(xiàn)方法,其中在第一區(qū)域和第二區(qū)域之間交換信息的步驟是通過所述第一區(qū)域和第二區(qū)域之間的異步通信信道執(zhí)行的。
9.如權(quán)利要求3-8中任一項所述的計算機實現(xiàn)方法,其中在第一區(qū)域和第二區(qū)域之間交換信息的步驟是用在所述第一區(qū)域和第二區(qū)域之間的可靠通信信道執(zhí)行的。
10.如權(quán)利要求3-8中任一項所述的計算機實現(xiàn)方法,其中在第一區(qū)域和第二區(qū)域之間交換信息的步驟是用在所述第一區(qū)域和第二區(qū)域之間的不可靠通信信道執(zhí)行的。
11.如權(quán)利要求10所述的計算機實現(xiàn)方法,其中所述不可靠通信信道使用用戶數(shù)據(jù)報協(xié)議。
12.一種包括被計算機執(zhí)行的指令的計算機程序,所述指令適于執(zhí)行如權(quán)利要求1-11中任一項所述的方法的步驟。
13.一種計算機可讀存儲介質(zhì),其上記錄有根據(jù)權(quán)利要求12所述的計算機程序。
14.一種計算機化系統(tǒng),包括: 存儲系統(tǒng),用于存儲被劃分為多個區(qū)域的三維場景的拓撲相鄰的至少第一區(qū)域和第二區(qū)域,以及用于存儲在一個或兩個區(qū)域中的對象; 處理單元,用 于根據(jù)權(quán)利要求1-11中任一項所述的方法來模擬所述對象的物理行為。
【文檔編號】G06T17/00GK103886638SQ201310757159
【公開日】2014年6月25日 申請日期:2013年12月20日 優(yōu)先權(quán)日:2012年12月21日
【發(fā)明者】P·貝爾曼斯 申請人:達索系統(tǒng)公司