建模方法和设备以及使用流体动画曲线图的设备与流程

文档序号:12179053阅读:317来源:国知局
建模方法和设备以及使用流体动画曲线图的设备与流程

技术领域

下面的描述涉及一种使用流体动画曲线图的建模方法。下面的描述还涉及一种使用流体动画曲线图的设备。



背景技术:

在计算机制图(CG)领域的视觉效果(VFX)领域中,可对刚性体、可变形体和流体中的任何一个或者其组合进行建模。例如,当对流体或流体和可变形体的组合进行建模时,可使用基于高度场的流体移动建模方法。流体移动建模方法可被用于基于快速计算执行简单建模和实时建模。然而,流体的表示可被简化,或者建模的比例可减小,由此降低模型的真实性。因此,可能难以在保持真实性的同时执行实时建模。



技术实现要素:

提供此发明内容以按照简化形式介绍以下在具体实施方式中进一步描述的概念的选择。这个发明内容并不意图标识要求保护的主题的关键特征或必要特征,也不意图被用于帮助确定要求保护的主题的范围。

在一个总体方面,一种建模方法包括:使用基于流体动画曲线图中所包括的多个序列中所包括的帧之间的相似性产生的流体动画曲线图搜索与用户输入匹配的序列;基于搜索的结果对与用户输入对应的移动进行建模。

建模的步骤可包括通过响应于未检索到与用户输入匹配的序列,混合流体动画曲线图中所包括的所述多个序列之中的与用户输入相似的序列来对与用户输入对应的移动进行建模。

建模可包括基于流体动画曲线图中所包括的所述多个序列的速度信息和形状信息中的至少一个混合与用户输入相似的序列。

建模的步骤可包括从流体动画曲线图中所包括的所述多个序列之中搜索与用户输入相似的多个检索到的序列,通过混合所述多个检索到的序列来产生与用户输入对应的混合序列,并且使用混合序列对与用户输入对应的移动进行建模。

搜索与用户输入相似的检索到的所述多个序列的步骤可包括基于添加到流体动画曲线图中所包括的所述多个序列的标签,搜索与用户输入相似的所述多个检索到的序列。

产生混合序列的步骤可包括:基于所述多个检索到的序列和用户输入提取混合权重,并且通过向所述多个检索到的序列分配混合权重来产生混合序列。

产生混合序列的步骤可包括基于所述多个检索到的序列之间的转换边产生混合序列和所述多个检索到的序列之间的类似转换边。

建模的步骤可包括:重放所述多个检索到的序列中所包括的帧,验证正被重放的当前帧对应于从所述多个检索到的序列中的至少一个检索到的序列转换到混合序列的帧,并且基于混合序列和所述多个检索到的序列之间的类似转换边重放混合序列中所包括的帧。

产生混合序列的步骤可包括在基于所述多个检索到的序列之间的转换边的转换期间产生混合序列。

建模的步骤可包括响应于检索到与用户输入匹配的序列,重放检索到的序列,其中,检索到的序列包括表现与用户输入对应的可变形体的移动和由于可变形体的移动导致的流体的移动的连续帧。

搜索的步骤可包括:从流体动画曲线图中所包括的所述多个序列之中选择具有与用户输入匹配的标签的序列,并且搜索从正被重放的当前序列到选择的序列的转换路径。

搜索的步骤可包括:基于用户输入确定控制可变形体的方向,从流体动画曲线图中所包括的所述多个序列之中选择与所述方向对应的序列,并且搜索从正被重放的当前序列到选择的序列的转换路径。

流体动画曲线图可被配置为控制可变形体的移动并且包括与反映由于可变形体的移动导致的流体的移动的情景对应的多个序列。

流体动画曲线图可包括以下项中的至少一项:基于流体动画曲线图中所包括的所述多个序列之中的至少一个序列中所包括的帧之间的第一相似性产生的循环序列,循环序列在所述至少一个序列中递归;和基于流体动画曲线图中所包括的所述多个序列之中的所述至少一个序列中所包括的帧和流体动画曲线图中所包括的所述多个序列中的其余序列中所包括的帧之间的第二相似性产生的转换边,转换边指示所述多个序列之间的可能的移动路径。

建模的步骤可包括:重放当前序列中的帧;验证正被重放的当前帧对应于从当前序列转换到与用户输入匹配的序列的帧;基于在当前序列和与用户输入匹配的序列之间转换的转换边重放与用户输入匹配的序列中的帧。

重放当前序列中的帧的步骤可包括递归地重放当前序列中的循环序列。

重放与用户输入匹配的序列中的帧的步骤可包括递归地重放与用户输入匹配的序列中的循环序列,直到接收到另外的用户输入为止。

可通过与用户设备组合或与用户设备互连的输入装置来输入所述用户输入。

在另一总体方面,一种用于建模的预处理方法包括:产生与预定建模集合对应的多个序列,其中,每个序列包括帧;基于所述多个序列中所包括的帧之间的相似性产生流体动画曲线图。

所述相似性可包括形状相似性、能量相似性和帧相似性中的至少一个。

产生流体动画曲线图的步骤可包括:计算所述多个序列中所包括的帧之间的至少一种相似性;向所述至少一种相似性分配权重;基于被分配了权重的所述至少一种相似性的加权和,产生流体动画曲线图。

产生流体动画曲线图的步骤可包括:计算所述多个序列之中的至少一个序列中所包括的帧之间的第一相似性;基于第一相似性产生在所述至少一个序列中递归的循环序列。

产生流体动画曲线图的步骤包括:基于所述多个序列之中的至少一个序列中所包括的帧和其余序列中所包括的帧之间的第二相似性产生指示所述序列之间的可能的移动路径的转换边;基于转换边产生流体动画曲线图。

产生转换边的步骤可包括:计算所述多个序列之中的所述至少一个序列中所包括的帧和其余序列中所包括的帧之间的第二相似性;产生第二相似性对应于预设参考的帧之间的转换边。

产生流体动画曲线图的步骤可包括:分析所述多个序列之中的至少一个序列中所包括的每个帧的运动能量;基于运动能量为所述多个序列中的每个序列设置转换时间点。

产生所述多个序列的步骤还包括添加与所述多个序列对应的标签。

可基于用户输入、外力、流体的流入和消失以及与另一对象的相互作用中的至少一项定义所述标签。

所述多个序列可包括表现不同场景的帧。

所述多个序列可包括子序列。

所述方法还可包括:基于预定场景元素确定建模集合。

在另一总体方面,一种非暂时性计算机可读存储介质存储用于使处理器处理器/计算机执行上述第一方法的指令。

在另一总体方面,一种建模设备包括:存储器,被配置为存储与建模集合对应的多个序列和流体动画曲线图,其中,所述多个序列中的每个序列包括帧,流体动画曲线图基于流体动画曲线图中所包括的所述多个序列中所包括的帧之间的相似性被预先产生;处理器,被配置为基于流体动画曲线图搜索与用户输入匹配的序列并且基于搜索的结果对与用户输入对应的移动进行建模。

所述处理器可被配置为响应于未检索到与用户输入匹配的序列,通过混合流体动画曲线图中所包括的所述多个序列之中的与用户输入相似的序列来对与用户输入对应的移动进行建模。

所述处理器可被配置为基于流体动画曲线图中所包括的所述多个序列的速度信息和形状信息中的至少一个混合与用户输入相似的序列。

所述处理器可被配置为从流体动画曲线图中所包括的所述多个序列之中搜索与用户输入相似的多个检索到的序列,通过混合所述多个检索到的序列来产生与用户输入对应的混合序列,并且使用混合序列对与用户输入对应的移动进行建模。

所述处理器可被配置为基于添加到流体动画曲线图中所包括的所述多个序列的标签搜索与用户输入相似的所述多个检索到的序列。

所述处理器可被配置为基于所述多个检索到的序列和用户输入提取混合权重,并且通过向所述多个检索到的序列分配混合权重来产生混合序列。

所述处理器可被配置为基于所述多个检索到的序列之间的转换边产生混合序列和所述多个检索到的序列之间的类似转换边。

所述处理器可被配置为重放检索到的序列中所包括的帧,验证正被重放的当前帧是否对应于从所述多个检索到的序列中的至少一个检索到的序列转换到混合序列的帧,并且基于用于在检索到的序列和混合序列之间转换的所述类似转换边重放混合序列中所包括的帧。

所述处理器可被配置为响应于检索到与用户输入匹配的序列,重放检索到的序列,检索到的序列包括表现与用户输入对应的可变形体的移动和由于可变形体的移动导致的流体的移动的连续帧。

所述处理器可被配置为从流体动画曲线图中所包括的所述多个序列之中选择具有与用户输入匹配的标签的序列,并且搜索从正被重放的当前序列到选择的序列的转换路径。

所述处理器可被配置为基于用户输入确定控制可变形体的方向,从流体动画曲线图中所包括的所述多个序列之中选择与所述方向对应的序列,并且搜索从正被重放的当前序列到选择的序列的转换路径。

所述设备还可包括:预处理器,被配置为产生与建模集合对应的所述多个序列并且基于所述多个序列中所包括的帧之间的相似性产生流体动画曲线图。

所述预处理器可被配置为计算所述多个序列中所包括的帧之间的至少一种相似性,向所述至少一种相似性分配权重,并且基于被分配了权重的所述至少一种相似性的加权和,产生流体动画曲线图。

所述流体动画曲线图可被配置为控制可变形体的移动并且包括与反映由于可变形体的移动导致的流体的移动的情景对应的序列。

在另一总体方面,一种建模方法包括:响应于接收的用户输入搜索存储在数据库中的流体动画曲线图;确定是否从流体动画曲线图中所包括的多个序列之中检索到与用户输入匹配的检索到的序列;响应于指示检索到与用户输入匹配的检索到的序列的确定,将检索到的序列中的具体建模元素融合到融合的序列中;响应于指示未检索到与用户输入匹配的序列的确定,混合流体动画曲线图中所包括的所述多个序列之中与用户相似的序列,并且将混合序列中的具体建模元素融合到融合的序列中。

所述混合可包括以高分辨率执行的形状混合。

所述混合可包括以低分辨率执行的速度混合。

所述方法还可包括:重放所述融合的序列。

通过下面的详细描述、附图和权利要求,其它特征和方面将会变得清楚。

附图说明

图1是示出根据实施例的建模处理的示例的示图。

图2是示出根据实施例的预计算处理的示例的流程图。

图3是示出根据实施例的预建模处理的示例的流程图。

图4示出根据实施例的在预建模处理中产生的序列的示例。

图5是示出根据实施例的流体动画曲线图产生处理的示例的流程图。

图6示出根据实施例的产生循环序列的方法的示例。

图7示出根据实施例的产生流体动画曲线图的方法的示例。

图8示出根据实施例的比较序列之间的相似性的方法的示例。

图9示出根据实施例的基于相似性产生流体动画曲线图的示例。

图10示出根据实施例的基于序列中所包括的每个帧的运动能量为每个序列设置转换时间点的方法的示例。

图11是示出根据实施例的运行时处理的处理的示例的流程图。

图12是示出根据实施例的搜索与用户输入匹配的序列的方法的示例的流程图。

图13A和13B示出根据实施例的在运行时处理的处理中搜索与用户输入匹配的序列的方法的示例。

图14是示出根据实施例的建模方法的示例的流程图。

图15是示出根据实施例的运行时处理的处理的另一示例的流程图。

图16是示出根据实施例的通过混合与用户输入相似的序列来对与用户输入对应的移动进行建模的示例的流程图。

图17是示出根据实施例的产生混合序列的方法的示例的流程图。

图18示出根据实施例的产生混合序列的方法的示例。

图19示出根据实施例的建模方法的另一示例。

图20是示出根据实施例的建模设备的示例的框图。

贯穿附图和详细描述,相同的标号始终表示相同的元件。附图可不必成比例,并且附图中的元件的相对尺寸、比例和描绘可为了清楚、说明和方便而被夸大。

具体实施方式

提供下面的详细描述来帮助读者获得对这里描述的方法、设备和/或系统的全面理解。然而,这里描述的方法、设备和/或系统的各种改变、修改和等同物对于本领域普通技术人员而言将是清楚的。这里描述的操作的顺序仅是示例,除了必须按照特定顺序发生的操作之外,操作的顺序不限于这里阐述的顺序,而是可如本领域普通技术人员所清楚的那样改变。此外,为了更加清楚和简洁,可省略本领域普通技术人员公知的功能和构造的描述。

这里描述的特征可被以不同形式实现,并且不应该被解释为局限于这里描述的示例。相反地,提供这里描述的示例,以使得本公开将是全面而完整的,并且将会将本公开的全部范围传达给本领域普通技术人员。

以下,参照附图描述示例。相同的标号始终表示相同的元件。

可对示例做出各种改变和修改。这里,该示例不应该被解释为局限于本公开,并且应该被理解为包括本公开的构思和技术范围内的所有改变、等同物和替换物。

这里使用的术语仅用于描述特定示例的目的,并且不应该限制示例。如这里所使用,除非上下文清楚地指示不同情况,否则单数形式也意图包括复数形式。还应该理解,当在本说明书中使用时,术语“包括/包含”和/或“具有”指定存在所陈述的特征、整数、步骤、操作、元件、组件和/或其组合,但不排除存在或添加一个或多个其它特征、数字、步骤、操作、元件、组件和/或其组合。

除非另外定义,否则这里使用的所有术语(包括技术和科学术语)具有与示例所属于的领域的普通技术人员通常所理解的含义相同的含义。还应该理解,除非在这里明确地这样定义,否则术语(诸如,在常用词典中定义的那些术语)应该被解释为具有与在相关技术的背景中它们的含义一致的含义并且不应该被解释为理想化或过于正式的含义。

当参照附图描述示例时,相同的标号表示相同的组成元件,并且为了简洁而省略与其相关的重复描述。当确定与相关的已知功能或结构相关的详细描述可在描述示例时不必要地使示例的目的变得模糊时,这里为了清楚而省略该详细描述。

图1是示出根据实施例的建模处理的示例的示图。参照图1的示例,建模设备可基于预计算处理110和运行时处理的处理130对与用户输入对应的移动进行建模。

例如,预计算处理110可被理解为这样的处理:产生与处理用户输入所需的建模集合对应的序列,并且例如以流体动画曲线图的形式预先产生可彼此连接的序列,以响应于用户输入而对自然移动转换进行建模。例如,可基于质点使用流体和变形体的几何形式执行预计算处理110。

运行时处理的处理130可被理解为这样的处理:使用在预计算处理110中产生的流体动画曲线图118对与实时地接收的用户输入对应的移动进行建模。

例如,可在另外的预处理器或如建模设备的图20中所示的预处理器2040中执行预计算处理110。此外,在示例中,预计算处理110可被预先执行并且存储在离线存储器中。例如,可在如建模设备的图20中所示的处理器2020中执行运行时处理的处理130。

在图1的示例中,按照预建模处理112和流体动画曲线图产生处理116的次序执行预计算处理110。

例如,在预建模处理112中,建模设备可产生与建模集合对应的序列114。例如,建模集合可被理解为一组重要动画或图像序列,诸如小船在大浪中沿向右方向旋转的两秒的图像。例如,所述重要图像序列和动画可对应于大于或等于预定时间的时间的量。如本公开中所使用,术语“序列”可被理解为多个图像帧或动画。在示例中,所述多个图像帧或动画可以是连续的。序列114包括表现不同场景的多个帧。例如,序列A可包括表现与平静大海对应的场景的多个帧,序列B可包括表现与右表面逐渐地上升的大海对应的场景的多个帧。序列C可包括表现与左表面逐渐地上升的大海对应的场景的多个帧。

因此,建模集合包括多个建模情景。建模情景表示定义将要被建模的环境和对象的情景。例如,每个建模情景可对应于至少一个场景元素。每个“场景元素”可被理解为配置建模情景的至少一部分所需的帧。例如,帧包括图像帧、声学帧、特殊效果帧或其各种组合。然而,这些仅是示例,并且除了这些示例之外,还可存储其它信息作为帧数据,或者替代于这些示例,可存储其它信息作为帧数据。每个“场景元素”包括示出重要场景的图像帧。例如,场景元素可包括小船在大海上漂浮的场景,或者可包括飞机在台风中飞行的场景。场景元素包括表现不同移动的图像或帧。例如,建模集合中所包括的场景的数量可被预先确定。

在图1的示例中,建模设备可添加与序列114中的每个序列对应的至少一个标签。在这个示例中,术语“标签”被理解为指示序列的场景的含义或描述的注解或解释。例如,可基于用户输入、外力、流体的流入和消失以及与另一对象的相互作用定义该标签。然而,这些仅是示例,并且在其它示例中使用用于定义该标签的其它替代的合适的方案。

例如,添加到序列114中的每个序列的标签可被用于在运行时处理的处理130中混合序列或搜索与用户输入匹配的序列。

在示例性流体动画曲线图产生处理116中,建模设备通过比较序列114中所包括的帧之间的相似性来搜索与每个帧相似的最佳帧。建模设备还产生表现是否在帧之间允许转换的流体动画曲线图118。因此,流体动画曲线图的示例可与流体动画曲线图118、图7或图13A或图13B相同。然而,这些仅是示例,并且其它合适的示例也可用作流体动画曲线图。

在图1的示例中,流体动画曲线图118可控制可变形体的移动,并且包括与反映由于可变形体的移动导致的流体的移动的多个情景对应的多个序列。在这种示例中,可变形体可被理解为包括刚性体和柔体。例如,相似性包括形状相似性、能量相似性和帧相似性。在这个示例中,帧相似性表示序列中所包括的连续帧之间的相似性,并且可通过考虑每个帧的形状相似性和/或能量相似性来获得帧相似性。在这个示例中,可基于在每个序列中逐帧地比较能量相似性与形状相似性的结果获得帧相似性。例如,假设:以100个帧设置序列A,并且以100个帧设置序列B。在这个示例中,可针对来自序列的帧的所有可能的对,计算帧相似性。例如,基于序列A中所包括的100个帧和序列B中所包括的100个帧,可针对10000对计算帧相似性。流体动画曲线图118可被理解为指示至少一个序列中的移动或不同序列之间的可能的移动连接关系的表或曲线图。

例如,基于序列之中的至少一个序列中所包括的帧之间的相似性,建模设备可产生在所述至少一个序列中递归的循环序列。以下,所述至少一个序列中所包括的帧之间的相似性被称为第一相似性。例如,连续海浪的场景可由在所述至少一个序列中递归的循环序列建模。

例如,建模设备可通过比较不同序列中所包括的帧之间的相似性来产生指示所述序列之间的可能的移动路径的转换边。以下,不同序列之中的所述至少一个序列中所包括的帧和除所述至少一个序列之外的其余序列中所包括的帧之间的相似性被称为第二相似性。

在图1的示例中,在运行时处理的处理130中,建模设备通过使用流体动画曲线图搜索处理133搜索流体动画曲线图118来对与用户输入对应的移动进行建模。当在运行时处理的处理130期间接收到用户输入时,建模设备通过使用流体动画曲线图118搜索与用户输入匹配的序列来对与用户输入对应的移动进行建模。例如,可通过与用户设备组合或与用户设备互连的输入装置(例如,用户终端、控制杆和头戴式显示器(HMD))来输入所述用户输入。然而,这些仅是示例,并且在其它示例中合适地使用用户输入的其它源。例如,提供用于控制水上的移动的小船的移动的用户输入。

图2是示出根据实施例的预计算处理的示例的流程图。参照图2的示例,该处理在操作210中产生与预定建模集合对应的序列。例如,建模设备或预处理器在操作210中产生与预定建模集合对应的序列。这些序列包括多个帧。在图2的示例中,由建模设备产生所述序列的处理可对应于预计算处理110的预建模处理112。参照图3和4更详细地描述由建模设备产生所述序列的方法。

在操作220中,该处理基于序列中所包括的帧之间的相似性产生流体动画曲线图。例如,建模设备基于序列中所包括的帧之间的相似性产生流体动画曲线图。在图2的示例中,由建模设备产生流体动画曲线图的处理可对应于预计算处理110的流体动画曲线图产生处理116。参照图5至7更详细地描述由建模设备产生流体动画曲线图的方法。例如,建模设备可通过逐帧地比较序列中所包括的帧来比较帧之间的相似性。参照图8和9更详细地描述由建模设备比较帧之间的相似性的方法。

图3是示出根据实施例的预建模处理的示例的流程图。参照图3的示例,在操作310中,该处理基于场景元素确定建模集合。例如,建模设备在操作310中基于场景元素确定建模集合。在这种示例中,建模设备确定表现在各种情况下的不同移动的建模集合。建模设备可针对将要被建模的力(例如,重力、用户外力、由流体施加的相互作用力和施加于对象(例如,小船和水)的弹力)设置建模集合。然而,这些仅是力的示例,并且在其它示例中其它合适的力被建模。在这个示例中,当建模设备与HMD组合或与HMD互连时,可响应于用户的头移动而控制施加于对象的外力。此外,对象的移动可被控制以对应于控制信息(例如,力的方向、大小和角度)从而对应于从控制杆接收的输入。因此,建模设备可基于前面的方法提供虚拟现实或增强现实体验。

在示例中,诸如通过基于建模设备的设置或用户的选择,可预先确定建模集合中所包括的建模情景的数量。当建模集合中所包括的建模情景的数量相对较大时,建模设备可通过提供更多信息以帮助更准确地表示与用户输入对应的移动来按照更加详细而自然的方式表示所述移动。

在操作320中,该处理产生与预定建模集合对应的序列。例如,建模设备产生与预定建模集合对应的序列。例如,建模设备可产生如图4的示例中所示的序列。

在操作330中,该处理添加与序列对应的至少一个标签。例如,建模设备添加与序列对应的至少一个标签。例如,可基于关于序列的注解或含义的信息、与序列关联的标识信息和前述信息的组合表示标签。然而,这些仅是示例,并且标签包括当管理序列时有用的与序列关联的其它合适的类型的信息。

图4示出根据实施例的在预建模处理中产生的序列的示例。参照图4,示出由建模设备产生的N个序列410、420、430和440。序列410、420、430和440包括n+1个帧(包括从帧0至帧n的帧,如图4中所示),或者也可包括表现每个序列的不同场景的帧。在这个示例中,针对每个序列,表现不同场景的帧的数量可变化。

序列410、420、430和440包括标签405。例如,可针对每个序列添加单个标签,或者可针对每个序列添加多个标签。

如以上所讨论,标签405包括与序列关联的注解或含义。例如,标签可标识对应序列的小船在四秒期间在大浪中向右转的图像。

在这种示例中,标签405的内容可直接对应于用户输入,例如旋转、停止和加速。标签405的内容可由各种方法定义。例如,标签内容可与信息(诸如,各种力(诸如,例如重力)、冲击能和由与用户输入对应的移动施加的动能、将要被建模的空间中的由于与用户输入对应的移动而导致的流体或气体的流入和消失以及另一对象和与用户输入对应的移动的相互作用)关联。然而,这些仅是与标签关联的信息的示例,并且在其它示例中,标签对应于其它信息。

序列(例如,序列440)包括多个子序列。例如,序列440包括:子序列443,表现当沿向右方向施加重力时的小船的移动;和子序列446,表现当沿从下到上的方向施加重力时的小船的移动。此外,多个子序列包括多个标签。在这种示例中,序列可包括指示单个序列中所包括的间隔的每个部分(例如,子序列)的含义的标签。

图5是示出根据实施例的流体动画曲线图产生处理的示例的流程图。参照图5,该处理在操作510中计算多个序列之中的至少一个序列中所包括的帧之间的第一相似性。例如,建模设备在操作510中计算序列之中的至少一个序列中所包括的帧之间的第一相似性。在操作520中,该处理基于第一相似性产生在所述至少一个序列中递归的循环序列。例如,建模设备基于第一相似性产生在所述至少一个序列中递归的循环序列。

在示例中,假设:十个帧被包括在多个序列A、B、C和D之中的序列B中。建模设备可计算序列B中所包括的十个帧之中的第一帧和九个其余帧之间的相似性(例如,第一相似性)。建模设备可通过逐帧地比较第一帧和九个其余帧之间的相似性来搜索允许反复地执行序列B的最佳转换。建模设备可基于由建模设备确定的最佳转换产生在序列B中递归的循环序列。参照图6进一步描述由建模设备产生循环序列的方法。

在操作530中,该处理计算所述至少一个序列中所包括的帧和其余序列中所包括的帧之间的第二相似性。例如,建模设备计算所述至少一个序列中所包括的帧和其余序列中所包括的帧之间的第二相似性。在操作540中,该处理产生第二相似性对应于预设参考的帧之间的转换边。例如,建模设备产生第二相似性对应于预设参考的帧之间的转换边。

在示例中,假设:在所述多个序列A、B、C和D之中,序列A包括八个帧,序列B包括十个帧,序列C包括九个帧,并且序列D包括十个帧。

在这种示例中,建模设备可计算序列A中所包括的八个帧以及序列B、C和D中的每个序列中所包括的帧之间的相似性(例如,第二相似性)。例如,第二相似性分别具有从0至1的值。当帧相同时,第二相似性可具有1的值。当帧不同时,第二相似性可具有0的值。此外,第二相似性可具有0和1之间的值,其中该值越大,帧之间的相似的程度越大。例如,在不同于序列A中所包括的八个帧的序列中所包括的帧的第二相似性之中,建模设备可连接第二相似性大于预设参考值(例如,0.85)的帧之间的转换边。基于转换边,可对所述序列之间的转换进行建模。转换边指示序列之间的序列间转换是否合适。因此,转换边可被用作序列之间的移动路径。基于前述比较第一相似性的方法,可同样地应用比较第二相似性的方法。

在操作550中,该处理基于转换边产生流体动画曲线图。例如,建模设备基于转换边产生流体动画曲线图。参照图7更详细地描述由建模设备基于转换边产生流体动画曲线图的方法。

图6示出根据实施例的产生循环序列的方法的示例。参照图6,示出包括多个帧的单个序列610和递归循环序列630。

例如,假设:序列610包括标识为a、b、c、d、e、f、g、h、i、j和k的11个帧。建模设备可计算序列610中所包括的任何一个帧(例如,帧g)和序列610中的十个其它帧之间的相似性(例如,第一相似性)。

响应于计算的结果,当帧g和帧a之间的相似性以及帧k和帧e之间的相似性大于预设参考值时,建模设备可产生在序列610中从帧g至帧a或从帧k至帧e递归的转换边。在这个示例中,在转换从帧g至帧a递归的情况下,不可重放序列610中所包括的所有的帧,并且因此,用于执行序列的时间的量可能相对较小。

例如,建模设备可充分地重放序列610中所包括的帧,并且搜索允许特定帧的重复重放的最佳转换。在示例中,建模设备可按照帧a–>帧k–>帧e–>帧g–>帧a的顺序搜索帧的转换。

建模设备可产生按照帧a–>帧k–>帧e–>帧g–>帧a的顺序递归的循环序列630。在图6中表示为具有圆柱形状的循环序列630的部分指示对应序列表示递归循环序列。在示例中,建模设备可通过循环序列630来对迭代操作进行建模,直至接收到新的用户输入为止。

图7示出根据实施例的产生流体动画曲线图的方法的示例。图7示出流体动画曲线图,其中多个序列710、720、730和740的序列由转换边711、713、715和717连接。

在示例中,序列710和序列720是表现当沿从上到下的方向或向下施加力时的在大海上的小船的移动的序列。在这个示例中,序列710和序列720是具有不同标签值的不同序列,其中除了从上到下施加的力之外,用户输入和施加的外力也不同。序列730是表现当沿从右到左的方向施加力时的小船的移动的序列,并且序列740是表现当沿从左到右的方向施加力并且随后向上施加力时的小船的移动的序列。例如,序列740包括:第一子序列,表现当从左到右施加力时的小船的移动;和第二子序列,表现当从下到上施加力时的小船的移动。

建模设备可计算不同序列710、720、730和740中的至少一个序列中所包括的帧和其余序列中所包括的帧之间的相似性(例如,第二相似性)。建模设备可产生在序列710、720、730和740之间计算的第二相似性具有大于预设参考的值的帧之间的转换边。例如,所述预设参考可以是0.9。然而,可采用用于所述预设参考的其它值,并且可为特定使用情况选择用于所述其它值。

基于不同序列中所包括的帧之间的第二相似性,建模设备产生序列710中所包括的帧c和序列720中所包括的帧a之间的转换边711,并且产生序列710中所包括的帧h和序列730中所包括的帧h之间的转换边713。建模设备还产生序列710中所包括的帧g和序列740的第一子序列中所包括的帧a之间的转换边715,并且产生序列710中所包括的帧f和序列740的第二子序列中所包括的帧g之间的转换边717。

在这个示例中,第二相似性具有大于所述预设参考的值的帧被理解为表现当不同序列中所包括的两个相似的帧被连接并且重放时不同序列自然地相关的移动的帧。

例如,当表现沿向右方向以90度的角度旋转的小船的序列A中所包括的帧d和表现沿向右方向以45度的角度旋转的小船的序列B中所包括的帧f之间的第二相似性大于所述预设参考(诸如,0.9)时,建模设备可产生序列A中所包括的帧d和序列中所包括的帧f之间的第一转换边。当基于流体动画曲线图中的第一转换边执行建模时,自然地重放小船沿向右方向以90度的角度旋转并且随后以45度的角度旋转的场景。

图8示出根据实施例的比较序列之间的相似性的方法的示例。参照图8的示例,示出指示序列A和序列B之间的相似性的曲线图。在这个示例中,假设:序列A和序列B是向下施加重力的相同序列,并且每个序列分别包括600个帧。在该曲线图中,相似性具有从0至1的值。当相似性相同时,相似性具有值1。当相似性完全不同时,相似性可具有值0。0和1之间的中间值指示相似性的部分水平,相似性的水平随着增加的值而增加。

参照图8,当一部分被表示为白色时,这种部分指示帧之间的相似性的数值相对较高或接近1的部分。当一部分被表示为黑色时,该部分被理解为帧之间的相似性的数值相对较低的部分。

在区域810中,与序列B的帧500对应的部分和序列A的帧320之间的相似性的数值相对较高,因为在图8的示例上区域810具有白色而示出这种情况。因为区域810指示这些帧之间的这种相对较高的对应,所以建模设备可在序列B的帧500和序列A的帧320之间产生循环序列。在这个示例中,当序列A不同于序列B时,建模设备可基于相似性产生序列B的帧500和序列A的帧320之间的转换边。

在区域830中,与序列B的帧320对应的部分、与帧500对应的部分和序列A的帧100之间的相似性的数值相对较高。作为结果,建模设备可在序列B的帧320和序列A的帧100之间以及在序列B的帧500和序列A的帧100之间产生循环序列。在这个示例中,当序列A不同于序列B时,建模设备可基于相似性产生序列B的帧320和序列A的帧100之间以及序列B的帧500和序列A的帧100之间的转换边。

基于例如合适地关联序列A和B的对应帧的在区域830中使用的前述方法,建模设备可针对区域850产生转换边。

图9示出根据实施例的基于相似性产生流体动画曲线图的示例。图9示出表现可用于由建模设备验证帧之间的相似性的各种相似性的曲线图910、930和950以及使用各种相似性产生的流体动画曲线图970。例如,图9中示出的曲线图类似于在图8的示例中呈现的曲线图。

曲线图910表现序列中所包括的帧之间的形状相似性,曲线图930表现帧之间的势能相似性,并且曲线图950表现帧之间的动能相似性。如以下进一步所讨论,由建模设备基于与帧关联的信息的合适的分析获得这些曲线图910、930和950。

当将帧a的形状与帧b的形状进行比较时,建模设备可使用区域符合率(例如,(a∩b)/(a∪b))计算形状相似性。当基于质点对帧a和帧b进行预建模时,建模设备可基于所有质点能量的总和针对每个帧计算势能或动能。

在示例中,建模设备可针对每种相似性分配不同权重。例如,建模设备可分别为形状相似性分配0.5的权重,为势能相似性和动能相似性中的每种相似性分配0.25的权重。

建模设备可基于如以上进一步所讨论的被分配了权重的相似性的加权和产生流体动画曲线图。

图10示出根据实施例的基于序列中所包括的每个帧的运动能量为每个序列设置转换时间点的方法的示例。在图10的示例中,示出指示单个序列中所包括的多个帧的不同运动能量的曲线图。每个帧的运动能量被理解为与对应帧关联的运动的总量(也就是说,动能、势能、弹性能量和/或碰撞能量之和)。每个帧与度量关联,所述度量将所述每个帧与对帧的运动特性进行建模的这些以上类型的能量的全部能量关联。

例如,序列A中所包括的帧之中的帧1010表现具有运动能量值10的10米波浪,帧1020表现具有运动能量值6的6米波浪,并且帧1030表现具有运动能量值1的1米波浪。建模设备可分析序列A中所包括的帧1010、1020和1030的运动能量,并且基于运动能量设置转换至另一序列B的序列A的转换时间点或转换点。

在从序列A至序列B的转换期间,通过在序列B中所包括的帧表现具有运动能量4和5的4米波浪时将序列A中所包括的帧之中的其运动能量类似于转换序列B的运动能量的帧1020设置为转换时间点,建模设备可自然地连接从序列A至序列B的场景。基于由建模设备处理的信息,这种转换是合适的。

图11是示出根据实施例的运行时处理的处理的示例的流程图。参照图11,在操作1110中,该处理使用流体动画曲线图搜索与用户输入匹配的序列。例如,在操作1110中,建模设备使用流体动画曲线图搜索与用户输入匹配的序列。在操作1110中,在示例中,建模设备可基于用户输入确定控制可变形体的方向,并且从流体动画曲线图中所包括的多个序列之中选择与该方向对应的序列。例如,建模设备可搜索从正被重放的当前序列到选择的序列的转换路径。在这个示例中,流体动画曲线图可控制可变形体的移动,并且包括与反映由于可变形体的移动导致的流体的移动的多个情景对应的多个序列。通过提供关于将要对由于可变形体的移动导致的流体的移动的方式进行建模的信息,这种流体动画曲线图方便建模设备的操作。

例如,基于图1的示例中的预计算处理110,流体动画曲线图可被预先产生并且存储在存储器中。此外,流体动画曲线图包括基于序列之中的至少一个序列中所包括的帧之间的第一相似性产生的循环序列以及基于序列之中的所述至少一个序列中所包括的帧和其余序列中所包括的帧之间的第二相似性产生的转换边中的至少一个。在这个示例中,循环序列可在所述至少一个序列中递归。转换边表示序列之间的可能的移动路径。参照图12和13A-13B进一步描述由建模设备搜索所述序列的方法。

在操作1120中,该处理基于操作1110中的搜索的结果对与用户输入对应的移动进行建模。例如,建模设备基于在操作1110中执行的搜索的结果对与用户输入对应的移动进行建模。例如,建模设备可响应于检索到与用户输入匹配的序列而重放检索到的序列。在这个示例中,检索到的序列可包括表现与用户输入对应的可变形体的移动和由于可变形体的移动导致的流体的移动的多个连续帧。响应于检索到与用户输入匹配的序列,在图14的示例中示出从预计算处理到运行时处理的处理的整体操作的示例。

在操作1120中,响应于未检索到与用户输入匹配的序列,该处理通过混合流体动画曲线图中所包括的多个序列之中与用户输入相似的序列来对与用户输入对应的移动进行建模。例如,建模设备通过混合流体动画曲线图中所包括的多个序列之中与用户输入相似的序列来对与用户输入对应的移动进行建模。参照图16至18进一步描述由建模设备混合序列的方法。

图12是示出根据实施例的搜索与用户输入匹配的序列的方法的示例的流程图。因此,图12示出执行这种搜索的方式,该搜索可对应于如图11中所示的操作1110。参照图12的示例,该处理在操作1210中接收用户输入。例如,诸如在操作1110中,建模设备接收用户输入。

在操作1220中,该处理从在预计算处理中产生的流体动画曲线图中所包括的多个序列之中选择具有与用户输入匹配的标签的序列。例如,建模设备从在预计算处理中产生的流体动画曲线图中所包括的多个序列之中选择具有与用户输入匹配的标签的序列。在操作1230中,该处理搜索从正被重放的当前序列到在操作1220中选择的序列的转换路径。例如,建模设备可搜索从正被重放的当前序列到在操作1220中选择的序列的转换路径。在示例中,建模设备例如通过使用预布置的二进制码或十六进制码通过将用户输入改变为显示类型,来搜索具有与用户输入匹配的标签的序列。例如,建模设备可通过连接到检索到的序列的转换边基于最短转换路径搜索序列。

图13A和13B示出根据实施例的在运行时处理的处理中搜索与用户输入匹配的序列的方法的示例。例如,图13A和13B示出包括多个序列1310、1320、1330和1340的流体动画曲线图中的与新的用户输入对应的检索到的序列和路径的示例。

例如,在这些示例中,假设:在建模设备正在重放表现当在大浪中从上到下施加力时的小船的移动的当前序列1310中所包括的帧的时间段期间接收到用于从左到右移动小船的用户输入。

在这种示例中,建模设备可在图13A的示例中示出的序列1310、1320、1330和1340之中搜索具有与用户输入匹配的标签的序列。当具有与用户输入匹配的标签的序列被检索并且确定为序列1330时,建模设备可随后在流体动画曲线图中搜索从正被重放的当前序列1310到检索到的序列1330的最短转换路径。

在这种示例中,建模设备可验证/确定正被重放的当前帧是否对应于从当前序列转换到与用户输入匹配的序列的帧。响应于验证/确定正被重放的当前帧对应于从当前序列转换到与用户输入匹配的序列的帧,建模设备可基于转换边重放与用户输入匹配的序列中所包括的帧以在当前序列和与用户输入匹配的序列之间转换。可选地,响应于验证/确定正被重放的当前帧不对应于从当前序列转换到与用户输入匹配的序列的帧,建模设备可提供当前序列,直至正被重放的当前帧对应于转换到与用户输入匹配的序列的帧为止。

当从序列1310的帧c到序列1330的转换边被检索为目前转换边时,建模设备可重放通过该转换边连接到序列1310的帧c的序列1330。除非在序列1330的重放期间接收到另外的用户输入,否则建模设备可按照递归方式重放与用户输入匹配的序列1330中的循环序列。

在示例中,假设:建模设备重放表现当在大浪中从上到下施加重力时的小船的移动的当前序列1310。在这个示例中,建模设备可按照递归方式重放表现当在大浪中从上到下施加重力时的小船的移动的当前序列1310中的循环序列,直至接收到另外的用户输入为止。在这个示例中,假设:在当前序列1310中的循环序列的递归重放期间接收到用于从右到左移动小船的用户输入。

例如,建模设备可在如图13B的示例中所示的序列1310、1320、1330和1340之中搜索具有与用户输入匹配的标签的序列。当具有与用户输入匹配的标签的序列被检索并且确定为序列1320时,建模设备还可在流体动画曲线图中搜索从正被重放的当前序列1310到检索到的序列1320的最短转换路径。

当通过搜索而将从序列1310的帧d到序列1320的转换边确定为最短转换边时,建模设备可重放通过该转换边连接到序列1310的帧d的序列1320。因此,建模设备可反复地重放序列1320,直至在序列1320的重放期间接收到新的用户输入为止。

图14是示出根据实施例的建模方法的示例的流程图。图14示出包括预先执行的预计算和由建模设备实时地执行的运行时处理的处理。在操作1410中,该处理产生与预定建模集合对应的序列。例如,建模设备产生与预定建模集合对应的序列。

在操作1420中,该处理添加与序列对应的至少一个标签。例如,建模设备添加与序列对应的至少一个标签。

在操作1430中,该处理产生在所述至少一个序列中递归的循环序列。例如,建模设备产生在所述至少一个序列中递归的循环序列。在示例中,建模设备可基于序列之中的所述至少一个序列中所包括的帧之间的第一相似性产生循环序列。

在操作1440中,该处理产生指示序列之间的可能的移动路径的转换边。例如,建模设备产生指示序列之间的可能的移动路径的转换边。在示例中,建模设备可基于序列之中的所述至少一个序列中所包括的帧和其余序列中所包括的帧之间的第二相似性产生转换边。

在操作1450中,该处理基于转换边产生流体动画曲线图。例如,建模设备基于转换边产生流体动画曲线图。作为预处理的处理,预先执行操作1410至1450。在示例中,作为预处理的处理的结果产生的流体动画曲线图被存储在建模设备的存储器中。

在操作1460中,该处理在运行时处理的处理中接收用户输入。例如,建模设备在运行时处理的处理中接收用户输入。

在操作1470中,该处理从流体动画曲线图中所包括的序列之中选择具有与用户输入匹配的标签的序列。例如,建模设备从流体动画曲线图中所包括的序列之中选择具有与用户输入匹配的标签的序列。在操作1480中,该处理搜索从正被重放的当前序列到选择的序列的转换路径(例如,最短转换路径)。

例如,建模设备搜索从正被重放的当前序列到选择的序列的转换路径(例如,最短转换路径)。

在操作1490中,该处理基于检索到的最短转换路径对与用户输入对应的移动进行建模。例如,建模设备基于检索到的最短转换路径对与用户输入对应的移动进行建模。

例如,在示例中,假设:在小船在大海上漂浮的场景中响应于由建模设备接收的用户输入而控制小船的移动。在这个示例中,可相应地对响应于用户输入而控制的小船的移动以及由于小船和大海之间的相互作用而出现波浪和浪花的情况进行建模。

因此,在这种示例中,当沿三种类型的移动方向(例如,左转类型的方向、右转类型的方向和非旋转类型的方向)控制小船的移动时,建模设备可通过在预处理的处理中组合所述三种类型的移动方向来产生将要响应于用户输入而控制的七个序列。例如,建模设备可产生七个序列,包括左转继续、右转继续、非旋转继续、在非旋转继续期间的右转、在非旋转继续期间的左转、在右转继续期间的非旋转移动和在非旋转继续期间的右转。因此,建模设备产生与每个可能的候选运动情景对应的序列。在这个示例中,建模设备可添加与将要被控制的七个序列之中的序列对应的标签。

例如,通过针对七个序列中的每个序列比较序列中所包括的帧之间的相似性,建模设备产生最佳循环序列以便能够在序列中实现连续重放。

建模设备可基于七个不同序列之中的至少一个序列中所包括的帧和六个其它剩余序列中所包括的帧之间的相似性产生转换边。建模设备可通过组合循环序列并且标识不同序列之间的转换边在哪里合适来产生流体动画曲线图。

随后,当由与用户设备组合或与用户设备互连的输入装置(诸如,例如用户终端、控制杆、HMD)接收到运行时处理的处理中的用户输入时,建模设备可通过将用户输入改变为显示类型指示器来搜索具有与用户输入匹配的标签的序列。例如,这种显示类型指示器可以是预布置的二进制码或十六进制码。此外,提供的输入装置的示例仅是示例,并且根据需要在其它示例中使用其它输入装置。在这种示例中,建模设备可基于用户输入确定控制可变形体(例如,小船)的方向。例如,建模设备可基于用户输入从流体动画曲线图中所包括的序列之中选择与控制小船的方向对应的序列。在这个示例中,流体动画曲线图可控制可变形体的移动,并且包括与反映由于可变形体的移动导致的流体的移动的多个情景对应的多个序列。

在这种示例中,建模设备可搜索从正被重放的当前序列到选择的序列的转换边。例如,当在与非旋转继续对应的序列的重放期间接收到用户输入时,建模设备可基于用户输入选择具有与控制小船的方向匹配的标签的序列。例如,在预先产生的流体动画曲线图中所包括的序列之中,这种方向对应于右转或左转。建模设备可搜索从正被重放的当前序列到选择的序列的转换路径,并且通过基于转换边来转换序列来继续执行建模。

图15是示出根据实施例的运行时处理的处理的另一示例的流程图。参照图15,该处理在操作1510中接收用户输入,并且在操作1520中使用流体动画曲线图搜索与用户输入匹配的序列。例如,建模设备在操作1510中接收用户输入,并且在操作1520中使用流体动画曲线图搜索与用户输入匹配的序列。

在操作1530中,该处理验证/确定是否检索到与用户输入匹配的序列。例如,建模设备验证是否检索到与用户输入匹配的序列。在示例中,建模设备可基于例如添加到序列的标签信息搜索与用户输入匹配的序列。基于检索到与用户输入匹配的序列的操作1530中的验证的结果,该处理通过在操作1540中重放检索到的序列来对与用户输入对应的移动进行建模。例如,建模设备通过在操作1540中重放检索到的序列来对与用户输入对应的移动进行建模。

基于未检索到与用户输入匹配的序列的操作1530中的验证的结果,该处理通过在操作1550中混合流体动画曲线图中所包括的多个序列之中与用户输入相似的序列来对与用户输入对应的移动进行建模。例如,建模设备通过在操作1550中混合流体动画曲线图中所包括的多个序列之中与用户输入相似的序列来对与用户输入对应的移动进行建模。在示例中,建模设备可基于流体动画曲线图中所包括的所述多个序列的速度信息和形状信息中的至少一种,混合与用户输入相似的序列。参照图16至18进一步描述这样的方法:建模设备通过基于所述多个序列的形状信息混合与用户输入相似的序列来对与用户输入对应的移动进行建模。

图16是示出根据实施例的通过混合与用户输入相似的序列来对与用户输入对应的移动进行建模的示例的流程图。图16示出可对应于如图15中所示的操作1550的示例。在操作1610中,该处理从流体动画曲线图中所包括的多个序列之中搜索与用户输入相似的序列。例如,建模设备从流体动画曲线图中所包括的多个序列之中搜索与用户输入相似的序列。建模设备基于添加到所述多个序列的至少一个标签搜索与用户输入相似的序列。“与用户输入相似的序列”除了包括物理量与用户输入相似的序列之外,还应该被理解为包括由建模设备基于序列的组合产生以对应于用户输入的序列。

例如,在示例中,假设:向下方向↓的序列、向右方向→的序列、向左方向←的序列和向上方向↑的序列被包括在流体动画曲线图中,并且向右方向→和向下方向↓之间的45度的右下方向被输入作为用户输入。

在示例中,添加到每个序列的标签可包括对应序列的含义或注解,并且也包括与序列关联的标识信息的参数化值。建模设备可通过搜索添加到每个序列的标签或标签中所包括的参数化值来搜索与向右方向→和向下方向↓之间的45度的右下方向相似的序列(例如,向下方向↓的序列和向右方向→的序列)。

在另一示例中,假设:从左侧施加的外力的量具有值10的序列、从左侧施加的外力的量具有值50的序列和从右侧施加的外力的量具有值20的序列被包括在流体动画曲线图中。响应于分配为用户输入的来自左侧的外力的量是35,建模设备可搜索添加到每个序列的标签,并且搜索从左侧施加的外力是10的序列和从左侧施加的外力是50的序列并且将这两个序列标识为与用户输入最相似的序列。

建模设备可基于用户输入和所述多个序列之间的相似性(例如,形状相似性、能量相似性和帧相似性)搜索与用户输入相似的序列。已在以上更详细地讨论了这种类型的相似性,并且为了简洁而在这里省略这些相似性的进一步讨论。

在操作1620中,该处理通过混合检索到的序列来产生与用户输入对应的混合序列。例如,建模设备通过混合检索到的序列来产生与用户输入对应的混合序列。“混合”应该被理解为除了执行序列的混合之外,还包括执行序列的内插。这种混合允许利用预先产生的序列以帮助产生使用以前在不同序列中预先产生的信息的序列。参照图17和18进一步描述由建模设备产生混合序列的方法。

在操作1630中,该处理使用混合序列对与用户输入对应的移动进行建模。例如,建模设备使用混合序列对与用户输入对应的移动进行建模。

图17是示出根据实施例的产生混合序列的方法的示例的流程图。图17示出可对应于如图16中所示的操作1620的示例。图18示出根据实施例的产生混合序列的方法的示例。

参照图17的示例,在操作1710中,该处理基于用户输入和检索到的序列提取混合权重。例如,建模设备基于用户输入和检索到的序列提取混合权重。在操作1720中,该处理通过为检索到的序列分配混合权重来产生混合序列。例如,建模设备通过为检索到的序列分配混合权重来产生混合序列。

由图18的示例示出图17的处理的各方面。例如,在示例中,假设:指示从左侧施加的外力具有值10的序列A 1810和指示从左侧施加的外力具有值50的序列B 1820被检索为与用户输入(例如,从左侧施加的外力的量具有值35)相似的序列。在这个示例中,序列A 1810包括与从左侧施加的外力的量具有值10对应的参数化值,并且序列B 1820包括与从左侧施加的外力的量具有值50对应的参数化值。

通过将3.5乘以指示外力的量是10的序列A 1810或将0.7乘以指示外力的量是50的序列B 1820,建模设备可获得与用户输入(例如,从左侧施加的外力的量具有值35)对应的序列。这里,3.5或0.7对应于混合权重,混合权重基于相关的力的各种值。

在这种示例中,建模设备可提取用于序列A 1810的具有值3.5的混合权重或用于序列B 1820的具有值0.7的混合权重,并且通过为序列A 1810的具有值10的参数化外力分配具有值3.5的混合权重或为序列B 1820的具有值50的参数化外力分配具有值0.7的混合权重来新产生序列AB 1840。

在操作1730中,该处理基于检索到的序列之间的转换边产生混合序列和检索到的序列之间的类似转换边。例如,建模设备基于检索到的序列之间存在的转换边产生混合序列和检索到的序列之间的类似转换边。例如,在这种示例中,假设:转换边1830存在于序列A 1810和序列B 1820之间。因此,建模设备可产生转换边1850,转换边1850从混合权重相对较大的序列A 1810开始,朝着混合权重相对较小的序列B 1820,通过产生的混合序列AB 1840。

在示例中,建模设备在基于检索到的序列之间的转换边的转换期间产生混合序列。建模设备可基于所述类似转换边组合混合序列和流体动画曲线图中所包括的序列。

图19示出根据实施例的建模处理的另一示例。在操作1910中,该处理响应于接收到的用户输入而搜索存储在数据库(DB)1905中的流体动画曲线图。例如,建模设备响应于接收到的用户输入而搜索存储在数据库(DB)1905中的流体动画曲线图。在操作1920中,该处理验证/确定是否从流体动画曲线图中所包括的多个序列之中检索到与用户输入匹配的序列或者是否可从流体动画曲线图中所包括的多个序列之中检索到与用户输入匹配的序列。例如,建模设备验证是否从流体动画曲线图中所包括的多个序列之中检索到与用户输入匹配的序列。

基于检索到与用户输入匹配的序列的操作1920中的验证的结果,该处理在操作1940中融合检索到的序列中的具体建模元素,并且重放融合了具体建模元素的检索到的序列。例如,建模设备在操作1940中融合检索到的序列中的具体建模元素,并且重放融合了具体建模元素的检索到的序列。具体建模元素包括例如基于检索到的序列的形状曲率的飞溅元素、基于检索到的序列的速度的浪花元素、基于检索到的序列的形状信息和速度信息的泡沫元素以及基于质点跟踪的浪花-泡沫转换元素。然而,这些仅是示例,并且在其它示例中根据需要使用其它具体建模元素。

基于未检索到与用户输入匹配的序列的操作1920中的验证的结果,该处理在操作1930中混合流体动画曲线图中所包括的所述多个序列之中与用户输入相似的序列。例如,建模设备在操作1930中混合流体动画曲线图中所包括的所述多个序列之中与用户输入相似的序列。在混合的操作1930中,建模设备可通过基于序列的形状信息和速度信息或序列中所包括的每个帧的形状信息和速度信息混合与用户输入相似的序列来产生混合序列。在其它示例中,根据需要,另外的信息被用于补充形状信息和速度信息。参照图17和18进一步描述由建模设备基于形状信息混合序列的方法。

与形状信息相比,速度信息的可见效果可能较小。然而,速度信息可能需要三倍的数据的量,因为需要存储与x轴、y轴和z轴对应的三个图像。作为其操作的一部分,建模设备可基于序列的速度信息混合与用户输入相似的序列。例如,建模设备通过基于与当前存储的序列关联的速度信息分配权重来执行混合的方法。

例如,建模设备可基于形状信息以高分辨率执行混合,因为形状信息的可见效果相对较大,并且建模设备可基于速度信息以低分辨率执行混合,因为速度信息的可见效果相对较小。

在操作1940中,该处理融合包括混合序列的序列中的具体建模元素,并且重放融合了具体建模元素的序列。例如,建模设备融合包括混合序列的序列中的具体建模元素,并且重放融合了具体建模元素的序列。

图20是示出根据实施例的建模设备的示例的框图。参照图20的示例,建模设备2000包括存储器2010、处理器2020和接收器2030。在各种示例中,建模设备2000可包括预处理器2040或者可不包括预处理器2040。此外,在各种示例中,建模设备2000可选地还包括帮助其执行建模的能力的其它计算组件。在图20中,箭头表现建模设备2000的各部分之间的数据交换的路径。

存储器2010存储在预处理器2040中产生或由建模设备2000以其它方式产生的序列和流体动画曲线图。所述序列包括多个帧。存储器2010可以是易失性存储器或非易失性存储器。

处理器2020使用流体动画曲线图搜索与用户输入匹配的序列,并且基于搜索的结果对与用户输入对应的移动进行建模。

处理器2020从流体动画曲线图中所包括的序列之中选择具有与用户输入匹配的标签的序列,并且搜索从正被重放的当前序列到选择的序列的转换边。

响应于检索到与用户输入匹配的序列,处理器2020重放检索到的序列。在这个示例中,检索到的序列可包括表现与用户输入对应的可变形体的移动和由于可变形体的移动导致的流体的移动的多个连续帧。

处理器2020基于用户输入确定控制可变形体的方向,并且在流体动画曲线图中所包括的序列之中选择与该方向对应的序列。此外,处理器2020搜索从正被重放的当前序列到选择的序列的转换路径。

响应于未检索到与用户输入匹配的序列,处理器2020通过混合流体动画曲线图中所包括的多个序列之中与用户输入相似的序列来对与用户输入对应的移动进行建模。

然后,处理器2020基于流体动画曲线图中所包括的所述多个序列的速度信息和形状信息中的至少一种混合与用户输入相似的序列。

处理器2020还从流体动画曲线图中所包括的所述多个序列之中搜索与用户输入相似的序列,并且通过混合检索到的序列来产生与用户输入对应的混合序列。然后,处理器2020通过使用混合序列来对与用户输入对应的移动进行建模。

处理器2020基于添加到所述多个序列的至少一个标签搜索与用户输入相似的序列。

处理器2020还基于检索到的序列和用户输入提取混合权重,并且通过为检索到的序列分配混合权重来产生混合序列。

此外,处理器2020基于检索到的序列之间的转换边产生混合序列和检索到的序列之间的类似转换边。

此外,处理器2020重放检索到的序列中所包括的帧,并且验证/确定正被重放的当前帧是否对应于从检索到的序列转换到混合序列的帧。处理器2020基于预先在混合序列和检索到的序列之间产生的类似转换边重放混合序列中所包括的帧。

接收器2030接收用户输入。

例如,处理器2020可执行参照图1至19或这些附图的任何组合以各种方式表示的前述方法中的至少一种方法。

在示例中,处理器2020执行程序(例如,应用程序),并且控制建模设备2000。例如,由处理器2020执行的这种程序代码可被存储在存储器2010中。在示例中,建模设备2000可通过输入和输出装置连接到外部设备(例如,个人计算机(PC))或网络,并且相应地交换数据。

预处理器2040产生与预定建模集合对应的序列,并且基于所述序列中所包括的帧之间的相似性产生流体动画曲线图。预处理器2040还添加与所述序列对应的至少一个标签。例如,基于用户输入、外力、流体的流入和消失以及与另一对象的相互作用定义所述至少一个标签。

慈爱,预处理器2040计算序列中所包括的帧之间的至少一种相似性。预处理器2040为所述至少一种相似性分配权重,并且基于被分配了权重的所述至少一种相似性的加权和产生流体动画曲线图。

预处理器2040还计算所述序列之中的所述至少一个序列中所包括的帧之间的第一相似性,并且基于第一相似性产生在所述至少一个序列中递归的循环序列。

此外,预处理器2040基于所述序列之中的所述至少一个序列中所包括的帧和其余序列中所包括的帧之间的第二相似性产生指示所述序列之间的可能的移动路径的转换边。预处理器2040基于产生的转换边产生流体动画曲线图。预处理器2040可执行图1-19的前述操作中的任何操作或任何组合。

在图20的示例中,存储器2010、处理器2020、接收器2030和预处理器2040通过总线彼此通信,或者它们可按照无线方式通信。

在示例中,建模设备2000可包括存储器2010、处理器2020和接收器2030。在这个示例中,预处理器2040被布置在建模设备2000的外表面或外部,以用作另外的预处理器。可在存储器2020中存储或更新在预处理器2040中产生的序列和流体动画曲线图。

根据实施例,建模设备2000将数据存储在各种数字装置(诸如,移动装置)中或连接到所述各种数字装置,并且基于实时地对用户输入做出响应在图像应用中提供具有真实感的移动。

执行这里参照图1-20描述的操作的图1-20中示出的设备、单元、模块、装置和其它组件由硬件组件实现。硬件组件的示例包括控制器、传感器、产生器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器和本领域普通技术人员已知的任何其它电子组件。在一个示例中,硬件组件由计算硬件(例如,由一个或多个处理器或计算机)实现。处理器或计算机由一个或多个处理元件(诸如,逻辑门的阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或者能够以定义的方式对指令做出响应并且执行指令以实现想要的结果的本领域普通技术人员已知的任何其它装置或装置的组合)实现。在一个示例中,处理器或计算机包括或连接到存储由该处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件执行指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)以执行这里参照图1-20描述的操作。硬件组件也响应于指令或软件的执行而访问、操纵、处理、创建和存储数据。为了简单,可在这里描述的示例的描述中使用单数术语“处理器”或“计算机”,但在其它示例中,使用多个处理器或计算机,或者处理器或计算机包括多个处理元件或多种类型的处理元件或者处理器或计算机包括多个处理元件并且包括多种类型的处理元件两者。在一个示例中,硬件组件包括多个处理器,并且在另一示例中,硬件组件包括处理器和控制器。硬件组件具有不同处理配置中的任何一种或多种处理配置,其示例包括单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。

执行这里参照图1-20描述的操作的图1-20中示出的方法由计算硬件(例如,由一个或多个处理器或计算机)执行,所述计算硬件如上所述执行指令或软件以执行这里描述的操作。

用于控制处理器或计算机实现硬件组件并且执行如上所述的方法的指令或软件被编写为计算机程序、代码段、指令或其任何组合,所述计算机程序、代码段、指令或其任何组合用于个别地或共同地指示或配置处理器或计算机以用作用于执行由硬件组件执行的操作和如上所述的方法的机器或专用计算机。在一个示例中,指令或软件包括由处理器或计算机直接执行的机器代码,诸如由编译器产生的机器代码。在另一示例中,指令或软件包括由处理器或计算机使用解释器执行的高级代码。本领域普通程序员可基于公开用于执行由硬件组件执行的操作和如上所述的方法的算法的附图中示出的框图和流程图以及说明书中的对应描述容易地编写指令或软件。

用于控制处理器或计算机实现硬件组件并且执行如上所述的方法的指令或软件以及任何关联的数据、数据文件和数据结构被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘和能够以非暂时性方式存储指令或软件以及任何关联的数据、数据文件和数据结构并且向处理器或计算机提供指令或软件以及任何关联的数据、数据文件和数据结构以使得处理器或计算机能够执行指令的本领域普通技术人员已知的任何装置。在一个示例中,指令或软件以及任何关联的数据、数据文件和数据结构分布在网络耦合的计算机系统上,以使得由处理器或计算机以分布式方式存储、访问和执行指令和软件以及任何关联的数据、数据文件和数据结构。

尽管本公开包括特定示例,但对于本领域普通技术人员而言将会清楚的是,在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中做出各种形式和细节上的改变。应该仅在描述性意义上而非为了限制的目的考虑这里描述的示例。对每个示例中的特征或方面的描述应该被视为适用于其它示例中的类似特征或方面。如果描述的技术被按照不同次序执行,和/或如果描述的系统、架构、装置或电路中的组件被按照不同方式组合和/或由其它组件或其等同物替换或补充,则可实现合适的结果。因此,本公开的范围不由详细描述定义,而是由权利要求及其等同物定义,并且权利要求及其等同物的范围内的所有变化应该被解释为被包括在本公开中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1