CN109584343A - 依赖图中的时间依赖性 - Google Patents

依赖图中的时间依赖性 Download PDF

Info

Publication number
CN109584343A
CN109584343A CN201811148929.3A CN201811148929A CN109584343A CN 109584343 A CN109584343 A CN 109584343A CN 201811148929 A CN201811148929 A CN 201811148929A CN 109584343 A CN109584343 A CN 109584343A
Authority
CN
China
Prior art keywords
frame
time dependent
dependent variable
node
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811148929.3A
Other languages
English (en)
Other versions
CN109584343B (zh
Inventor
A·P·鲍威尔
A·M·威尔斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DreamWorks Animation LLC
Original Assignee
DreamWorks Animation LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by DreamWorks Animation LLC filed Critical DreamWorks Animation LLC
Priority to CN201811148929.3A priority Critical patent/CN109584343B/zh
Publication of CN109584343A publication Critical patent/CN109584343A/zh
Application granted granted Critical
Publication of CN109584343B publication Critical patent/CN109584343B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

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

Description

依赖图中的时间依赖性
本发明是申请号为201380041346.X、申请日为2013年8月2日、发明名称为“依赖图中的时间依赖性”的专利的分案申请。
相关申请的交叉引用
本申请请求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++)或一些特定应用的指定语言。
在此描述了各种示例性实施例。以非限制的方式参考这些示例。它们被提供来示例可更宽范围应用的公开的技术方面。可作出各种变化以及可以替换等效形式,而不脱离各种实施例的真实精神和范围。此外,可作出各种变更以适应具体情况、材料、主体成分、处理、对对象的处理动作或步骤、各种实施例的精神和范围。而且,本领域技术人员可以理解的是,此处描述及示例的每个单独的变形具有单独的组成和特征,它们可容易地与其它一些实施例中的任意实施例的特征区分开或组合,而不脱离各种实施例的范围或精神。

Claims (18)

1.电子装置,包括:
一个或多个处理器;和
存储器,存储用于评估具有时间依赖变量的依赖图的一个或多个程序,其中所述一个或多个程序被配置成由所述一个或多个处理器执行,所述一个或多个程序包括用于下述步骤的指令:
接收请求以评估针对动画的被请求帧的依赖图,
其中所述依赖图包括多个节点,和
其中所述多个节点中的第一节点的评估依赖于:
针对所述被请求帧的时间依赖变量的评估,和
针对和所述被请求帧不同的第一帧的时间依赖变量的评估;
依照确定所述时间依赖变量的第一值针对所述第一帧是不污染的,使用所述时间依赖变量的第一值来评估所述被请求帧的第一节点;和
依照确定所述时间依赖变量的第一帧针对所述第一帧是污染的:
针对所述第一帧评估所述时间依赖变量以产生针对所述第一帧的所述时间依赖变量的非污染值;和
使用所述时间依赖变量的非污染值评估针对所述被请求帧的第一节点。
2.权利要求1所述的电子装置,其中针对所述被请求帧评估所述第一节点还包括使用针对所述被请求帧的时间依赖变量的第二值。
3.权利要求1所述的电子装置,其中所述多个节点中的第一节点的评估还依赖于针对第二帧的时间依赖变量的评估,所述第二帧不同于所述第一帧和所述被请求帧。
4.权利要求1所述的电子装置,所述一个或多个程序还包括用于下述步骤的指令:使用针对所述被请求帧的第一节点的评估,评估针对所述被请求帧的依赖图的至少一部分。
5.权利要求1所述的电子装置,其中所述时间依赖变量的值基于与所述第一节点不同的第二节点的输出。
6.权利要求1所述的电子装置,其中针对所述第一帧产生所述时间依赖变量的非污染值包括针对第二帧产生所述时间依赖变量的非污染值,所述第二帧不同于所述第一帧和所述被请求帧。
7.一种非易失性计算机可读存储介质,存储用于评估具有时间依赖变量的依赖图的一个或多个程序,所述一个或多个程序由所述电子装置的一个或多个处理器执行,所述一个或多个程序包括用于下述步骤的指令:
接收请求以评估针对动画的被请求帧的依赖图,
其中所述依赖图包括多个节点,和
其中所述多个节点中的第一节点的评估依赖于:
针对所述被请求帧的时间依赖变量的评估,和
针对和所述被请求帧不同的第一帧的时间依赖变量的评估;
依照确定所述时间依赖变量的第一值针对所述第一帧是不污染的,使用所述时间依赖变量的第一值来评估所述被请求帧的第一节点;和
依照确定所述时间依赖变量的第一帧针对所述第一帧是污染的:
针对所述第一帧评估所述时间依赖变量以产生针对所述第一帧的所述时间依赖变量的非污染值;和
使用所述时间依赖变量的非污染值评估针对所述被请求帧的第一节点。
8.权利要求7所述的非易失性计算机可读存储介质,其中针对所述被请求帧评估所述第一节点还包括使用针对所述被请求帧的时间依赖变量的第二值。
9.权利要求7所述的非易失性计算机可读存储介质,其中所述多个节点中的第一节点的评估还依赖于针对第二帧的时间依赖变量的评估,所述第二帧不同于所述第一帧和所述被请求帧。
10.权利要求7所述的非易失性计算机可读存储介质,所述一个或多个程序还包括用于下述步骤的指令:
使用针对所述被请求帧的第一节点的评估,评估针对所述被请求帧的依赖图的至少一部分。
11.权利要求7所述的非易失性计算机可读存储介质,其中所述时间依赖变量的值基于与所述第一节点不同的第二节点的输出。
12.权利要求7所述的非易失性计算机可读存储介质,其中针对所述第一帧产生所述时间依赖变量的非污染值包括针对第二帧产生所述时间依赖变量的非污染值,所述第二帧不同于所述第一帧和所述被请求帧。
13.一种用于评估具有时间依赖变量的依赖图的方法,该方法包括:
接收请求以评估针对动画的被请求帧的依赖图,
其中所述依赖图包括多个节点,和
其中所述多个节点中的第一节点的评估依赖于:
针对所述被请求帧的时间依赖变量的评估,和
针对和所述被请求帧不同的第一帧的时间依赖变量的评估;
依照确定所述时间依赖变量的第一值针对所述第一帧是不污染的,使用所述时间依赖变量的第一值来评估所述被请求帧的第一节点;和
依照确定所述时间依赖变量的第一帧针对所述第一帧是污染的:
针对所述第一帧评估所述时间依赖变量以产生针对所述第一帧的所述时间依赖变量的非污染值;和
使用所述时间依赖变量的非污染值评估针对所述被请求帧的第一节点。
14.权利要求13所述的方法,其中针对所述被请求帧评估所述第一节点还包括使用针对所述被请求帧的时间依赖变量的第二值。
15.权利要求13所述的方法,其中所述多个节点中的第一节点的评估还依赖于针对第二帧的时间依赖变量的评估,所述第二帧不同于所述第一帧和所述被请求帧。
16.权利要求13所述的方法,还包括:
使用针对所述被请求帧的第一节点的评估,评估针对所述被请求帧的依赖图的至少一部分。
17.权利要求13所述的方法,其中所述时间依赖变量的值基于与所述第一节点不同的第二节点的输出。
18.权利要求13所述的方法,其中针对所述第一帧产生所述时间依赖变量的非污染值包括针对第二帧产生所述时间依赖变量的非污染值,所述第二帧不同于所述第一帧和所述被请求帧。
CN201811148929.3A 2012-08-03 2013-08-02 依赖图中的时间依赖性 Active CN109584343B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811148929.3A CN109584343B (zh) 2012-08-03 2013-08-02 依赖图中的时间依赖性

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261679665P 2012-08-03 2012-08-03
US61/679,665 2012-08-03
PCT/US2013/053519 WO2014022833A2 (en) 2012-08-03 2013-08-02 Temporal dependencies in dependency graphs
CN201380041346.XA CN104520902B (zh) 2012-08-03 2013-08-02 依赖图中的时间依赖性
CN201811148929.3A CN109584343B (zh) 2012-08-03 2013-08-02 依赖图中的时间依赖性

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380041346.XA Division CN104520902B (zh) 2012-08-03 2013-08-02 依赖图中的时间依赖性

Publications (2)

Publication Number Publication Date
CN109584343A true CN109584343A (zh) 2019-04-05
CN109584343B CN109584343B (zh) 2023-07-25

Family

ID=50025025

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201380041346.XA Active CN104520902B (zh) 2012-08-03 2013-08-02 依赖图中的时间依赖性
CN201811148929.3A Active CN109584343B (zh) 2012-08-03 2013-08-02 依赖图中的时间依赖性
CN201380008985.6A Active CN104106098B (zh) 2012-08-03 2013-08-02 有向无环图中的约束评估

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201380041346.XA Active CN104520902B (zh) 2012-08-03 2013-08-02 依赖图中的时间依赖性

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201380008985.6A Active CN104106098B (zh) 2012-08-03 2013-08-02 有向无环图中的约束评估

Country Status (4)

Country Link
US (4) US9892529B2 (zh)
EP (2) EP2880636B1 (zh)
CN (3) CN104520902B (zh)
WO (2) WO2014022834A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9224239B2 (en) * 2013-03-14 2015-12-29 Dreamworks Animation Llc Look-based selection for rendering a computer-generated animation
US9171401B2 (en) 2013-03-14 2015-10-27 Dreamworks Animation Llc Conservative partitioning for rendering a computer-generated animation
US9626787B2 (en) 2013-03-15 2017-04-18 Dreamworks Animation Llc For node in render setup graph
US9811936B2 (en) 2013-03-15 2017-11-07 Dreamworks Animation L.L.C. Level-based data sharing for digital content production
US9208597B2 (en) 2013-03-15 2015-12-08 Dreamworks Animation Llc Generalized instancing for three-dimensional scene data
US9218785B2 (en) 2013-03-15 2015-12-22 Dreamworks Animation Llc Lighting correction filters
US9589382B2 (en) 2013-03-15 2017-03-07 Dreamworks Animation Llc Render setup graph
US9514562B2 (en) 2013-03-15 2016-12-06 Dreamworks Animation Llc Procedural partitioning of a scene
US9230294B2 (en) 2013-03-15 2016-01-05 Dreamworks Animation Llc Preserving and reusing intermediate data
US9659398B2 (en) 2013-03-15 2017-05-23 Dreamworks Animation Llc Multiple visual representations of lighting effects in a computer animation scene
US10008019B2 (en) * 2015-04-15 2018-06-26 Autodesk, Inc. Evaluation manager for 3D animation scenes
US11010986B2 (en) * 2018-08-30 2021-05-18 Apple Inc. Virtual object kit
US10754498B2 (en) * 2018-12-07 2020-08-25 Amazon Technologies, Inc. Hybrid image rendering system
US11769297B2 (en) * 2020-12-31 2023-09-26 Roblox Corporation Simulation of rigid bodies

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5808625A (en) * 1995-08-04 1998-09-15 Silicon Graphics Incorporated System and method for using dependency graphs for the control of a graphics creation process
US6487565B1 (en) * 1998-12-29 2002-11-26 Microsoft Corporation Updating animated images represented by scene graphs
WO2005114590A1 (en) * 2004-05-10 2005-12-01 Pixar Storing intra-model dependency information
US20070162903A1 (en) * 2006-01-06 2007-07-12 Babb Robert G Ii Systems and methods for identifying and displaying dependencies
US20080162205A1 (en) * 2006-12-29 2008-07-03 Sap Ag Validity path node pattern for structure evaluation of time-dependent acyclic graphs
US20100123723A1 (en) * 2008-11-17 2010-05-20 Disney Enterprises, Inc. System and method for dependency graph evaluation for animation
US20100214313A1 (en) * 2005-04-19 2010-08-26 Digitalfish, Inc. Techniques and Workflows for Computer Graphics Animation System

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266053B1 (en) 1998-04-03 2001-07-24 Synapix, Inc. Time inheritance scene graph for representation of media content
US7196702B1 (en) * 1998-07-23 2007-03-27 Freedesign, Inc. Geometric design and modeling system using control geometry
GB2340362B (en) * 1998-07-31 2002-11-06 Sony Uk Ltd Digital video processing
US6823299B1 (en) 1999-07-09 2004-11-23 Autodesk, Inc. Modeling objects, systems, and simulations by establishing relationships in an event-driven graph in a computer implemented graphics system
US7050955B1 (en) * 1999-10-01 2006-05-23 Immersion Corporation System, method and data structure for simulated interaction with graphical objects
US7414626B1 (en) 2000-05-30 2008-08-19 Autodesk, Inc. System for passing algorithms with polymorphic parameter sets in a dependency graph of a graphic creation process
US6828984B2 (en) * 2001-04-19 2004-12-07 Sony Corporation System and method for optimizing the processing of images
US7577554B2 (en) 2001-07-03 2009-08-18 I2 Technologies Us, Inc. Workflow modeling using an acyclic directed graph data structure
AU2003295586B2 (en) * 2002-11-15 2009-05-07 Warner Bros. Entertainment Inc. Method for digitally rendering skin or like materials
WO2004072796A2 (en) 2003-02-05 2004-08-26 Arizona Board Of Regents Reconfigurable processing
WO2005081178A1 (en) 2004-02-17 2005-09-01 Yeda Research & Development Co., Ltd. Method and apparatus for matching portions of input images
US20060210174A1 (en) 2004-03-18 2006-09-21 Bevan Peter T System and method for transforming graphics data
US20050248573A1 (en) * 2004-05-10 2005-11-10 Pixar Storing intra-model dependency information
US7532212B2 (en) * 2004-05-10 2009-05-12 Pixar Techniques for rendering complex scenes
US7330185B2 (en) * 2004-05-10 2008-02-12 Pixar Techniques for processing complex scenes
US7702482B2 (en) 2004-12-30 2010-04-20 Microsoft Corporation Dependency structure from temporal data
US8026920B2 (en) * 2005-09-13 2011-09-27 Microsoft Corporation Extensible visual effects on active content in user interfaces
US9898517B2 (en) * 2006-04-21 2018-02-20 Adobe Systems Incorporated Declarative synchronization of shared data
US7408550B2 (en) 2006-07-24 2008-08-05 Bunnell Michael T System and methods for real-time rendering of deformable geometry with global illumination
CA2593902A1 (en) * 2006-07-31 2008-01-31 Avid Technology, Inc. Efficient processing of operator graphs representing three-dimensional character animation
US9019300B2 (en) * 2006-08-04 2015-04-28 Apple Inc. Framework for graphics animation and compositing operations
US7536401B2 (en) 2006-08-07 2009-05-19 International Business Machines Corporation Methods, systems, and computer program products for using graphs to solve circular dependency in object persistence
US8730245B2 (en) * 2008-12-01 2014-05-20 Naturalmotion Ltd. Defining an animation of a virtual object within a virtual world
US9098926B2 (en) * 2009-02-06 2015-08-04 The Hong Kong University Of Science And Technology Generating three-dimensional façade models from images
CN102103519A (zh) * 2009-12-21 2011-06-22 同济大学 一种基于脚本的Web服务执行优化方法
US8627199B1 (en) * 2010-01-29 2014-01-07 Asana, Inc. Incremental computing of changes to computer user interfaces
JP5431261B2 (ja) * 2010-07-23 2014-03-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報管理システム、方法及びプログラム
US8629875B2 (en) * 2010-11-09 2014-01-14 Qualcomm Incorporated Constraint systems and methods for manipulating non-hierarchical objects

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5808625A (en) * 1995-08-04 1998-09-15 Silicon Graphics Incorporated System and method for using dependency graphs for the control of a graphics creation process
US6487565B1 (en) * 1998-12-29 2002-11-26 Microsoft Corporation Updating animated images represented by scene graphs
WO2005114590A1 (en) * 2004-05-10 2005-12-01 Pixar Storing intra-model dependency information
US20100214313A1 (en) * 2005-04-19 2010-08-26 Digitalfish, Inc. Techniques and Workflows for Computer Graphics Animation System
US20070162903A1 (en) * 2006-01-06 2007-07-12 Babb Robert G Ii Systems and methods for identifying and displaying dependencies
US20080162205A1 (en) * 2006-12-29 2008-07-03 Sap Ag Validity path node pattern for structure evaluation of time-dependent acyclic graphs
US20100123723A1 (en) * 2008-11-17 2010-05-20 Disney Enterprises, Inc. System and method for dependency graph evaluation for animation
CN101916324A (zh) * 2008-11-17 2010-12-15 迪士尼企业公司 用于动画的依赖图评估的系统和方法

Also Published As

Publication number Publication date
EP2880632A4 (en) 2016-01-20
US10460498B2 (en) 2019-10-29
US9892529B2 (en) 2018-02-13
US9892528B2 (en) 2018-02-13
CN104106098A (zh) 2014-10-15
CN104520902A (zh) 2015-04-15
WO2014022833A2 (en) 2014-02-06
EP2880636B1 (en) 2022-01-05
CN104520902B (zh) 2018-11-09
EP2880632B1 (en) 2020-07-15
US10453239B2 (en) 2019-10-22
CN109584343B (zh) 2023-07-25
EP2880636A1 (en) 2015-06-10
US20140035908A1 (en) 2014-02-06
EP2880636A4 (en) 2016-01-27
EP2880632A2 (en) 2015-06-10
US20140035931A1 (en) 2014-02-06
WO2014022834A1 (en) 2014-02-06
WO2014022833A3 (en) 2014-04-17
US20180197318A1 (en) 2018-07-12
CN104106098B (zh) 2019-05-03
US20180189987A1 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
CN104520902B (zh) 依赖图中的时间依赖性
JP6985350B2 (ja) データ系統の要約
Li et al. Qubit mapping based on subgraph isomorphism and filtered depth-limited search
Richter et al. Playing for data: Ground truth from computer games
Pal et al. Optimizing multi-GPU parallelization strategies for deep learning training
DE102009039231B4 (de) Einzeldurchgang-Kachelung
US9691171B2 (en) Visualization tool for parallel dependency graph evaluation
CN113537502B (zh) 量子电路的处理方法、装置、电子设备和存储介质
KR20200088475A (ko) 신경망의 기능적 부분망의 동시 훈련
EP2335223B1 (en) Ray tracing system architectures and methods
Finžgar et al. Quark: A framework for quantum computing application benchmarking
DE102019103310A1 (de) Schätzer for einen optimalen betriebspunkt für hardware, die unter einer beschränkung der gemeinsam genutzten leistung/wärme arbeitet
CN108628597B (zh) 一种机器视觉系统开发方法及装置
KR20180100276A (ko) 머신 비전 시스템들을 위한 비주얼 프로그램을 제공하기 위한 장치들, 시스템들 및 방법들
Tagliavini et al. Adrenaline: An openvx environment to optimize embedded vision applications on many-core accelerators
Chan et al. Integratedpifu: Integrated pixel aligned implicit function for single-view human reconstruction
KR102442080B1 (ko) 동적 리소스 할당으로 웨이브 생성 제어 방법
US9529572B1 (en) Composable application session parameters
Fishbain et al. A competitive study of the pseudoflow algorithm for the minimum s–t cut problem in vision applications
JP2021535492A (ja) 形式モデルによってデータフローシステムを設計および確認するためのツールおよび方法
Rossinelli et al. Vortex methods for incompressible flow simulations on the GPU
Fratarcangeli et al. A gpu-based implementation of position based dynamics for interactive deformable bodies
JP7428006B2 (ja) システム構成導出装置、方法およびプログラム
US10297053B1 (en) Scalable multi-threaded evaluation of vectorized data flow graphs
Frisch et al. Adaptive multi-grid methods for parallel CFD applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant