在划分为多个区域的三维场景中对对象的物理行为仿真的制作方法

文档序号:6527393阅读:230来源:国知局
在划分为多个区域的三维场景中对对象的物理行为仿真的制作方法
【专利摘要】本发明指向一种计算机实现方法,用于模拟在被划分为多个区域的3D场景中的至少一个对象的物理行为。该方法包括:至少提供拓扑相邻的第一区域和第二区域,每个区域具有其自身的计算资源;提供位于一个或两个区域中的对象;以及模拟该对象的物理行为,该模拟是由所述第一和第二区域中每一个的计算资源执行的。
【专利说明】在划分为多个区域的三维场景中对对象的物理行为仿真
【技术领域】
[0001]本发明涉及计算机程序和系统领域,特别涉及一种用于模拟在划分为多个区域的3D场景中的至少一个对象的物理行为的方法、系统和程序。
【背景技术】
[0002]大型多用户在线应用程序(MMO)允许大量用户同时使用例如真实世界现象模拟器、沉浸式应用程序等的应用程序。类似地,大型多用户在线游戏(MMOG)允许大量玩家同时进行视频游戏。MMO和MMOG显著地依赖计算机网络,例如,因特网,以允许用户或玩家连接到应用程序或视频游戏。贯穿本说明书的词语“应用程序”和“视频游戏”将被理解为同义词,并且术语MMO和MMOG也不做区别使用。
[0003]MMO涉及复杂的并且大规模的虚拟环境,其被要求呈现尽可能多的细节,尽可能接近实时,以便给用户或游戏玩家提供更真实的体验。MMO被特别设计用于呈现和操纵3D场景,并典型地用于终端用户的计算机上要求交互性、顺序性、实时的3D场景生成的应用程序。在用户与3D场景交互时,计算机足够快地重绘3D呈现,以向用户传达用户正参与的连续的、不间断的、现实的场景。该场景由多个独立的对象构成,当用户与该3D场景交互时可对所述对象进行操纵。因此,MMO涉及很大的数据量,通常要求高数据速率和高数据复杂度以管理实时参与到空间复杂和高细致虚拟环境的大量用户。
[0004]MMO典型地用于在计算机模型中模拟真实世界现象;例如,多体刚性动力学(Mult1-Body Rigid Dynamics)、人的模拟(Human Simulation)、布料模拟(ClothSimulation)、粒子模拟(Particle Simulation)。模拟要求对真实世界现象进行描述的准确数据和算法,例如制造过程中使用的材料的物理属性(强度、弹性等等)和建立过程的模拟和使用产品的模拟的产品。3D CAD/CAM(计算机辅助设计/计算机辅助制造)工具允许建立产品或组成部件的3D呈现。
[0005]MMO和MMOG的主要的和关键的要求是向所连接的用户在任何时间都能提供实时响应,而不管他们的数量,并且不管应用程序的处理和呈现所诱发的计算成本。否则游戏体验质量将下降,在实现协同和分布式设计评审时玩家对应用程序的兴趣降低、限制交互。
[0006]MMO如同MM0G,必须是可扩展的以动态适应不断改变的工作负荷,进而保持实时性能。可扩展性尤其包括能够同时使用应用程序的用户数量,用于计算模拟的计算资源的数量,应用程序所允许的3D场景的对象之间同时交互的数量,等等。对于MM0G,用户的数量、以及所有被包含的动态对象的位置和图形属性都可能变化很大。然而,周围布景是一次全部设定的,并且动态对象的类型和所支持的行为类别是在游戏开始前预定义的。换句话说,MMOG中的3D场景包括多个预先确定的角色,其有力地限制了计算资源的需求,因此提高了可扩展性。
[0007]相反,对于改进的MM0,3D场景的布景和人群类型能够发展和丰富,特别是当应用程序运行时。的确,MMO针对实时世界现象,其中对象的行为是动态的并且排除预定义的行为类别。因此,MMO中的3D布景不能像MMOG那样使用预定义的角色。[0008]可扩展性的问题由MMOG解决了。这样的解决方法和技术包括分片和分区。分片在于克隆世界(部分的或整体的)并且招待新登录用户以应付工作负荷增长,但在分片之间没有可能的交互。因此,分片自然不能支持虚拟世界空间和人群的无限扩展;碎片的确具有由分配给他们的处理资源的性能指示的物理容量上限(ceiling)。
[0009]分区依赖于在所谓区域中虚拟世界空间的划分,他们中每一个承担计算资源的责任。对象/用户可以进行逐区域的导航。然后,相关联的计算资源通信网络上的专用消息以集成在他们的计算模型中的这些移动对象。
[0010]然而,在MMOG中,区域与其他区域非常独立地发展而成:动态对象简单地从区域“A”的若干预定义通道位置中的一个“远距传输”到区域“B”的若干位置中的另一个。优化负载平衡的问题是通过以下解决的:通过使用障碍物或实体墙围住区域,通过限制区域内部通道位置的数量,通过限制任意时间在每一区域内对象的数量,以及通过用调整过的静态布景(d6COr)来填充区域。在某种程度上,虚拟环境的不同区域被定制以适应实时需求。
[0011]然而,对于MMO的改进的物理模拟,这些简化不被接受。的确,虚拟环境,特别是在模拟真实世界现象时,不能支持人工围起布景,这限制了所模拟的真实世界定制化的可能性。特别是,所有对象应该能够在任意点跨越两个或多个区域间的边界,并且必须实现该跨越以保持对象的状态连续性(例如,位置和速度)。此外,相邻区域通常通过他们在他们的公共边界共享的对象而具有相互交互(例如,接触压力),并且因此例如“远距传输”的机制对于实际模拟而言效率较差。此外,公共物理行为的模拟要求根据所考虑的可能是非常复杂的物理规则在数据区域之间进行连续且重复性的通信。
[0012]在这个环境中,仍旧需要一种改进的方法、计算机程序和系统,用以提供在划分为多个区域的3D场景中对对象的物理行为的可扩展的、无缝并且有效的实时模拟。

【发明内容】

[0013]根据一个方面,本发明从而提供一种计算机实现的方法,用于模拟划分为多个区域的3D场景中的至少一个对象的物理行为。该方法包括:
[0014]-提供拓扑相邻的至少第一区域和第二区域,每个区域具有其自身的计算资源;
[0015]-提供位于一个或两个区域中的对象;以及
[0016]-模拟对象的物理行为,该模拟是由所述第一和第二区域中的每个的计算资源实现的。
[0017]该方法可包括以下步骤的一个或多个:
[0018]-在提供对象的步骤,为对象所位于的每个区域计算该对象的实例,计算出的所述对象的实例是相同的;以及模拟对象的物理行为的步骤是根据与该对象的实例有关的物理状态来执行的。
[0019]-在提供步骤之后,在第一区域和第二区域之间交换信息的步骤,所交换的信息至少包括对象在一个区域的物理状态以及对象在另一区域的存在或缺失。
[0020]-在提供步骤之后,确定对象位于两个区域的步骤;由两个区域中作为对象的到达区域的一个区域,通过检查该对象没有完全在到达区域中,来计算该对象在作为该对象的出发区域的另一区域中的存在;将表明对象在出发区域中的存在的信息从到达区域交换到出发区域。[0021]-在提供步骤之后,确定对象不再位于所述区域的一个中的步骤;由作为对象的到达区域的一个区域,通过检查该对象完全在到达区域内,来计算该对象在作为该对象的出发区域的另一区域中的缺失;将表明对象在出发区域中的缺失的信息从到达区域交换到出发区域;以及由出发区域删除对象在该出发区域中的实例;
[0022]-在提供步骤之后,确定对象正在进入作为该对象的到达区域的一个区域的步骤;由作为出发区域的另一区域,通过检查该对象没有完全在出发区域中,来计算该对象在出发区域中的存在;将表明该对象在出发区域中的存在的信息从出发区域交换到到达区域;以及由到达区域创建该对象的实例;
[0023]-在第一区域和第二区域之间交换信息的步骤是通过第一区域和第二区域之间的同步通信信道执行的;
[0024]-在第一区域和第二区域之间交换信息的步骤是通过第一区域和第二区域之间的异步通信信道执行的;
[0025]-在第一区域和第二区域之间交换信息的步骤是用在第一区域和第二区域之间的可靠通信信道执行的;
[0026]-在第一区域和第二区域之间交换信息的步骤是通过第一区域和第二区域之间的不可靠通信信道执行的;
[0027]-不可靠通信信道使用用户数据报协议。
[0028]本发明进一步提出了一种包括指令的计算机程序,计算机程序包括由计算机执行的指令,该指令适于执行本发明的方法的步骤。
[0029]本发明进一步提出了一种计算机可读存储介质,其上记录有前述计算机程序。
[0030]本发明进一步提出了一种计算机化系统,包括存储系统,用于存储被分割为多个区域的三维场景的拓扑相邻的至少第一区域和第二区域,以及用于存储在一个或两个区域中的对象;处理单元,用于根据本发明的方法模拟对象的物理行为。
【专利附图】

【附图说明】
[0031]通过非限制性的例子并参考相关附图,对本发明的实施例进行描述,其中:
[0032]图1示出方法的示例的流程图;
[0033]图2-4描述图1的步骤140、150、160的示例;
[0034]图5示出被划分为多个区域的3D场景的示例;
[0035]图6是图5的3D场景的另一视图;
[0036]图7示出在两个区域之间交换信息的示例;
[0037]图8示出计算化系统的示例。
【具体实施方式】
[0038]提出一种计算机实现方法,用于模拟在被划分为多个区域的三维(3D)场景中的至少一个对象的物理行为。该3D场景可模拟真实世界环境。该3D场景包括一个或多个对象,例如,3D建模对象。该方法包括提供位于一个或两个区域中的对象。该方法进一步包括模拟对象的物理行为。物理行为意味着对象在3D场景中如何与(如果有的话)其他对象交互。对对象物理行为的模拟由上述第一和第二区域中的每一个的计算资源执行。因此,对象所在的每个区域的计算资源对模拟起作用。
[0039]这样的方法改进了对3D场景中对象的物理行为的模拟,而不强加对3D场景的特别定制或对其角色的约束。的确,由对象所在的一个或多个区域负责模拟,从而以连续的方式也就是无缝的方式实现从第一区域跨越到第二区域。结果是,对象所在的区域中的一个对模拟没有影响,因此物理定律可连续地应用于该对象。模拟因此而被改进;也就是说,模拟更加真实。
[0040]该方法是计算机实现的。这意味着该方法的步骤(或基本上所有步骤)由至少一个计算机或定制系统执行。在示例中,该方法的至少一些步骤的触发可通过用户-计算机的交互执行。所要求的用户-计算机交互的水平可依赖于预知的自动性的水平,并且与实现用户的希望的需求进行平衡。在示例中,这个水平可是用户定义的和/或预定义的。
[0041]例如,提供位于一个或两个区域中的对象的步骤可基于用户选择来执行。用户可以经由触觉设备来执行选择,所述触觉设备例如是键盘、鼠标、定位笔(stylus)等。例如,在两键鼠标中,左键可用于在场景列表中选择场景。系统也可以缺省识别对象并将其定位在3D场景的一个或多个区域中,即,提供及定位的执行可不需要用户选择。
[0042]本方法的计算机实现的典型示例是由包括存储器和处理器的系统执行该方法。存储数据库的存储器仅是适合这种存储的任意硬件。处理器也可称为是计算单元。这种系统提供在真实世界模拟应用程序背景下对3D场景的可扩展的、无缝的、并且有效的实时模拟。该系统可进一步包括适宜显示3D场景的图形用户界面(GUI)、第一和第二区域、以及3D场景中的一个或多个对象。该⑶I与存储器和处理器耦合。
[0043]“数据库”表示组织起来用于搜索和取回的任意数据(即信息)收集。当在存储器上存储时,数据库允许通过计算机的快速搜索和取回。数据库被真正结构化以方便连同各种数据处理操作对数据进行存储、取回、修改和删除。数据库可由文件或文件集组成,其可分割为记录,每个 记录包括一个或多个字段。字段是数据存储的基本单元。用户可以主要通过查询取回数据。使用关键字和分类命令,根据正使用的数据库管理系统的规则,用户能快速对多个记录中的字段进行搜索、重排、分组以及选择,从而对数据的特定组合取回或创建?艮告。
[0044]在该方法的情况下,数据库能存储被划分为多个区域的三维场景,例如拓扑相邻的第一和第二区域。数据库可进一步存储一个或多个对象,且他们可独立于场景存储。数据库可进一步包括包含由系统执行的指令的计算机程序。所述指令适于实现本方法的步骤。
[0045]该方法一般操纵对象。对象是由数据库中存储的数据定义的任意对象。通过扩展,用语“对象”指数据本身。根据系统类型,对象可由不同种类的数据定义。系统可以是CAD系统、CAE系统、CAM系统和/或PLM系统的任意组合。在那些不同系统中,建模的对象通过相应数据定义。人们可以相应谈及CAD对象、PLM对象、CAE对象、CAM对象、CAD数据、PLM数据、CAM数据、CAE数据。然而,这些系统不排斥其它的,因为对象可由对应于这些系统的任意组合的数据定义。系统因此可以既是CAD系统又是PLM系统,从下面提供的这些系统的定义可明显看出。系统也可以是MMO系统或MMOG系统,其中基于用户行为操纵对象。
[0046]对于CAD系统,这意味着至少适合基于建模对象的图形表示设计该建模对象的任何系统,例如CATIA。在此情况下,定义建模对象的数据包括允许表现该建模对象的数据。CAD系统例如可提供利用边或线(在特定情况下利用面或表面)的CAD建模对象的表示。线、边或表面可用不同方式表示,例如,非均匀有理B样条(NURBS)。特别的,CAD文件包括规范,根据该规范可生成几何结构,其反过来允许生成表示。建模对象的规范可存储在单个或多个CAD文件中。CAD系统中表示建模对象的文件的典型大小在每部分一兆字节的范围内。并且建模对象典型地可以是数千个部分的组合。
[0047]在CAD的环境中,建模对象典型的可以是3D建模对象,例如,表示例如一部分或多部分的组合的产品,或者可以是产品的组合。对于“3D建模对象”,它表示由允许其3D表示的数据所建模的任意对象。3D表示允许全角度观察该部分。例如,在以3D表示3D建模对象时,可围绕其任意轴线处理和转动所述3D建模对象,或围绕显示该表示的屏幕中的任意轴线处理和转动所述3D建模对象。这尤其排除了 2D图标,其不是3D建模的。3D表示的显示方便了设计(即,增加了设计者统计上完成其工作的速度)。因为产品设计是制造过程的一部分,所以这加速了工业中的制造过程。
[0048]CAD系统可基于历史。在这种情况下,建模对象被通过包含几何特征历史的数据进一步定义。建模对象确实可通过自然人(即,设计者/用户)使用标准建模特征(例如,突出、卷曲、切口和/或圆等)和/或标准表面特征(例如,扫描、混合、提高、填充、变形、平滑和/或等等)进行设计。很多支持这种建模功能的CAD系统是基于历史的系统。这意味着设计特征的创建历史典型地通过连接所述几何特征的非循环数据流以及通过输入和输出链接进行保存。基于历史的建模范例自80年代初就已众所周知。建模对象由两个持久性数据表示进行描述:历史和B-rep(即边界表示法)。B-rep是历史中定义的计算的结果。当建模对象被呈现时在计算机屏幕上显示的部分的形状是B-rep(的镶嵌)。该部分的历史是设计意图。基本上,历史收集建模对象所经受的操作的信息。B-rep可与历史一起保存,从而更易于显示复杂部分。历史可与B-rep —起保存,以允许根据设计意图对所述部分进行设计改变。
[0049]对于PLM系统,其意味着适合管理表示物理制造产品的建模对象的任意系统。在PLM系统中,建模对象因此被适合制造物理对象的数据定义。典型地,这些可以是尺寸值和/或容差值。对于对象的正确制造,具有这些值确实更好。
[0050]对于CAE系统,其意味着适合分析建模对象的物理行为的任意系统。在CAE系统中,建模对象因此由适合分析这种行为的数据定义。典型地,这可以是行为特征集合。例如,对应于门的建模对象可以由指示该门绕轴线旋转的数据来定义。
[0051]图8示出了客户端计算机系统,例如是用户工作站。
[0052]客户端计算机包括:中央处理单元(CPU) 1010,其连接到内部通信总线1000 ;随机存取存储器(RAM) 1070,其也连接到总线。客户端计算机还设置有图形处理单元(GPU) 1110,其与连接到总线的视频随机存取存储器1100关联。视频RAMl 100在本领域中已知作为帧缓冲器。大容量存储设备控制器1020管理对大容量存储器设备(例如硬盘驱动器1030)的存取。适合明确体现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,举例包括半导体存储器设备,例如EPROM,EEPROM和闪速存储器设备;磁盘,例如内部硬盘和可移除磁盘;磁光盘;以及⑶-ROM盘1040。之前的任何一个可以由专门设计的ASIC (专用集成电路)补充,或与其合并。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等等。光标控制设备用于客户端计算机中,以允许用户在显示器1080的任意期望位置选择性地定位光标。另外,光标控制设备允许用户选择多种命令,并输入控制信号。光标控制设备包括多个信号生成设备,用于向系统输入控制信号。典型地,光标控制设备可以是鼠标,使用该鼠标的按键来生成信号。
[0053]计算机程序可包括计算机指令,该指令包括使得上述系统执行上述方法的方式。本发明例如可以在数字电子电路中实现,或者在计算机硬件、固件、软件或它们的组合中实现。本发明的装置可以在明确体现在机器可读存储设备以由可编程处理器执行的计算机程序产品中实现;并且本发明的方法步骤可由可编程处理器执行,所述可编程处理器通过操作输入数据及生成输出来执行指令程序以实现本发明的功能。
[0054]本发明可有利地实现在一个或多个在可编程系统上可执行的计算机程序中,所述可编程系统包括被耦合以从数据存储系统接收数据和指令并向其传送数据和指令的至少一个可编程处理器,至少一个输入设备,以及至少一个输出设备。应用程序可以高级过程或面向对象的编程语言实现,或者如果期望的话以汇编语言或机器语言实现;在任何情况下,语目可以是编译语目或解释语目。
[0055]参考图1的流程图,其是现在讨论的方法的例子,所述方法模拟在被划分为多个区域的3D场景中的至少一个对象的物理行为。
[0056]在步骤100,至少提供拓扑相邻的第一区域和第二区域。实际中,第一和第二区域是被划分为多个区域的3D场景的一部分。术语“区域”可指示3D场景中的表面。术语“区域”也可以指示3D场景中的体积。第一和第二区域是拓扑相邻的,因此3D场景的完整空间被划分为多个区域,例如,至少是第一和第二区域。举例来说,由3D场景定义的体积可被划分为拓扑相邻的一组框(box),例如立方体,从而3D场景定义的完整体积包含于这些盒子中。作为另一个例子,3D场景可包括对象(例如,人、汽车)在其上移动的地面,并且该地面可被划分为多个相邻的多边形区域。
[0057]3D场景的每个区域具有其自身的计算资源。实际上,中央处理单元(CPU)的一定比例的计算能力被分配给每个区域。这个比例对于每个区域可以都相同也可以有区别。区域的计算资源典型地被用于模拟位于区域中的对象;的确,对象生成计算资源成本,也就是,每个对象要求一段时间的计算资源以便在该区域内执行。
[0058]3D场景是描述其中对象(若有的话)之间的空间关系的空间。场景由至少一个对象组成,并且该对象可以是,但不限于,建模对象或3D建模对象。3D建模对象是3D空间中对象的描述。3D场景是物理世界的模型,其可通过利用坐标描述3D空间中的每个点的几何学进行数字化表示。典型的3D场景是模拟的真实世界,其中模拟对象间的真实交互。用语“真实交互”表示所模拟的交互反映了真实世界的交互,例如,诸如力和作用力(重力、接触力、……)的物理定律;诸如信息流、控制事件……的控制规律。一个或多个对象在3D场景中发展并遵守所模拟的真实世界的规律,例如两个对象不能彼此交叉。3D场景可执行指定的情景,其中情景是一种叙述,其最常描述可预见的对象的交互。换种说法,情景评估可选择的可能世界或处境的含义;例如,对汽车上新材料的效果进行分析。可以理解的是,情景可以由用户定义。
[0059]接下来,在步骤110,提供对象。这相当于说选择一个对象并将其加载到3D场景中。选择对象可由用户实施,或者可以由实施本方法的系统进行。选择的实施在本领域是已知的。加载意味着对象对于实施该方法的系统是可用的。[0060]对象位于第一和第二区域的一个中,或者既在第一区域也在第二区域中。如果对象没有点在区域之外,则该对象位于一个区域中。如果对象有至少一个点位于第一区域外而在第二区域内,则该对象位于两个区域中。在对象的至少一个点位于拓扑相邻的两个区域间的公共边界上的情况下,该对象可被认为仅位于一个区域内或位于两个区域中;这是一种约定并例如由用户配置。对象的点是3D场景中该对象边界的内部或边界的一部分的任意点。
[0061]接下来,在步骤120,为对象所在的每个区域计算对象的实例。对象的实例化的实现在本领域是已知的。该实例化可根据用户设置的或自动设置的参数来实现。实例化的这些参数可以是,但不限于,选择的对象的3D网格的复杂度,纹理的精密性,3D场景中对象的反射和阴影,以及其他物理参数和属性。可以理解的是,对象的实例化可在所提供的对象被置于3D场景中时实现,即被置于第一区域和/或第二区域内时实现。
[0062]从而,在步骤120,对象的一个实例被计算,并被定位在与该对象所在相同的区域;或者对象的两个实例被计算并且一个实例被定位在该对象所在的每个区域。
[0063]在对象位于第一和第二区域的情况下,为每个区域计算该对象的实例,即计算两个实例,并且所计算的实例是相同的。术语“相同”涉及该对象的每一个实例的各自物理状态是相同的。这相当于说该实例是对步骤110提供的对象克隆而获得的。对象的物理状态是具有3D场景的该对象的物理参数的集合。该3D场景从而是虚拟环境。用语“物理参数”和用语“物理属性”在两个区域中是相同的。该对象的物理参数可以是,但不限于,该对象在3D场景中的位置,该对象在3D场景中的速度……。本领域已知的是,对象的物理参数典型地由经典力学定义。
[0064]实际上,对象的物理状态可由对象解算机(solver)获得,该对象解算机是一个软件,例如计算机程序或作为软件库,其获得问题描述并计算问题解答。通过对象解算机维持对象的物理状态是有利的,因为该解算机使用对象的物理状态来计算实例。对象的物理状态可以由例如,但不限于包括适当梯度和根据所模拟的物理的单元系统的数据向量来表
/Jn ο`
[0065]对象物理行为的模拟可根据与该对象的实例有关的物理状态来实施。这意味着对象实例的物理参数集合的物理参数被用于实施模拟。对象物理行为的模拟是根据对象的一个或多个具有相同物理状态的实例进行的。这有利地允许避免跨越区域的任何影响,从而可以连续方式将物理定律应用于对象。
[0066]物理状态与对象实例有关意味着在物理状态和对象实例之间具有关联性或关系。典型地,这个关系可由与包含该实例的区域关联的解算机处理。将物理状态与对象相关是有利的,因为对象实例间的物理状态的交换和共享相对于将物理信息存储在对象内(例如该对象数据)的情况更加容易。因此,维持所计算的实例相同是有帮助的。此外,解算机不必被同时调度,因此避免了同步机制的实施困境。
[0067]实际上,信息可以在第一区域和第二区域间交换,其至少包括在一个区域中对象的物理状态和另一区域中对象的存在或缺失。换句话说,信息包括数据,这些数据至少表示第一区域中对象的物理状态,并且至少指示另一区域中对象的存在或缺失。
[0068]第一区域和第二区域间的信息交换可通过第一和第二区域间的异步通信信道实现。异步通信信道可包括异步传输,其使起始位和停止位来表明开始位。异步通信信道有利地避免了通信双方间的同步,并且因而能更易于实施。特别地,解算机不用必须同步调度。
[0069]第一区域和第二区域间的信息交换也可用第一和第二区域间的可靠通信信道实现。例如,通信信道可由IP协议定义且传输系统由TCP(传输控制协议)协议定义。可以理解的是,可靠性可由OSI (开放系统互联)模型的任一层提供。由于区域是在相同节点计算并且同步,所以不存在延迟或数据丢失,因而数值噪声是最小的。
[0070]第一区域和第二区域间的信息交换也可用第一和第二区域间的不可靠通信信道实现。所说的信息传输不可靠,是由于所传输的信息可能丢失、被复制、被延迟或被乱序传输而没有通知发送方或接收方。例如,通信信道可由IP协议定义且传输系统由UDP(用户数据报协议)协议定义。不可靠通信信道因此可使用UDP协议。可理解的是,不可靠性可在OSI (开放系统互联)模型的任一层提供。使用不可靠通信能有利地节约带宽。此外,偶尔的消息丢失导致的局部微扰可以由解算机进行平滑,因而局部微扰几乎不可见。
[0071]区域间的信息交换优选地可仅与该区域的相邻区域进行。换句话说,消息可仅在拓扑相邻的区域间交换。
[0072]此外,区域总是与其他区域交换信息而不期望任何确认。这例如显示在下面对图7的讨论中,其假设两个区域间的信息交换由不可靠的通信信道实现。
[0073]现参照图5,其举例说明了被划分为多个拓扑相邻的区域51、52、53、54、55的3D场景50的例子。3D场景表示虚拟世界,该虚拟世界的地面被分割为相邻的区域。每个区域由计算资源管理,例如由CPU提供的计算资源的一部分。计算资源使用适当的解算机,可连续实施对位于区域54中的所有对象60、61、62和63的即时物理状态的解算。在这样的例子中,对象56的物理状态可包括该对象在区域54中的即时笛卡尔积和角位置/速度,从而例如根据刚体动力学渲染它的行为。可理解的是,这可推广到物理学的其他领域。
[0074]回顾图1,在步骤130,确定对象位于3D场景的什么地方。的确,在步骤110提供的对象可在3D场景中移动,这涉及对象的位置已被修改。取决于对象是否已移动以及对象是否已改变区域,会考虑多种情况140、150以及160。
[0075]现在参考图6,其举例说明了图5的3D场景的其他视图,其中对象60、61、62、63已
经移动因而具有新位置。
[0076]对象60仍然位于区域54中。因此对象60被称为仅在区域54中发展。该对象的物理状态,例如位置和速度,完全由对象60的自身解算机确定。对于普通模拟而言,这是典型状况。
[0077]对象61在边界59上具有一点。在这个例子中,对象61被认为仅位于区域54中。可理解的是,取决于所选择的约定,其可能被认为位于区域54和53上。对于对象60,对象61的物理状态完全由它的解算机维持。
[0078]对象62至少有一个点在区域54中且至少有一个点在区域55中:因此其位于区域54和55两者中。对象62因而没有完全跨越拓扑相邻的区域54和55间的边界58 ;该对象可被称为在边界58上。这种状况的发生是因为该对象初始完全位于称为出发区域(区域54)的第一区域,由于移动其进入了被称为到达区域(区域55)的第二区域。这种状况显示在描述图1的情况140的图2中。
[0079]现在参考图2,在步骤142,其确定对象位于第一区域和第二区域;也就是,该对象位于两个区域。这是由对象所在的每个区域实施的,即每个区域均指示对象在其上。[0080]接下来在步骤144,由对象的到达区域计算对象在对象出发区域的存在。可理解的是,由到达区域检测对象在出发可由与该区域关联的专用解算机执行。该检测通过检查对象没有完全位于到达区域来执行。可理解的是,步骤142和144是紧密相关的。
[0081]之后在步骤146,表示对象存在于出发区域的信息被从到达区域交换到出发区域。换句话说,到达区域发送一个或多个消息给出发区域表明到达区域已检测到该对象存在于到达区域。由于该检测是由到达区域完成的,所以提高了该过程的鲁棒性。这在对图7描述的讨论中是明显的。
[0082]实际上,实例的创建可包括:根据由第一区域和第二区域的各自的两个解算机传送的两个结果,对对象物理状态的调解(conciliation)。调解过程有利地允许获得对象的两个相同的实例。调解过程可由对象的每个实例的解算机执行。在调解过程之后,两个区域应一致地具有他们共享对象的物理状态的相同赋值。可理解的是,在到达区域于该到达区域创建对象实例之前,优选地执行该调解。
[0083]回顾图6,初始完全位于区域54中的对象63,由于移动已离开区域54且现已完全位于区域55中。因此,对象离开出发区域54并完全进入到达区域55。这个情形在描述图1的步骤150的图3中举例说明。
[0084]现在参考图3,在步骤152,确定对象不再位于第一区域或第二区域中。该确定由对象所在的每个区域执行。
[0085]接下来在步骤154,由对象的到达区域计算对象在该对象的出发区域的缺失。可理解的是,由到达区域检测对象在出发可由与到达区域关联的专用解算机执行。通过检查对象是否完全位于到达区域而进行所述检测。即,所述检测检查对象的每个点是否位于到达区域中。
[0086]之后在步骤156,表示对象在出发区域缺失的信息被从到达区域交换到出发区域。换句话说,到达区域发送一个或多个消息给出发区域,表明到达区域已经检测到对象在出发区域的缺失。
[0087]接下来在步骤158,出发区域删除在出发区域的对象的实例。删除实例意味着该实例从该区域(此处为出发区域)废止。因此,实例的废止是到达区域向出发区域发送一个或多个消息的结果,该消息表明步骤154的结果,即到达区域已经计算出对象在该对象的出发区域缺失。
[0088]实际上,实例的废止可包括在解算机中丢弃对象实例的相应物理状态。例如,现在参考图6,到达区域54中对象63的实例的解算机将丢弃在区域54中对象63的实例的解算机间交换的任何信息,其中该实例在到达区域已计算出该对象在出发区域缺失后将被丢弃。这有利地允许避免基于不应该再存在的对象实例的物理状态信息对在到达区域中对象实例的物理状态的修改:确实,向出发区域表明其可以删除该对象的实例的消息的传输可能没有到达,或者被延误。因此,丢弃提供了一种到达区域中对象实例的物理属性的安全机制。另外,丢弃使解算机能够从计算无用数据中解除。
[0089]回顾图6,对象62初始完全位于区域54,现在已经进入区域54并在区域54和55两者中。换句话说,对象62穿透了区域54的一个相邻区域55 ;边界58正被该对象跨越。此情形显示在描述图1的步骤160的图4中。
[0090]现参考图4,在步骤162,确定对象正在进入作为该对象的到达区域的区域中的一个。该确定由对象所在的每个区域执行,即,每个区域均指示该对象位于其中。
[0091]接下来,在步骤164,由出发区域通过检查对象没有完全在出发区域中而计算对象存在于到达区域内。可理解的是,出发区域检测对象在到达区域可由与出发区域关联的专用解算机执行。通过检查对象的至少一个点位于到达区域中来执行该检测。
[0092]接下来,在步骤166,表示对象存在于到达区域的信息被从出发区域交换到到达区域。换句话说,出发区域发送一个或多个消息给到达区域,表明出发区域已经检测到对象存在于到达区域中。
[0093]之后在步骤168,到达区域创建对象的实例,其与出发区域中对象实例的状态相似。这相当于说计算该对象的相似实例。
[0094]在图1的过程的这个步骤,对于3D场景的一个或多个对象,已经识别出情况140、150 或 160。
[0095]接下来,在步骤170,模拟对象的物理行为,即,根据与对象的实例有关的物理状态实施该对象的物理行为。优选地,可依据与对象的实例有关的物理状态来执行该模拟。
[0096]现参考图7,其显示了在两个区域54和55 (所述区域也在图5和6中描述过)之间的信息交换的例子。在图7的情景中,对象63从其定位的出发区域54移动到其最终完全定位的到达区域55。从第一到第二区域的移动以6个连续序列(A)、(B)、(C)、(D)、(E)、(F)和(G)描述。图7的左边部分显示出发区域54看到的对象63的位置,而右边部分显示到达区域55看到的同一对象的位置。人们会注意到到达区域55将对象63认为是对象74。
[0097]在序列⑷,对象63仅在区域54中。
[0098]之后,在序列(B),区域54检测到对象63定位跨越与其相邻区域55的边界58。区域54已经检查该对象没有完全在出发区域中。区域54与到达区域交换该信息并发送所谓边界消息的消息70给区域55。这个消息70明确通知该对象是跨越边界的。此外,从出发区域到到达区域的交换信息进一步包括对象在出发区域中的物理状态。
[0099]接下来在序列(C),区域55接收边界消息70。假设消息传输是可靠的,可能发生两种情形。这两种情形如下:
[0100](i)或者区域55不知晓对象63。在这种情况下,区域55以在边界消息70中指定的物理状态创建对象63的实例74。
[0101](ii)或者区域55已将对象63认为是对象74。在这种情况下,区域55登记所接收到的边界消息70中包含的特定物理状态信息。伴随地,区域55检测对象74定位跨越边界58,并发送边界消息72给区域54,通知该对象跨越边界(S卩,区域55通知区域54:区域55已经检测到对象在区域54中)连同对象74的实例在区域55中的物理状态。
[0102]人们注意到,区域54在序列(C)再次检测该对象跨越边界。可理解的是,当对象跨越边界时,出发区域和到达区域将交换边界消息70、72。
[0103]然后,在序列(D),区域55确定对象74不再位于邻近区域54内,并且仍然从区域54接收有关该对象的边界消息。到达区域55发送删除消息75给出发区域54。这个删除消息明确通知该对象不再位于区域54内。
[0104]接下来,在序列(E),区域54接收删除消息75并在没有被破坏时删除对象63的实例。[0105]接下来,在序列(F),对象63完全位于区域55,也就是,在区域55中仅维持对象63的一个实例。
[0106]回到序列(C),现在假设在出发区域54和到达区域55之间的信息交换是利用不可靠通信信道执行的。因而可能会发生偶然的消息丢失。注意,只要对象被两个区域共享,两个区域间的消息发送是重复过程,那么丢失的消息总是跟随有相同种类的另一消息,但其具有关于该对象的较近状态数据:
[0107](i)假设关于到达区域55不知道的对象的边界消息70丢失,这意味着区域55在接收到下一个边界消息时将用额外的延迟实例化相同的对象。
[0108](ii)假设关于到达区域55已知的对象的边界消息70丢失,这个区域将错过很少的对象物理状态的调解环的有用信息,因此产生微扰。然而,这个微扰会由后续边界消息的接收而补偿。可理解的是,这种情况与丢失从到达区域发送到出发的边界消息70的情况相似。
[0109](iii)假设丢失了删除消息75,区域54仍然知道对象63的实例并且因而发送关于该对象的消息给区域55。因此,在下个模拟阶段,区域55会再次发送删除给区域54,这将有希望地删除该对象。
[0110]然后在序列(G),对象74完全在区域55中且其物理状态仅依赖区域中的条件。
[0111]根据本发明的方法可由实现本发明的系统连续地执行。特别地,在提供拓扑相邻的至少第一区域和第二区域的步骤以及提供位于一个或两个区域中的对象的步骤之后,可以连续地执行步骤。
[0112]因此,消息在区域间连续地交换以通知彼此对象进入或离开区域。有趣地,当检测到没有对象在3D场景中移动时(例如,3D场景中没有提供对象),该方法可停止;并且当一个或多个对象在3D场景中移动时(例如,在3D场景中已经提供了对象),该方法重新启动。
[0113]所以,在特定区域创建或删除对象不是由区域本身触发,而是由其相邻区域及消息在时间上的冗余所触发,这一事实保证了协议的鲁棒性。
[0114]本发明的优选实施例已经被描述。可理解的是,不需偏离本发明的精神和范围即可进行多种修改。因此,其他实施方式在后续权利要求的范围内。
【权利要求】
1.一种用于模拟在被划分为多个区域的3D场景中的至少一个对象的物理行为的计算机实现方法,包括: 提供拓扑相邻的至少第一区域和第二区域,每个区域具有其自身的计算资源; 提供位于一个或两个区域中的对象;以及 模拟所述对象的物理行为,所述模拟是由所述第一区域和第二区域中每个的计算资源执行的。
2.如权利要求1所述的计算机实现方法,其中: 在提供对象的步骤,为所述对象所位于的每个区域计算所述对象的实例,计算出的所述对象的实例是相同的;以及 模拟对象的物理行为的步骤是根据与所述对象的实例有关的物理状态来执行的。
3.如权利要求2所述的计算机实现方法,在提供步骤之后进一步包括以下步骤: 在所述第一区域和第二区域之间交换信息,所交换的信息至少包括所述对象在一个区域的物理状态以及所述对象在另一区域的存在或缺失。
4.如权利要求3所述的计算机实现方法,在提供步骤之后进一步包括以下步骤: 确定所述对象位于两个区域中; 由两个区域中作为所述对象的到达区域的一个区域,通过检查所述对象没有完全在所述到达区域内,来计算所述对象在作为该对象的出发区域的另一区域中的存在; 将表明所述对象在所述出发区域中的`存在的信息从所述到达区域交换到所述出发区`域。
5.如权利要求3-4中任一项所述的计算机实现方法,在提供步骤之后进一步包括以下步骤: 确定所述对象不再位于所述区域的一个中; 由所述区域中的作为所述对象的到达区域的一个区域,通过检查所述对象完全在所述到达区域内,来计算所述对象在作为该对象的出发区域的另一区域中的缺失; 将表明所述对象在所述出发区域中的缺失的信息从所述到达区域交换到所述出发区域;以及 由所述出发区域删除所述对象在所述出发区域中的实例。
6.如权利要求3-5中任一项所述的计算机实现方法,在提供步骤之后进一步包括以下步骤: 确定所述对象正在进入所述区域中作为该对象的到达区域的一个区域; 由作为出发区域的另一区域,通过检查所述对象没有完全在所述出发区域,来计算所述对象在所述到达区域的存在; 将表明所述对象在所述到达区域中的存在的信息从所述出发区域交换到所述到达区域;以及 由所述到达区域创建所述对象的实例。
7.如权利要求3-6中任一项所述的计算机实现方法,其中在第一区域和第二区域之间交换信息的步骤是通过所述第一区域和第二区域之间的同步通信信道执行的。
8.如权利要求3-6中任一项所述的计算机实现方法,其中在第一区域和第二区域之间交换信息的步骤是通过所述第一区域和第二区域之间的异步通信信道执行的。
9.如权利要求3-8中任一项所述的计算机实现方法,其中在第一区域和第二区域之间交换信息的步骤是用在所述第一区域和第二区域之间的可靠通信信道执行的。
10.如权利要求3-8中任一项所述的计算机实现方法,其中在第一区域和第二区域之间交换信息的步骤是用在所述第一区域和第二区域之间的不可靠通信信道执行的。
11.如权利要求10所述的计算机实现方法,其中所述不可靠通信信道使用用户数据报协议。
12.一种包括被计算机执行的指令的计算机程序,所述指令适于执行如权利要求1-11中任一项所述的方法的步骤。
13.一种计算机可读存储介质,其上记录有根据权利要求12所述的计算机程序。
14.一种计算机化系统,包括: 存储系统,用于存储被划分为多个区域的三维场景的拓扑相邻的至少第一区域和第二区域,以及用于存储在一个或两个区域中的对象; 处理单元,用 于根据权利要求1-11中任一项所述的方法来模拟所述对象的物理行为。
【文档编号】G06T17/00GK103886638SQ201310757159
【公开日】2014年6月25日 申请日期:2013年12月20日 优先权日:2012年12月21日
【发明者】P·贝尔曼斯 申请人:达索系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1