依赖图中的时间依赖性的制作方法_3

文档序号:8207777阅读:来源:国知局
块302以等待另一请求来评估依赖图。一旦已经针对依赖图产生了时间依赖性列表,列表可存储任意期望的时间长度。例如,列表可被存储直到对结构进行了修改(例如,图形中包含的节点和/或边缘)或者直到在图形中做出节点(例如,节点的输入和/或输出)。在其它示例中,列表可存储阈值时间长度、用户会话的长度、或者任意其它期望时间长度。
[0045]此外,时间依赖变量的变化可在时间依赖性列表中追踪。例如,如果在针对帧0-9评估了图形200之后动画师确定得到的动画输出是不令人满意的,则动画师可改变针对特定帧(例如,帧6)的输入202的值,导致了特定帧和任意后续帧处的节点206输出的"wheel_posit1n”的值中的潜在变化。由于针对该变量的时间偏移是负的,针对该帧和任意后续帧的时间污染标记可被设置为1,如图7所示。但是,应该理解的是,可根据输入变化处的那个帧以及时间依赖性的帧偏移是为正还是负,来确定时间依赖性列表的哪个帧应该使得它们的时间污染标记被设置为I的判断。如果帧偏移是负的(表示使用后续帧的变量),输入变化处的该帧之后的帧可被标记为污染。但是,如果帧偏移为正(表示之前的帧的变量的使用),输入变化处的该帧之前的帧可被标记为污染。
[0046]回到图3的块304,如果确定存在或者已经针对依赖图产生时间依赖性列表,处理可进入块308,其中处理800可被执行。例如,如果之前已经评估了依赖图,这可能发生。
[0047]为了便于说明,继续采用上述提供的图形200的示例,在用户已经改变了针对帧6的输入202的值之后,针对这些帧的每个评估图形200来重新评估动画的前10个帧的请求可在块302被接收。一旦接收到,处理可进入块304,其中可确定是否存在或者已经产生针对图形200的时间依赖性列表。由于之前已经在处理400的块504产生了时间依赖性列表600并随后修改它以产生时间依赖性列表700,在块304可确定已经产生针对图形200时间依赖性列表700。这样,处理可进入块308。
[0048]在块308,图8所示的处理800可被执行。总体上,处理800可在图形的一个或多个输入已经变化之后被执行以重新评估图形。在处理800的块802,可确定时间依赖性列表是否包括针对块302处请求的帧所依据的帧处的时间依赖变量的污染标记。这可包括剖析时间依赖性列表以确定被请求帧是否要求任意暂时标记为污染的值。在一些示例中,标记为干净的特定帧的时间依赖变量的值的缺失可被解释为是污染的。例如,如果对于帧0-5,时间依赖性列表被产生并落在处理500的块504和506,则时间依赖性列表可仅仅包括针对这些帧的条目。如果请求评估帧9处的图形,针对帧6-8的条目的缺失可被解释为针对帧6-8的值是污染的。如果确定被请求帧之前没有污染的时间依赖变量,处理可进入块804。
[0049]为了便于说明,如果在块302接收到请求来在帧5处评估图形200,时间依赖性列表700可被剖析以确定列表是否包含针对被要求来评估被请求帧5的帧的暂时标记为污染的值。由于时间偏移值是负数,这可包括确定列表是否包含针对被请求帧5之前的帧的暂时标记为污染的值。在该示例中,时间依赖性列表不包括帧5之前的值"wheelposit1n”的污染标记。此外,存在针对在帧5前面的每个帧的标为干净的值(例如,帧0-4被标记为暂时不为污染的)。因此,处理可进入块804。
[0050]在块804,依赖图可针对被请求帧进行评估。在一些示例中,这可包括利用与被请求帧相关的输入值执行与依赖图的节点相关的操作。在这些示例中,时间依赖变量的请求值可从时间依赖性列表获取。例如,如果在块302接收到请求来在帧5处评估图形200,图形200可采用针对帧5的输入202和204的值来评估。此外,由于节点210可能需要节点206输出的针对帧4的〃wheel_posit1n”的值,可使用来自时间依赖性列表700的针对帧4的值"wheel_posit1n”(例如,194)。但是,如果在块802确定存在被被请求帧请求的污染的时间依赖变量,处理可转而进入块806。
[0051]为了便于说明,如果在块302接收到请求来在帧9处评估依赖图200而且如果时间依赖性列表700是针对图形200的时间依赖性列表,则时间依赖性列表可被剖析以确定列表是否包含针对被请求帧9所要求的帧的暂时标记为污染的值。由于时间偏移值是负数,这可包括确定列表是否包含针对被请求帧9之前的帧的暂时标记为污染的值。在该示例中,时间依赖性列表确实包括针对帧6-9处的值〃wheel_posit1n”的污染标记。因此,处理可进入块806。
[0052]在块806,被请求帧要求的被标记为污染的每个时间依赖变量可被识别出来。这可通过剖析时间依赖性列表以识别具有被被请求帧请求的被标记为污染的值的变量来执行。在一些示例中,这可包括迭代地识别针对时间依赖性列表中的每个污染条目的所要求的数据。例如,如果帧9要求来自帧8的时间数据,在计算帧9之前时间依赖性可满足帧8。一旦识别出来,处理可进入块808。
[0053]为了图示采用前面提供的示例,列表700可在块806被剖析而且〃wheel_posit1n”变量可被识别为具有在被请求帧9之前的帧(例如,帧6,7,8)处标记为污染的值(该时间依赖变量可具有时间偏移-1,意味着其需要来自先前帧的值)。在该示例中,为了计算帧9处的时间输入,需要来自帧8的时间数据(其在时间依赖性列表700中被标记为污染的)。这样,帧(例如,8)和变量(例如,帧8处的〃wheel_posit1n”)都可被识别为需要被评估。在一些示例中,需要被评估的帧和变量可被添加至评估列表。该处理可重复直到不存在更多的被要求的时间依赖性,应用时间偏移的结果处于可能的帧的范围边界之外,或者时间依赖性列表700具有针对所有要求的依赖性的非污染条目。虽然时间依赖性列表仅仅包括一个时间依赖变量在该示例中,应该理解的是,列表可包括任意数量的时间依赖变量,而且这些变量的每个可在块806被识别出来。
[0054]在块808,在块806识别的时间依赖变量可针对具有污染值的帧进行重新评估。这可通过剖析时间依赖性列表以识别标记为针对在块806识别出的每个时间依赖变量的污染的最低帧值(对于负时间偏移,或者是针对正时间偏移的最高帧值)来执行。随后可通过评估被要求来针对负时间偏移从它们最早的污染帧开始直到但是不包括被请求帧为止评估时间依赖变量的依赖图部分,由此重新评估每个时间依赖变量。可替换地,随后可通过评估被要求来针对正时间偏移从它们最后的污染帧开始直到但是不包括被请求帧为止评估时间依赖变量的依赖图部分,由此重新评估每个时间依赖变量。重新评估的结果可存储在时间依赖性列表中,而且针对这些值的污染标记可被重置为O。
[0055]在一些示例中,并非所有时间依赖变量可在同时评估。比如,一些依赖性可馈送其它的,或者一些依赖性可要求来自时间依赖性列表中非有效的将来帧的值。在这些示例中,仅仅它们自己的时间依赖性被标记为有效的时间输入可被评估。识别出的需要评估的时间依赖变量的帧范围上的前向和/或后向的评估可被执行,其中每个都使得它们自己的时间依赖性被标记为有效的所有变量通过评估。最后,所有都会成功具有有效的依赖性而且可评估它们自己。处理可随后进入块804。
[0056]为了便于说明,继续上述示例,列表700可在块806被剖析而且帧6可被识别为是最早的〃wheel_posit1n”变量被标记为污染的帧。因此,可通过针对帧6_8中的每个的输入202的值执行与节点206相关的操作来针对帧6-8重新评估〃wheel_posit1n〃变量的值。这三个操作的结果可存储在时间依赖性列表700中,而且针对帧6-8的〃wheel_posit1n”值的时间污染标记可被重置为O。处理可随后进入块804。
[0057]在块804,可采用存储在时间依赖性列表中的值来在被请求帧处评估依赖图,如上所述。
[0058]利用处理300、500和800有利地降低了时间依赖变量被修改时重新估计依赖图所需的时间量和计算机资源。利用传统系统,一旦值针对帧发生变化(例如,对帧6发生变化),依赖图可能已经针对先于被请求帧的所有帧进行了评估,即使已经针对被请求帧之后的帧发生了变化。但是,如前面所讨论和图示的那样,采用处理300、500和800,可仅仅评估依赖图的需要重新
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1