首页> 中国专利> 依赖图中的时间依赖性

依赖图中的时间依赖性

摘要

下文描述了涉及评估具有一个或多个时间依赖变量的依赖图的系统和处理。时间依赖变量可包括变量,该变量可被用于评估时间依赖变量被评估处的帧之外的帧处的依赖图。一个示例处理可包括利用时间依赖性列表来追踪针对每个时间依赖变量的时间污染状态。该列表可被用于确定当评估特定帧的依赖图的请求被接收时哪个帧应该被重新评估,如果存在应该被重新评估的帧。这有利地减少了重新评估依赖图所需的时间量和计算资源。

著录项

  • 公开/公告号CN104520902A

    专利类型发明专利

  • 公开/公告日2015-04-15

    原文格式PDF

  • 申请/专利权人 梦工厂动画公司;

    申请/专利号CN201380041346.X

  • 发明设计人 A·P·鲍威尔;A·M·威尔斯;

    申请日2013-08-02

  • 分类号G06T13/20;G06T19/20;

  • 代理机构余姚德盛专利代理事务所(普通合伙);

  • 代理人郑洪成

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 04:31:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-09

    授权

    授权

  • 2015-07-15

    实质审查的生效 IPC(主分类):G06T13/20 申请日:20130802

    实质审查的生效

  • 2015-04-15

    公开

    公开

说明书

相关申请的交叉引用

本申请请求2012年8月3日向美国专利商标局提交的美国临时专利 申请No.61/679665的优先权,其整体内容在此通过引用并入本文。

技术领域

本发明总体涉及计算机产生的动画,更具体地涉及对具有一个或多个 时间依赖变量的依赖图进行评估。

背景技术

媒体制作通常使用依赖图来对动画中的场景进行渲染、动画化、或者 描绘。这些依赖图可由互连节点形成,每个互连节点可以是单独计算单元, 该单独计算单元经由一个或多个输入属性来获取数据,执行对数据的一些 计算,并且产生一个或多个输出属性。连接图形中的节点的边缘可表示从 一个节点至下一个节点的数据流动,其中每个节点对其接收的数据执行一 些计算以产生其输出。节点可具有任意数量的输入和任意数量的输出以及 其它属性。通过改变馈入节点的输入属性,动画师可控制对象或场景的动 作、位置和其它视觉效果。

随着媒体制作创建更真实的动画,用来支持这些动画的依赖图中的节 点的复杂性和数量也增大。例如,随着角色被改进为包括更逼真的视觉元 素和运动,描述角色的图形可能变得越来越大而且更复杂。普遍的是将具 有几千个节点的依赖图用于动画化动画片的单个帧。这样,处理这些依赖 图所需的时间和计算资源通常非常大。

这些处理延迟在制作期间可以相当昂贵并不确定。例如,用于一组镜 头的依赖图可包括表示将在一组镜头中显示的角色和其它人或物的几千 个节点。动画师可将输入配置给依赖图内的各种节点以使得角色按照期望 的方式运动。一旦输入被配置,图形可被评估以针对确定数量的帧来确定 依赖图的输出。根据被计算的帧的数量,在能够获得依赖图的输出之前, 可要求动画师等待相当长的时间。动画师可随后查看得到的图像以确定提 供给依赖图的输入是否产生了期望结果。如果动画师不满意结果,动画师 可修改提供给依赖图的输入,而且图形可被再次评估。该迭代过程可执行 数百次或者更多次直到得到期望输出。

在图形包括在不同时间取决于其它节点的输出的节点时,处理延迟可 更有问题。例如,配置成确定轮子应该旋转多少的节点可接收来自前一帧 的轮子的水平位置以及来自当前帧的水平位置作为输入。可随后根据轮子 行进的线性距离和半径来执行计算以确定轮子的旋转。因此,这些时间依 赖的节点可取决于图形内的节点的输出以及来自不同帧的图形内的节点 的输出。但是,传统动画系统不能追踪这些时间依赖性。于是,如果动画 师改变依赖图内的任意节点的输入值,必须从一组镜头的第一帧至期望帧 评估图形。例如,如果动画师仅仅改变涵盖帧0-100的一组镜头的帧70处 的输入,以评估第71帧,可能要求针对帧0-71评估图形。

发明内容

描述了用于评估具有一个或多个时间依赖变量的依赖图的处理。一个 示例处理可包括:通过处理器接收请求以评估针对动画的被请求帧的依赖 图;根据时间依赖性列表来识别用于评估针对被请求帧的依赖图的帧的时 间依赖变量的污染值,其中时间依赖性列表包括依赖图的之前的评估所确 定的时间依赖变量的值的列表;评估所识别出的污染值;根据所识别出的 污染值的评估来更新时间依赖性列表的值的列表;以及至少部分地根据时 间依赖性列表的值的更新列表来评估被请求帧处的依赖图的至少一部分。

在一些示例中,时间依赖性列表可包括针对值的列表中的每个值的时 间污染标记。在其它示例中,识别污染值可包括剖析时间依赖性列表以识 别包括一组时间污染标记的值的列表中的值。在另一些示例中,更新时间 依赖性列表的值的列表可包括:在时间依赖性列表中存储识别出的污染值 的评估结果;以及针对识别出的污染值来重置时间污染标记。

在一些示例中,评估识别出的污染值可不包括评估用于评估针对被请 求帧的依赖图的帧的非污染值。

在一些示例中,时间依赖变量可被识别为是依赖图中的一个或多个节 点的时间依赖变量。

在一些示例中,所述方法可进一步包括,在接收请求以评估被请求帧 处的依赖图之前:识别时间依赖变量;产生时间依赖性列表;评估针对一 个或多个帧的依赖图;以及在时间依赖性列表中存储评估针对一个或多个 帧的依赖图而得到的时间依赖变量的值。

还描述了用于评估具有一个或多个时间依赖变量的依赖图的系统和 计算机可读存储介质。

附图说明

通过结合附图参考后续说明能够最好地理解本申请,其中相同数字可 引用相同部分。

图1图示出根据各种示例的可利用用于评估具有时间依赖性的依赖图 的处理产生的示例性渲染图像。

图2图示出根据各种示例的具有时间依赖性的示例性依赖图。

图3图示出根据各种示例的用于评估具有时间依赖性的依赖图的示例 性处理。

图4图示出根据各种示例的示例性时间依赖性列表。

图5图示出根据各种示例的用于评估具有时间依赖性的依赖图的示例 性处理。

图6图示出根据各种示例的示例性时间依赖性列表。

图7图示出根据各种示例的示例性时间依赖性列表。

图8图示出根据各种示例的用于评估具有时间依赖性的依赖图的示例 性处理。

图9图示出示例性计算系统。

具体实施方式

提供下面的描述以使得本领域普通技术人员能够做出及实现各种实 施例。具体装置、技术和应用的描述仅仅被提供作为示例。本领域普通技 术人员很容易想到对此处描述的示例的各种修改,而且此处定义的总原理 可适用于其它示例和应用,而不脱离本技术的精神和范围。因此,公开的 技术并不限于此处描述和表示的示例,而是与权利要求一致的相应范围。

出于说明的目的,通过本公开文本,软件、软件模块、软件对象等可 被描述为执行各种功能。但是本领域技术人员可以理解的是,软件不主动 地执行任意功能,而是可以包括可在计算机处理器上执行的指令。这样, 虽然软件在此可被描述为执行功能,但是应该理解的是,计算机处理器或 其它计算装置通常可通过执行软件模块或对象提供的计算机指令来执行 此处分配给软件模块或对象的这些功能。

下文描述了涉及评估具有一个或多个时间依赖变量的依赖图的系统 和处理。时间依赖变量可包括变量,该变量可被用于评估时间依赖变量被 评估处的帧之外的帧处的依赖图。一个示例处理可包括利用时间依赖性列 表来追踪针对每个时间依赖变量的时间污染状态。该列表可被用于确定当 评估特定帧的依赖图的请求被接收时哪个帧应该被重新评估,如果存在应 该被重新评估的帧。这有利地减少了重新评估依赖图所需的时间量和计算 资源。

图1示出了根据各种示例的可利用用于评估具有时间依赖性的依赖图 的处理进行渲染的示例性计算机产生的图像。注意,图1示出了角色,其 特征可能取决于角色的骨骼的当前位置以及来自之前的帧的角色的骨骼 的位置。

如前所述,具有互连节点的依赖图(每个互连节点可以是单独计算单 元)可被用于渲染、动画化或描述动画中的场景。例如,图2图示出示例 性依赖图200,其可被用于产生计算机产生的动画场景,如图1所示的那 样。依赖图200可包括对图形的输入202和204,其可例如是数据,该数 据描述了角色动作动画对象的位置、场景背景、时间变化、或节点206和 220将对其执行计算以产生输出属性的任意各种特征。图形200还可包括 输出230,232,234和236,其可例如表示特定帧/时间下的场景的图像。 因此,图形200的单次评估可被执行以产生动画的帧的图像、3D几何形状 或其它表示形状。图形200可被多次评估,其中每次评估产生针对不同帧 的输出230,232,234,236,从而产生计算机产生的动画。

如所示,依赖图200可包括通过边缘互连的多个节点(例如,节点206, 208,210,212,214,216,218,220,222,224,226和228)。每个节点 可表示将对节点的输入处接收的数据执行以在节点的输出产生数据的计 算操作。边缘可以是定向的而且可指示节点之间的数据流的方向。例如, 节点206可以是根据时间输入202确定车轮子的位置的节点。节点206确 定的位置可被提供给节点208和210,其可继而根据节点206确定的位置 来产生输出属性。因此,节点208和210可以说是取决于节点206的输出。

除了图形200中的数据依赖性之外,一些节点可取决于针对场景的之 前的帧计算出来的最终或中间数据值。比如,继续上面提供的示例,节点 210可以是这样的节点,其被配置成根据从节点206接收的轮子的当前位 置以及节点206针对前一帧从图形200的前一次评估计算出的轮子的之前 位置来确定轮子应该旋转多少。根据位置之差,节点210可计算并输出轮 子的旋转角并将该旋转角提供给节点216。由于节点210要求使用来自前 一帧的轮子的位置,节点206输出的轮子位置变量(例如,"wheel_position") 可被看作是"时间依赖变量"。

总体上,这些时间依赖变量可包括可被用于评估与时间依赖变量被评 估处的帧不同的帧处的依赖图的变量。输入至节点210的时间依赖变量在 图2中由离开并再次进入节点210的虚线箭头表示。时间偏移值-1也被示 出,表示时间依赖变量的帧偏移。例如,值-1可表示来自之前的帧的值可 被采用。虽然示出了负值,但是应该理解的是,也可以使用正时间偏移值 (例如,表示来自之前的帧的值的使用的值+1)。

如上所述,由于图形200包括时间依赖变量,如果用户期望利用传统 动画系统计算帧100的图形200的输出,在针对帧100评估图形200之前 必须针对帧0-99中的每个评估图形200。这会要求大量时间和计算资源。 为了减少重新评估具有时间依赖性的图形所需的计算量,图3所示的评估 处理300可与时间依赖性列表一起使用,类似于图4。

具体地,图3图示出根据各种示例的用于评估具有时间依赖性的依赖 图的示例性处理。在块302,请求可被接收以评估针对具体帧的依赖图。 依赖图可类似于或者等同于图形200而且可包括通过边缘互连的任意数量 的节点。该请求可包括针对一组镜头的一个或多个帧评估依赖图的请求。 帧标识符可被用于识别将被评估的帧。例如,帧标识符可包括特定的一组 镜头内的帧的数值(例如,一组镜头Z的帧X),可包括整个计算机产生的 动画内的帧的数值(例如,帧Y)、与帧相关的时间、或任意其它期望的标 识符。当在块302接收请求之后,处理可随后进入块304。

为了便于说明,可在块302从用户接收请求以通过动画的前10个帧 的每个来评估图形200渲染这些帧。

在块304,可以针对在块302处要求的依赖图判断时间依赖性列表是 否存在或者已经产生。时间依赖性列表可包括存储变量标识符的一个或多 个数据结构、一个或多个帧处识别的变量的值、与每个存储的值相关的帧 标识符、以及时间污染标记。变量标识符可包括针对时间依赖变量(例如, 依赖图内的任意输入或输出)的任意标识符,其可被依赖图在时间依赖变量 被评估处的帧之外的其它帧期间使用(例如,评估后续帧或先前帧的依赖图 时使用的变量的值)。每个计算出的帧的这些时间依赖变量的值也可与相关 帧一起存储在时间依赖性列表中。时间污染标记可指示存储的值当前是否 有效或者潜在地无效。在同一评估循环中,该时间污染标记与分配给依赖 图的输入/输出属性的污染标记分离。相反,时间污染标记可指示属性是否 对于特定帧有效。例如,节点206可针对第一帧处理输入202以输出 "wheel_position”值。为了计算第二帧,输入202可改变为与第二帧相对应 的值。由此,节点206的输出属性可通过利用传统污染标记而被标记为污 染。但是,先前计算的"wheel_position”可暂时不被标记为污染,因为它仍 然表示针对第一帧的轮子的正确位置。

图4图示出针对图形200的示例时间依赖性列表的图形表示。在该示 例中,列表的第一栏包含图形200的节点206输出的时间依赖值 "wheel_position”的变量标识符。第二栏包括帧标识符,其形式为已经被计 算出来的"wheel_position”的值的帧编号。第三栏包括针对表示的帧编号处 的"wheel_position”的计算值。例如,"wheel_position”已经被确定为对于该 特定的一组镜头的帧3具有值150。第四栏包括针对每个变量标识符-帧标 识符-值组合的时间污染标记。值0(可替换地,1)可表示针对识别出的变 量和帧的值不是污染的而且可被其它节点使用。值1(可替换地,0)可表示 针对识别出的变量和帧的值是污染的而且应该在被使用之前重新计算。虽 然仅仅一个变量标识符被包含在列表400中,但是应该理解的是,列表400 可包括与图形200中的一些或所有时间依赖变量对应的任意数量的标识 符。可替换地,单独的时间依赖性列表可用于每个时间依赖变量。出于简 洁的目的,已经假设图形200仅仅包括一个时间依赖变量(例如, "wheel_position")。

回到图3,如果在块304确定不操作或者没有针对依赖图产生时间依 赖性列表,处理可进入块306,其中图5所示的处理500可被执行。例如, 这可在图形的第一次评估期间,因为时间依赖性列表可在图形的第一次评 估期间产生。

现在回到图5,如果没有针对依赖图产生依赖图,处理500的块502 可被执行。总体上,处理500可在依赖图的第一次评估期间或者在图形结 构的变化之后或者其节点之一已经出现时被执行。在块502,依赖图中的 时间依赖变量可被识别。在一些示例中,这可通过剖析依赖图的每个节点 以确定作用不同(例如,后续或先前)帧中的节点的输入和它们的时间偏移 (例如,-2,-1,+1,+2等)的任意变量来执行。此外,图形的拓扑可被检 查以识别具有时间依赖性的哪个节点的输出直接或间接连接至(例如,一系 列连接的节点可存在于他们之间)另一节点上的时间输入。当针对时间输入 评估图形时,馈入至该输入的具有时间依赖性的所有节点可首先被满足。 采用轮子旋转示例提供如上,如果轮子的轮胎上缠住了绳子,那么轮子的 旋转必须在对绳子运动进行仿真之前进行计算。

为了便于说明,继续上述示例,为了计算帧2处轮子的旋转,节点210 可通过节点206接收针对帧2的"wheel_position”输出以及通过节点206接 收针对帧1的"wheel_position”输出(例如,(被请求帧+时间偏移)=(帧2+ -1)=帧1)。因此,"wheel_position”可被识别为时间依赖变量。

在其它示例中,定义图形的每个节点的编程器可明确地识别时间依 赖的变量。例如,在申明要求来自先前帧的"wheel_position”的值的输入时, 创建节点210的编程器可包括诸如"TEMPORAL SOURCE”的标签和帧偏 移值(例如,-1)。依赖图的每个节点的剖析可被执行来识别具有类似或相 同时间依赖标签的变量。

在块504,针对依赖图的时间依赖性列表可被产生。这可包括创建时 间依赖性列表的例子,反转针对列表的存储器的空间,或其它类似操作。 在一些示例中,在块502中识别出的每个时间依赖变量的条目以及针对一 组镜头的每个帧的条目可被添加至时间依赖性列表。在这些示例中,每个 时间依赖变量以及每个帧的条目可被设置成任意值,而且这些值的时间污 染标记可被设置成1(表示该值是污染的)。在其它示例中,列表可在生成时 为的空白的。

在块506,依赖图可被评估并且潜在地包含在处理300的块302请求 的帧。例如,如果在块302接收到请求来通过针对这些帧中的每个评估图 形200渲染动画的前10个帧,图形200可被评估10次以产生帧0-9中的 每个的输出。在其中时间依赖变量包括正时间偏移的情况下,图形可从帧 范围的最后向后地朝着被请求帧范围进行评估。例如,如果动画存在多达 200帧,评估被请求帧之前,图形200可从帧200-10开始评估。

在块508,针对在块506评估出来的每个帧的在块502识别出来的时 间依赖变量的值可存储在在块504处产生的时间依赖性列表中。例如,图 6示出了示例的时间依赖性列表600,其可通过块508的执行得到。列表 600包括在块502识别的时间依赖变量的变量标识符以及在块506确定的 时间依赖变量的值和帧标识符。此外,由于存储的值是近期计算的而且由 于图形200还没有发生变化,所以每个存储的变量标识符-帧标识符-值组 合的时间污染标记已经被设置为0(非污染)。

一旦完成块508,处理可回到处理300的块302以等待另一请求来评 估依赖图。一旦已经针对依赖图产生了时间依赖性列表,列表可存储任意 期望的时间长度。例如,列表可被存储直到对结构进行了修改(例如,图形 中包含的节点和/或边缘)或者直到在图形中做出节点(例如,节点的输入和/ 或输出)。在其它示例中,列表可存储阈值时间长度、用户会话的长度、或 者任意其它期望时间长度。

此外,时间依赖变量的变化可在时间依赖性列表中追踪。例如,如果 在针对帧0-9评估了图形200之后动画师确定得到的动画输出是不令人满 意的,则动画师可改变针对特定帧(例如,帧6)的输入202的值,导致了特 定帧和任意后续帧处的节点206输出的"wheel_position”的值中的潜在变 化。由于针对该变量的时间偏移是负的,针对该帧和任意后续帧的时间污 染标记可被设置为1,如图7所示。但是,应该理解的是,可根据输入变 化处的那个帧以及时间依赖性的帧偏移是为正还是负,来确定时间依赖性 列表的哪个帧应该使得它们的时间污染标记被设置为1的判断。如果帧偏 移是负的(表示使用后续帧的变量),输入变化处的该帧之后的帧可被标记 为污染。但是,如果帧偏移为正(表示之前的帧的变量的使用),输入变化 处的该帧之前的帧可被标记为污染。

回到图3的块304,如果确定存在或者已经针对依赖图产生时间依赖 性列表,处理可进入块308,其中处理800可被执行。例如,如果之前已 经评估了依赖图,这可能发生。

为了便于说明,继续采用上述提供的图形200的示例,在用户已经改 变了针对帧6的输入202的值之后,针对这些帧的每个评估图形200来重 新评估动画的前10个帧的请求可在块302被接收。一旦接收到,处理可 进入块304,其中可确定是否存在或者已经产生针对图形200的时间依赖 性列表。由于之前已经在处理400的块504产生了时间依赖性列表600并 随后修改它以产生时间依赖性列表700,在块304可确定已经产生针对图 形200时间依赖性列表700。这样,处理可进入块308。

在块308,图8所示的处理800可被执行。总体上,处理800可在图 形的一个或多个输入已经变化之后被执行以重新评估图形。在处理800的 块802,可确定时间依赖性列表是否包括针对块302处请求的帧所依据的 帧处的时间依赖变量的污染标记。这可包括剖析时间依赖性列表以确定被 请求帧是否要求任意暂时标记为污染的值。在一些示例中,标记为干净的 特定帧的时间依赖变量的值的缺失可被解释为是污染的。例如,如果对于 帧0-5,时间依赖性列表被产生并落在处理500的块504和506,则时间依 赖性列表可仅仅包括针对这些帧的条目。如果请求评估帧9处的图形,针 对帧6-8的条目的缺失可被解释为针对帧6-8的值是污染的。如果确定被 请求帧之前没有污染的时间依赖变量,处理可进入块804。

为了便于说明,如果在块302接收到请求来在帧5处评估图形200, 时间依赖性列表700可被剖析以确定列表是否包含针对被要求来评估被请 求帧5的帧的暂时标记为污染的值。由于时间偏移值是负数,这可包括确 定列表是否包含针对被请求帧5之前的帧的暂时标记为污染的值。在该示 例中,时间依赖性列表不包括帧5之前的值"wheel_position”的污染标记。 此外,存在针对在帧5前面的每个帧的标为干净的值(例如,帧0-4被标记 为暂时不为污染的)。因此,处理可进入块804。

在块804,依赖图可针对被请求帧进行评估。在一些示例中,这可包 括利用与被请求帧相关的输入值执行与依赖图的节点相关的操作。在这些 示例中,时间依赖变量的请求值可从时间依赖性列表获取。例如,如果在 块302接收到请求来在帧5处评估图形200,图形200可采用针对帧5的 输入202和204的值来评估。此外,由于节点210可能需要节点206输出 的针对帧4的"wheel_position”的值,可使用来自时间依赖性列表700的针 对帧4的值"wheel_position”(例如,194)。但是,如果在块802确定存在被 被请求帧请求的污染的时间依赖变量,处理可转而进入块806。

为了便于说明,如果在块302接收到请求来在帧9处评估依赖图200 而且如果时间依赖性列表700是针对图形200的时间依赖性列表,则时间 依赖性列表可被剖析以确定列表是否包含针对被请求帧9所要求的帧的暂 时标记为污染的值。由于时间偏移值是负数,这可包括确定列表是否包含 针对被请求帧9之前的帧的暂时标记为污染的值。在该示例中,时间依赖 性列表确实包括针对帧6-9处的值"wheel_position”的污染标记。因此,处 理可进入块806。

在块806,被请求帧要求的被标记为污染的每个时间依赖变量可被识 别出来。这可通过剖析时间依赖性列表以识别具有被被请求帧请求的被标 记为污染的值的变量来执行。在一些示例中,这可包括迭代地识别针对时 间依赖性列表中的每个污染条目的所要求的数据。例如,如果帧9要求来 自帧8的时间数据,在计算帧9之前时间依赖性可满足帧8。一旦识别出 来,处理可进入块808。

为了图示采用前面提供的示例,列表700可在块806被剖析而且 "wheel_position”变量可被识别为具有在被请求帧9之前的帧(例如,帧6, 7,8)处标记为污染的值(该时间依赖变量可具有时间偏移-1,意味着其需 要来自先前帧的值)。在该示例中,为了计算帧9处的时间输入,需要来自 帧8的时间数据(其在时间依赖性列表700中被标记为污染的)。这样,帧(例 如,8)和变量(例如,帧8处的"wheel_position”)都可被识别为需要被评估。 在一些示例中,需要被评估的帧和变量可被添加至评估列表。该处理可重 复直到不存在更多的被要求的时间依赖性,应用时间偏移的结果处于可能 的帧的范围边界之外,或者时间依赖性列表700具有针对所有要求的依赖 性的非污染条目。虽然时间依赖性列表仅仅包括一个时间依赖变量在该示 例中,应该理解的是,列表可包括任意数量的时间依赖变量,而且这些变 量的每个可在块806被识别出来。

在块808,在块806识别的时间依赖变量可针对具有污染值的帧进行 重新评估。这可通过剖析时间依赖性列表以识别标记为针对在块806识别 出的每个时间依赖变量的污染的最低帧值(对于负时间偏移,或者是针对正 时间偏移的最高帧值)来执行。随后可通过评估被要求来针对负时间偏移从 它们最早的污染帧开始直到但是不包括被请求帧为止评估时间依赖变量 的依赖图部分,由此重新评估每个时间依赖变量。可替换地,随后可通过 评估被要求来针对正时间偏移从它们最后的污染帧开始直到但是不包括 被请求帧为止评估时间依赖变量的依赖图部分,由此重新评估每个时间依 赖变量。重新评估的结果可存储在时间依赖性列表中,而且针对这些值的 污染标记可被重置为0。

在一些示例中,并非所有时间依赖变量可在同时评估。比如,一些依 赖性可馈送其它的,或者一些依赖性可要求来自时间依赖性列表中非有效 的将来帧的值。在这些示例中,仅仅它们自己的时间依赖性被标记为有效 的时间输入可被评估。识别出的需要评估的时间依赖变量的帧范围上的前 向和/或后向的评估可被执行,其中每个都使得它们自己的时间依赖性被标 记为有效的所有变量通过评估。最后,所有都会成功具有有效的依赖性而 且可评估它们自己。处理可随后进入块804。

为了便于说明,继续上述示例,列表700可在块806被剖析而且帧6 可被识别为是最早的"wheel_position”变量被标记为污染的帧。因此,可通 过针对帧6-8中的每个的输入202的值执行与节点206相关的操作来针对 帧6-8重新评估"wheel_position"变量的值。这三个操作的结果可存储在时 间依赖性列表700中,而且针对帧6-8的"wheel_position”值的时间污染标 记可被重置为0。处理可随后进入块804。

在块804,可采用存储在时间依赖性列表中的值来在被请求帧处评估 依赖图,如上所述。

利用处理300、500和800有利地降低了时间依赖变量被修改时重新 估计依赖图所需的时间量和计算机资源。利用传统系统,一旦值针对帧发 生变化(例如,对帧6发生变化),依赖图可能已经针对先于被请求帧的所 有帧进行了评估,即使已经针对被请求帧之后的帧发生了变化。但是,如 前面所讨论和图示的那样,采用处理300、500和800,可仅仅评估依赖图 的需要重新计算已经针对被请求帧之前的帧变化的时间依赖变量的一些 部分。此外,采用这些处理允许复杂的嵌套模拟,其正确结果仅仅能够通 过多次评估帧范围来实现,这是因为一次模拟的结果被馈入另一个。处理 将评估次数和被评估的依赖图的部分降低至最少。

图9示出了示例性计算系统900,其具有可被用于执行上述处理的多 个组件。主系统902包括具有输入/输出("I/O")部分906的母板904、一个 或多个中央处理单元("CPU")908和存储部分910,存储部分910可具有与 之相关的闪存卡912。I/O部分906连接至显示器924、键盘914、盘存储 单元916和介质驱动单元918。介质驱动单元918可读取/写入可包含程序 922或数据的计算机可读介质920。

能够保存基于上述处理结果的至少一些值用于后续使用。或者,计算 机可读介质能够用来存储(如,切实体现)用来通过计算机方式实施上述 处理的任意一个的一个或多个程序。可以写入计算机程序,例如采用通用 编程语言(如Pascal,C,C++)或一些特定应用的指定语言。

在此描述了各种示例性实施例。以非限制的方式参考这些示例。它们 被提供来示例可更宽范围应用的公开的技术方面。可作出各种变化以及可 以替换等效形式,而不脱离各种实施例的真实精神和范围。此外,可作出 各种变更以适应具体情况、材料、主体成分、处理、对对象的处理动作或 步骤、各种实施例的精神和范围。而且,本领域技术人员可以理解的是, 此处描述及示例的每个单独的变形具有单独的组成和特征,它们可容易地 与其它一些实施例中的任意实施例的特征区分开或组合,而不脱离各种实 施例的范围或精神。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号