《虚拟环境中的对象的图形模拟.pdf》由会员分享,可在线阅读,更多相关《虚拟环境中的对象的图形模拟.pdf(13页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102665836 A(43)申请公布日 2012.09.12CN102665836A*CN102665836A*(21)申请号 200980163108.X(22)申请日 2009.12.25A63F 13/00(2006.01)G06F 17/50(2006.01)(71)申请人英特尔公司地址美国加利福尼亚州(72)发明人 D拉戈真 A肖金(74)专利代理机构上海专利商标事务所有限公司 31100代理人毛力(54) 发明名称虚拟环境中的对象的图形模拟(57) 摘要一种用于模拟图形对象的方法。该方法包括监测第一图形对象与第二图形对象之间的近似距离,第一图形对象具有至。
2、少第一粒子并且第二图形对象具有至少第二粒子;检测第一与第二粒子之间的碰撞(P220);计算由于碰撞所引起的与第一和第二粒子相关联的第一组力(P230),其中在第一情境中计算第一组力,在该第一情境中,考虑了与第一和第二粒子相关联的X种粒子属性;计算由于碰撞所引起的与第一和第二粒子相关联的第二组力(P240),其中在第二情境中计算第二组力,在该第二情境中,考虑了与第一和第二粒子相关联的Y种粒子属性,其中XY。(85)PCT申请进入国家阶段日2012.06.21(86)PCT申请的申请数据PCT/RU2009/000726 2009.12.25(87)PCT申请的公布数据WO2011/078724 。
3、EN 2011.06.30(51)Int.Cl.权利要求书2页 说明书5页 附图5页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 2 页 说明书 5 页 附图 5 页1/2页21.一种用于在多维虚拟空间中模拟图形对象的计算机实现方法,所述方法包括:监测第一图形对象与第二图形对象之间的近似距离,所述第一图形对象具有至少第一粒子,且所述第二图形对象具有至少第二粒子;检测所述第一粒子与所述第二粒子之间的碰撞;计算由于碰撞所引起的与所述第一和第二粒子相关联的第一组力,其中在第一情境中计算所述第一组力,在所述第一情境中考虑了与所述第一和第二粒子相关联的X种粒子属性;计算由于碰撞所引。
4、起的与所述第一和第二粒子相关联的第二组力,其中在第二情境中计算所述第二组力,在所述第二情境中考虑了与所述第一和第二粒子相关联的Y种粒子属性,其中XY;以及基于所述第一和第二组力的计算结果,计算在碰撞之后所述第一和第二图形对象中的粒子的位置和取向。2.如权利要求1所述的方法,其特征在于,基于所计算的在碰撞之后第一和第二图形对象中的粒子的位置和取向,确定在碰撞之后所述第一和第二图形对象的相对位置。3.如权利要求1所述的方法,其特征在于,碰撞网格被用于:当所述第一粒子位于碰撞网格上的所述第二粒子的预定接近距离内时,确定第一粒子与第二粒子之间存在碰撞。4.如权利要求1所述的方法,其特征在于,所述第一组。
5、力是基于与所述第一和第二粒子相关联的压力和摩擦力属性而计算出的。5.如权利要求1所述的方法,其特征在于,所述第二组力是基于与所述第一和第二粒子相关联的扭矩和线性力属性而计算出的。6.如权利要求5所述的方法,其特征在于,所述第二组力被用于计算由于碰撞所引起的至少所述第一粒子的线速度和角速度的变化。7.如权利要求6所述的方法,其特征在于,所述第一粒子的线速度和角速度的变化被用于计算在所述第一次碰撞之后至少所述第一粒子的位置和取向。8.如权利要求1所述的方法,其特征在于,与所述第二粒子无关地处理所述第一粒子。9.如权利要求1所述的方法,其特征在于,当计算所述第一或第二组力中的至少一组力时,通过多处理。
6、器实现线程级并行性。10.如权利要求1所述的方法,其特征在于,当计算所述第一或第二组力中的至少一组力时,通过矢量处理器实现数据级并行性。11.一种用于在多维虚拟空间中模拟图形对象的系统,所述系统包括:用于监测第一图形对象与第二图形对象之间的近似距离的逻辑单元,所述第一图形对象具有至少第一粒子,且所述第二图形对象具有至少第二粒子;用于检测所述第一粒子与所述第二粒子之间的碰撞的逻辑单元;用于计算由于碰撞所引起的与所述第一和第二粒子相关联的第一组力的逻辑单元,其中在第一情境中计算所述第一组力,在所述第一情境中考虑了与所述第一和第二粒子相关联的X种粒子属性;用于计算由于碰撞所引起的与所述第一和第二粒子。
7、相关联的第二组力的逻辑单元,其中在第二情境中计算所述第二组力,在所述第二情境中考虑了与所述第一和第二粒子相关联的Y种粒子属性,其中XY;以及权 利 要 求 书CN 102665836 A2/2页3基于所述第一和第二组力的计算结果计算在碰撞之后所述第一和第二图形对象中的粒子的位置和取向的逻辑单元。12.如权利要求11所述的系统,其特征在于,在碰撞之后所述第一和第二图形对象的相对位置是基于所计算出的在碰撞之后所述第一和第二图形对象中的粒子的位置和取向而确定的。13.如权利要求11所述的系统,其特征在于,碰撞网格被用于:当所述第一粒子位于所述碰撞网格上的所述第二粒子的预定接近距离内时,确定所述第一粒。
8、子和第二粒子之间存在碰撞。14.如权利要求11所述的系统,其特征在于,所述第一组力是基于与所述第一和第二粒子相关联的压力和摩擦力属性而计算出的。15.如权利要求11所述的系统,其特征在于,所述第二组力是基于与所述第一和第二粒子相关联的扭矩和线性力属性而计算出的。16.一种计算机可读存储介质,包括嵌入在所述计算机可读存储介质中的计算机可读代码,其特征在于,在控制器上执行所述计算机可读代码使得计算系统:监测第一图形对象与第二图形对象之间的近似距离,所述第一图形对象具有至少第一粒子,且所述第二图形对象具有至少第二粒子;检测所述第一粒子与第二粒子之间的碰撞;计算由于碰撞所引起的与所述第一和第二粒子相关。
9、联的第一组力,其中在第一情境中计算所述第一组力,在所述第一情境中考虑了与所述第一和第二粒子相关联的X种粒子属性;计算由于碰撞所引起的与所述第一和第二粒子相关联的第二组力,其中在第二情境中计算所述第二组力,在所述第二情境中考虑了与所述第一和第二粒子相关联的Y种粒子属性,其中XY;以及基于所述第一和第二组力的计算结果,计算在碰撞之后所述第一和第二图形对象中的粒子的位置和取向。17.如权利要求16所述的计算机可读存储介质,其特征在于,在碰撞之后所述第一和第二图形对象的相对位置是基于所计算出的在碰撞之后所述第一和第二图形对象中的粒子的位置和取向而确定的。18.如权利要求16所述的计算机可读存储介质,其。
10、特征在于,碰撞网格被用于:当所述第一粒子位于所述碰撞网格上的所述第二粒子的预定接近距离内时,确定所述第一粒子与第二粒子之间存在碰撞。19.如权利要求16所述的计算机可读存储介质,其特征在于,所述第一组力是基于与所述第一和第二粒子相关联的压力和摩擦力属性而计算出的。20.如权利要求16所述的计算机可读存储介质,其特征在于,所述第二组力是基于与所述第一和第二粒子相关联的扭矩和线性力属性而计算出的。权 利 要 求 书CN 102665836 A1/5页4虚拟环境中的对象的图形模拟0001 本专利文件的公开的部分内容包括受到版权保护的材料。其所有者对于任何人对其专利文件或专利公开内容(如专利和商标局专。
11、利文件或记录所呈现)的传真复制没有任何异议,但保留其他一切权利。0002 本文中所引用的一些标记可能是普通法或是附属于或非附属于申请人或受让人的第三方注册商标。这些标记的使用是为了通过示例的方式提供可实施性披露,而不应被理解为将本发明的范围限制于与此类标记相关联的材料。技术领域0003 本发明一般涉及模拟引擎,更具体地涉及对虚拟环境中的物理对象进行图形模拟。背景技术0004 图形模拟引擎涉及可被用于对虚拟环境中的物理模型或对象进行图形模拟的软件应用。模拟引擎可模拟并预测图形渲染对象在不同条件下的物理变化,以对该对象作为真实对象受到现实世界力和物理规律作用时的事件和影响进行近似。0005 现有的。
12、模拟引擎可将物理对象表示为简单或复杂粒子的集合。简单粒子缺乏空间扩展,因为简单粒子是图形粒子的表示,其中对该粒子的尺寸、形状和结构的改变在给定表示情境中不相关。因此,简单粒子一般限于支持不可变形的对象在三个空间方向上(即,三个自由度)的运动。不可变形的对象指的是如下对象:在该对象内的任何两个给定粒子之间的距离随时间保持恒定,且与施加于对象上的外力无关。0006 与此相反,复杂粒子可用于表示有限大小的可变形的或不可变形的对象。可变形的对象指的是如下对象:在该对象内的任何两个给定粒子之间的距离可相对于施加于该对象上的外力而随时间变化。复杂粒子占据空间,且一般实现为除了支持在三个空间方向上运动之外还。
13、支持在三个空间方向上旋转(即,六个自由度)。0007 由于复杂粒子和简单粒子之间的区别,与简单粒子模拟的计算相比,涉及复杂粒子模拟的碰撞相关的计算要复杂得多。而且,在复杂粒子模拟中,碰撞检测或其他参数的精度可能会随着复杂粒子数量的增加而降低。0008 附图简述0009 通过参照以下所提供的附图来理解要求保护主题的实施例。0010 图1A是计算系统的示例性框图,在该计算系统中可以利用模拟引擎对物理对象进行图形化渲染。0011 图1B是根据一个实施例的基于图形粒子的集合进行图形化模拟的示例性对象。0012 图2是根据一个实施例的用于图形对象模拟的示例性方法的流程图。0013 图3示出了根据一个实施。
14、例的用于两个碰撞粒子的诸个力的计算。0014 图4A到4D示出了根据一个或多个实施例的计算环境中的用于物理对象模拟的示例性伪代码。说 明 书CN 102665836 A2/5页50015 图5示出了根据一个实施例的使用矢量处理器对一组简单粒子的速度进行更新的示例性机制的框图。0016 在不同的图中通过相同标号引用的本发明的特征、元件和方面表示根据本发明的一个或多个实施例的相同、等价或类似的特征、元件或方面。具体实施方式0017 为了总结的目的,本文描述了要求保护主题的一些方面、优点和新颖特征。应当理解,不是所有这些优点都可根据本发明的任一特定实施例实现。因此,本发明以实现或优化一个或一组优点而。
15、非实现本文所教示或提出的所有优点的方式具体化或实现。0018 提供了一种用于在多维虚拟空间对图形对象进行模拟的方法。该方法包括监测第一图形对象和第二图形对象之间的近似距离。第一图形对象可具有至少第一粒子,且第二图形对象可具有至少第二粒子。该方法可进一步包括检测第一粒子和第二粒子之间的碰撞,并计算由于碰撞所引起的与第一和第二粒子相关联的第一组力。在第一情境中计算第一组力,在该第一情境中考虑了与第一和第二粒子相关联X种粒子属性。还计算了由于碰撞所引起的与第一和第二粒子相关联的第二组力。在第二情境中计算所述第二组力,在该第二情境中考虑了与第一和第二粒子相关联的Y种粒子属性,其中XY。基于第一和第二组。
16、力的计算结果来计算在碰撞后第一和第二图形对象中的粒子的位置和取向。0019 根据另一实施例,提供包括一个或多个逻辑单元的系统。所述一个或多个逻辑单元被配置为实现与上述所公开的方法相关联的功能和操作。根据本发明的又一实施例,提供了包括计算机可用介质的计算机程序产品,该计算机可用介质具有计算机可读程序。当在计算机上执行该计算机可读程序时,使得计算机执行与上述所公开的方法相关联的功能和操作。0020 下文参照附图更详细地提供了一个或多个上述公开的实施例以及某些替代方案。然而,所要求保护的主题不限于所公开的任何特定实施例。0021 参照图1A,根据一个实施例,示例性计算系统100包括处理器102和显示。
17、器104.处理器102可以是中央处理单元(CPU)、图形处理单元(GPU)或能够执行模拟引擎106的其他类型的微控制器。显示器104可以是阴极射线管(CRT)显示器、液晶显示器(LCD)或能够在多维虚拟环境中对一个或多个图形对象108进行图形渲染的其他类型的设备。0022 参照图1B,图形对象108可被近似为复杂粒子,所述复杂粒子包括如图所示的一组简单粒子,可选地,这些简单粒子是相同的。简单粒子的相对位置可以是固定的,以保持各种形状的图形对象108的原始物理性质。例如,如果图形对象108是块状的,则简单粒子的位置根据特定形状可以是固定的。根据实现的不同,简单粒子的数量和相对位置可基于图形对象1。
18、08的形状、大小或其他物理性质来确定。0023 图形对象108可被用于表示可变形的或不可变形的对象。即,图形对象108可以是对象的表示,该对象在与另一对象碰撞时可能出现凹痕、毁坏或损坏。在一些实施例中,图形对象可表示有弹性的对象,该弹性对象由于碰撞可能发生形变,然后变回近似原始形状。0024 参照图1A、1B和2,根据一个实施例,模拟引擎106可由处理器102来执行以使得在显示器104上渲染图形对象108。取决于实现方式,例如,模拟引擎106可例如从简单或复杂粒子(P200)构建出一个或多个图形对象。互相合作的粒子按需以均匀的方式对图形说 明 书CN 102665836 A3/5页6对象108。
19、的图形表示进行近似。同样,模拟引擎106可用于在显示器104上渲染一个或多个所构建的图形对象108(P210)。0025 在一个实施例中,模拟引擎106可响应于诸如碰撞之类的某些事件而周期性地或部分地重新渲染图形对象108。碰撞指的是两个图形对象之间的相互作用,该相互作用可导致至少一个图形对象的外观或运动方向发生改变。在示例性实施例中,可在基于组成图形对象的多个三维粒子的定位所定义的碰撞检测几何体的情境中,在显示器104上渲染图形对象108。此外,可利用渲染几何体来定义组成图形对象108的三维粒子的集合的三角形表面。0026 组成图形对象108的三维粒子可具有任何三维形状(例如,立方体、球形等。
20、)。在一个实现中,实现碰撞网格以允许模拟引擎106检测组成即将发生碰撞的图形对象的粒子之间的碰撞或潜在碰撞。碰撞网格可实现为表格、阵列、矢量或其他数据结构。如果在不同图形对象内的至少两个粒子在碰撞网格中位于彼此的预定接近距离内,则可检测到碰撞。0027 在一个实施例中,模拟引擎106使用碰撞网格来检测简单粒子情境中的碰撞(P220)。即,模拟引擎106可使用碰撞网格,基于粒子属性来确定至少第一对象中的第一粒子和第二对象中的第二粒子之间是否存在任何潜在碰撞,所述粒子属性定义了碰撞粒子的三个自由度。一旦检测到潜在碰撞,模拟引擎106就执行距离计算(例如,简单的欧几里德计算)以确定碰撞是否即将发生(。
21、即,实际碰撞)。0028 参照图3,响应于确定了潜在碰撞是实际碰撞,模拟引擎106基于与该碰撞所涉及的粒子相关联的各种因素(例如,速度、压力、摩擦等)来计算施加于这些粒子上的力。在一个实现中,模拟引擎106计算在简单粒子情境中作用在所涉及粒子上的压力或摩擦力,该简单粒子情境将在下文中详细描述(P230)。0029 根据一个实现,在该简单粒子情境中,通过例如忽略不适用于简单粒子的复杂粒子的空间特性(例如,旋转属性),而将图形对象中的复杂粒子视为或简化为简单粒子。由于与简单粒子相关联的属性的计算比复杂粒子的属性的计算要更为简单,当在简单粒子情境中(即,基于与三个自由度相关联的属性,而不是六个自由度。
22、)计算施加于复杂粒子的力时,可保持更有效的处理环境。0030 换言之,由于简单粒子具有三个自由度,因此与复杂粒子的六个自由度相比,可更有效地计算简单粒子情境中的碰撞结果。在一个实施例中,模拟引擎106也可在复杂粒子情境计算施加于碰撞对象的力(P240)。例如,可通过计算施加于复杂粒子的扭矩和线性力来执行对施加于复杂粒子的力的计算。即,与图形对象中的复杂粒子相关联的扭矩和线性力可被用于计算该图形对象的线性速度和角速度的变化。0031 在一个实施例中,模拟引擎106基于复杂粒子的相应线性速度和角速度(即,积分速度)的变化来计算包括有这些复杂粒子的图形对象的新的位置和方向(P250)。在一个实现中,。
23、如果复杂粒子或图形对象在运动,则模拟引擎106还可更新碰撞网格(P260)。如果复杂粒子或图形对象在网格单元之间运动,则模拟引擎106也可更新碰撞网格。0032 参照图4A至图4D,根据一个实施例,上述所公开的计算可按照如下文进一步详述的示例性伪代码的形式来实现。复杂粒子可具有一个或多个属性,所述属性包括但不限于:位置、速度、加速度、角位置、角速度和角加速度。可定义其他的粒子属性和参数以指示图形对象中的例如粒子数量、粒子形状(例如,球形)或半径。说 明 书CN 102665836 A4/5页70033 例如,如图4B中所示的,简单粒子也可与位置、速度、加速度以及复杂粒子(例如,包括该简单粒子的。
24、物主(owner)粒子)相关联。例如,如图4C所示的,可使用连续循环来实现碰撞检测、力计算、粒子积分和网格更新。例如,如图4D所示的,可通过计算定义复杂粒子的简单粒子的转动惯量和加速度并更新其速度来实现对粒子的积分。0034 值得注意的是,在一个实施例中,上述提供的处理可由能够多任务处理的一个或多个处理器(例如,拉拉比(Larrabee)或英特尔多核处理器)来执行。在此实施例中,可与其它简单粒子无关地对一简单粒子进行碰撞分析,从而实现关于简单粒子的线程级并行性。同样,可与其他复杂粒子无关地执行对一复杂粒子的累计或积分,以实现关于复杂粒子的线程级并行性。0035 在一个实施例中,计算系统100可。
25、包括矢量处理器。矢量处理器涉及能够执行单指令多数据(SIMD)指令的处理器。矢量处理器可以是多处理器,所述多处理器支持加载到多个矢量寄存器中的数据的并行处理。在此实施例中,模拟引擎106可与其他简单粒子无关地计算一简单粒子的力、速度或位置,以实现数据级并行性。0036 参照图5,矢量处理器可被用于例如在碰撞后更新粒子的速度。为了说明的目的,假设有16个粒子。在简单粒子情境中,在碰撞之前的一个或多个粒子的速度可被分别加载到矢量寄存器Ai+0、Ai+2、.Ai+15中,并且一个或多个粒子的速度的变化可被分别加载到矢量寄存器Bi+0、Bi+2、.Bi+15中。一旦先前的速度和速度的变化被加载,就可执。
26、行计算操作(例如,宽SIMD操作)以计算碰撞后的简单粒子的速度。例如,碰撞后的简单粒子的速度可被分别储存在矢量寄存器Si+0、Si+2、.Si+15中。0037 如上所述,使用复杂粒子的图形对象模拟提供了在包括可变形对象和相撞对象的对象之间的快速物理交互,至少部分地由于应用于简单和复杂粒子的多级计算,该模拟具有较低成本和较高可扩展性。理想地,在小范围的一组图形对象上(例如,在简单粒子情境下)预先执行计算以根据碰撞网格来确定碰撞接近距离。在此计算中,以相对低计算开销来对诸个力进行计算。0038 例如,当两个潜在碰撞的图形对象是对称的且在碰撞网格的预定距离或预定数量的粒子内,则施加于这些图形对象的。
27、力可通过计算施加于组成对象的粒子上的力而导出。取决于实现方式,复杂粒子的积分包括单次迭代以解析碰撞。此外,除了其他力之外,对摩擦力的考虑阻止图形对象的跳动或扩展。0039 取决于实现方式,本发明可能采取完全硬件实施例、完全软件实施例或同时包含硬件和软件的实施例的形式。软件实施例可包括但不限于固件、驻留软件、微代码,等等。0040 此外,本发明可采取可从计算机可用或计算机可读介质所获得的计算机程序产品的形式,该计算机可用或计算机可读介质提供了由计算机或任何指令执行系统所使用的或结合计算机或任何指令执行系统一起使用的程序代码。为了本说明书的目的,计算机可用或计算机可读介质可以是包含、存储、通信、传。
28、播、或传输由指令执行系统、装置或设备所使用的或结合指令执行系统、装置或设备一起使用的程序的任何装置。0041 适用于存储和/或执行程序代码的数据处理系统将包括通过系统总线与存储器元件直接或间接耦合的至少一个处理器。该存储器元件可包括在程序代码的实际执行期间所采用的本地存储器、大容量存储器、以及提供至少某些程序代码的临时存储以减少在执行期间从大容量存储器取回代码的次数的高速缓存存储器。说 明 书CN 102665836 A5/5页80042 其他部件可耦合至该系统。输入/输出或I/O设备(包括但不限于键盘、显示器、指示设备等)可直接或通过介入的I/O控制器耦合至该系统。网络适配器(例如,调制解调。
29、器、有线调制解调器、以太网卡)也可耦合至该系统,以允许数据处理系统通过介入的专用或公共网络而耦合至其它数据处理系统或远程打印机或存储设备。0043 应当理解,执行每种方法的相应部分的逻辑代码、程序、模块、处理、方法和顺序仅仅是示例性的。取决于实现方式,它们可按照任何顺序或并行执行,除非本公开内容中另有说明。此外,逻辑代码不与任何特定编程语言相关或不限于任何特定编程语言,并且可包括在分布式、非分布式或多处理器环境中执行一个或多个处理器的一个或多个模块。0044 上述方法可被用于集成电路芯片的制造。制造商可按照原始晶片形式(即具有多个未封装芯片的单个晶片)、按照裸片形式或按照封装形式来分发所得到的。
30、集成电路芯片。在后一种情况下,将芯片安装在单芯片封装中(诸如塑料载体,其引线固定至母板或其它高级载体)或多芯片封装中(诸如具有单面或双面互连或掩埋互连的陶瓷载体)。0045 在任一情况下,该芯片随后被与其它芯片、分立的电路元件、和/或其它信号处理设备相集成,以作为(a)中间产品(诸如母板)或(b)最终产品的一部分。最终产品可以是包括集成电路芯片的任何产品,其范围从玩具和其它低端应用到具有显示器、键盘或其它输入设备以及中央处理器的高级计算机产品。0046 因此,应当理解,本发明可由在所附权利要求的精神和范围内的修改和变化实现。说明书不旨在穷举或将本发明限制为所公开的精确形式。所公开的实施例的这些和各种其他改变和组合都在本发明的范围内并进一步由权利要求和其全部等效范围所限定。说 明 书CN 102665836 A1/5页9图1A图1B说 明 书 附 图CN 102665836 A2/5页10图2说 明 书 附 图CN 102665836 A10。