场景的程序式分割的制作方法

文档序号:6540646阅读:91来源:国知局
场景的程序式分割的制作方法
【专利摘要】提供了利用渲染设置图中的节点来分割动画对象集的系统和方法。渲染设置图可以用于对用于渲染计算机生成图像的灯光配置数据以及外部过程进行配置和管理。渲染设置图可以包括具有由边缘互连的节点的依赖图,对象和对象配置数据可沿着边缘在节点之间传递。节点可用于提供对象和对象配置数据源,配置对象的视觉效果,分割对象集,调用外部过程,在图内执行数据路由功能,等等。能够基于对象的属性以及关联的配置数据来分割对象。以此方式,渲染设置图可有益地用于对配置数据和用于渲染图像的过程的执行进行组织。
【专利说明】场景的程序式分割

【技术领域】
[0001]本公开涉及计算机生成动画,尤其涉及利用依赖图(dependencygraph)来渲染计算机生成动画。

【背景技术】
[0002]通常,通过渲染图像序列来创建计算机生成动画,每个图像描绘了由一个或多个计算机生成对象(例如,字符、树、桌子、椅子等)构成的计算机生成场景。光源、材料、纹理以及其它视觉效果可与计算机生成对象相关联以创建用于计算机生成场景的逼真的灯光效果。恰当地实现这些视觉效果会涉及到配置由诸如渲染、明暗处理、光栅化、阴影计算、反射计算、透射计算等多种外部过程所使用的大量数据。管理配置数据和外部过程会由于制作计算机生成动画所需的大量数据和大量过程以及它们之间存在的复杂的相依性而变得困难。
[0003]例如,对于计算机生成动画中的每一次拍摄,电影制作灯光布置通常需要灯光师来配置数十至数千的输出以便由外部过程使用。这些输出可依赖于多个输入,多个输入可依次依赖于其它的输入和/或外部过程。例如,灯光师可能需要选择一个或多个光源(例如,环境光源、点光源、聚光灯等),一个或多个光源用于照射计算机生成场景以及配置表面着色器以模拟该场景中每个计算机生成对象的每个表面的光学特性(例如,颜色、纹理、反射特性等等)。因此,场景中对象的外观取决于其它因素中的用于模拟该对象的各表面的光学特性的一个或多个光源和外部明暗处理过程的输出。
[0004]由于更多的光源和对象添加到场景中,配置数据和外部处理之间的相依性变得非常复杂。而且,可以使用复杂的灯光配置分配,使得一些灯光配置是在逐对象基础上分配,而其它灯光配置分配给由共享属性标识的对象组。例如,聚光灯可仅与场景前景中的主角相关,使得聚光灯照射主角而不照射场景中的其它对象。场景还可以包括与场景中所有对象相关的环境光。该方法为动画师或灯光师提供了更大的配置场景中视觉效果的灵活性,但是会导致灯光师的工作复杂度增加,因为传统的灯光布置工作流程需要灯光师将外部过程之间的错综复杂的数据相依性提交给存储器。另外,传统的灯光布置工作流程需要灯光师随着场景中的对象被编辑、添加或移除来明确地修改灯光配置,为灯光师产生了大量的工作。
[0005]因此,期望创建对用于渲染计算机生成动画的配置数据和外部过程进行配置和管理的系统。
[0006]发明概述
[0007]描述了利用依赖图来分割动画对象集的过程。一个示例过程可以包括:访问包括多个互连节点的依赖图,其中多个互连节点中的第一节点包括第一分割标准;访问由第一节点的输入标识的动画对象集;将动画对象集与第一分割标准做比较;当动画对象集中的一个或多个对象满足第一分割标准时,生成那些满足第一分割标准的一个或多个对象的第一子集;以及当动画对象集中的一个或多个对象不满足第一分割标准时,生成那些不满足第一分割标准的一个或多个对象的第二子集。
[0008]在一些实施例中,该方法还可以包括:将第一子集与第二分割标准做比较,其中所述第一节点还包括第二分割标准;当所述第一子集中的一个或多个对象满足所述第二分割标准时,生成所述第一子集中那些满足第二分割标准的一个或多个对象的第三子集;以及当所述第一子集中的一个或多个对象不满足所述第二分割标准时,生成所述第一子集中不满足第二分割标准的一个或多个对象的第四子集。
[0009]在一些实施例中,当第一节点的输入将第一动画对象集标识为待访问的动画对象集时,动画对象集可以包括所述第一动画对象集。可选地,当第一节点的输入将第二动画对象集标识为待访问的动画对象集时,所述动画对象集可以包括所述第二动画对象集。
[0010]在一些实施例中,该方法还可以包括:选择用于第一子集的视觉效果;以及基于第一子集和所选视觉效果来渲染图像,其中所述多个互连节点还包括:第二节点,其包括视觉效果;以及第三节点,其包括基于第一子集和所选视觉效果来渲染图像的指令。在一些实施例中,渲染图像可以包括:利用来自渲染过程、半透明化过程、明暗处理过程或光栅化过程中的一个或多个的结果来渲染所述图像。在一些实施例中,第二节点的输入标识来自第一节点的第一输出的第一子集。在一些实施例中,第三节点的输入标识来自第二节点的输出的第一子集和所选视觉效果。
[0011]在一些实施例中,视觉效果可以包括外观、关联光源、纹理或材料。第一分割标准可以包括对象名称、对象类型、几何结构名称、零件名称、材料或接近特性中的一个或多个。
[0012]还描述了利用依赖图来分割动画对象集的系统和计算机可读存储媒体。

【专利附图】

【附图说明】
[0013]通过参考结合所附附图进行的下面的说明,能够最佳地理解本申请,其中相似的部件可由相似的标记表示。
[0014]图1描绘了具有位于三维空间中的多个计算机生成对象的示例性的计算机生成场景。
[0015]图2描绘了图1的场景,灯光效果应用于计算生成对象。
[0016]图3描绘了通过虚拟摄像机观察到的图2的场景的一部分的渲染后图像。
[0017]图4示出了根据各个实施方案的用于渲染图像的示例性的渲染设置图的操作。
[0018]图5示出了根据各个实施方案的示例性的渲染设置图。
[0019]图6描绘了示例性的组织者节点的示意性表示。
[0020]图7示出了根据各个实施方案的利用渲染设置图来渲染图像的示例性过程。
[0021]图8示出了根据各个实施方案的用于从渲染设置图中的对象集中选择对象子集的示例性过程。
[0022]图9示出了示例性的计算系统。
[0023]发明详述
[0024]提供了下面的说明书以使本领域普通技术人员能够实现和利用各个实施方案。具体的设备、技术和应用的描述仅作为实施例被提供。对本文所描述的实施例的各种改进对于本领域普通技术人员而言将是显而易见的,并且本文限定的一般性原理可应用于其它实施例和应用,而不偏离本技术的精神和范围。因此,所公开的技术不旨在局限于本文描述和图示的实施例,而是与权利要求相一致的范围相符合。
[0025]为了描述的目的,在本公开全文中,软件、软件模块、软件对象等可描述为执行各种功能。然而,本领域普通技术人员将认识到,软件不会主动地执行任何功能,相反,会包含能够在计算机处理器上执行的指令。因此,虽然本文将软件描述为执行功能,应理解为计算机处理器或其它计算设备通常可通过执行由软件模块或对象提供的计算机指令来实施那些在本文属于软件模块或对象的功能。
[0026]下面描述的各个实施方案涉及到对用于渲染计算机生成图像的灯光配置数据以及外部过程进行配置和管理的渲染设置图。渲染设置图可以包括具有由边缘互连的节点的依赖图,对象以及对象配置可沿着边缘在节点之间传递。节点可用于提供对象和对象配置数据源,配置对象的视觉效果,分割对象集,调用外部过程,执行图内的数据路由功能,等等。以此方式,渲染设置图可有益地用于对用于渲染图像的配置数据和过程的执行进行组织。
[0027]组织者节点可用于基于对象和/或关联的配置数据的属性来分割渲染设置图内的对象。由于相似的视觉效果通常应用于共享共同属性(诸如对象类型、位置等)的对象组,所以组织者节点允许动画师或其它用户基于这些属性来选择对象。因此,动画师或其它用户可以选择渲染设置图内的对象,而不必明确地引用每个对象,避免了随着图操作的对象变化而修改图的需要。
[0028]如上所述,通常通过渲染图像序列来创建计算机生成动画,每个图像描绘了由一个或多个计算机生成对象构成的计算机生成场景。光源、材料、纹理以及其它视觉效果可与计算机生成对象相关联以创建用于计算机生成场景的逼真视觉外观。为了论述的目的,计算机生成场景通常是指可利用虚拟摄像机来拍摄的三维空间,并且还可一般性地称为场旦
-5^ O
[0029]图1描绘了具有位于三维空间中的多个计算机生成对象的示例性的计算机生成场景100。场景100包括茶壶151、球体152、圆柱体153、圆锥体154以及立方体155的表面模型。在典型的计算机动画中,计算机生成对象包括为生成计算机动画电影序列的目的而提出或操纵的一个或多个计算机动画角色。在该实施例中,计算机生成对象包括利用一个或多个几何表面限定的表面模型。在其它实施例中,可以利用立体几何或其它三维建模技术来限定计算机生成对象。
[0030]如图1所示,虚拟摄像机104被定位成观看场景100的部分。典型地,虚拟摄像机104具有由摄像机视锥限定的视野,摄像机视锥伸出远离虚拟摄像机104的透镜。换言之,位于摄像机视锥之外的计算机生成对象不能被摄像机看到。虚拟摄像机104和计算机生成对象151-155在场景100中的位置通常是通过诸如动画师或导演的人类操作员来确定的。
[0031]如下文更详细说明的,灯光以及其它视觉效果也可应用于场景100以给予它更逼真的外观。图2描绘了场景100,其中灯光效果应用于计算机生成对象151-155中的每一个。如图2所示,通过漫射光源来照射计算机生成对象以使得从摄像机侧照射计算机生成对象151-155。每个计算机生成对象151-155依照漫射光源进行明暗处理并且将阴影投在场景100的底板和墙壁上。通过一个或多个环境光源来照射场景100以为场景100提供整体照射灯光效果。能够用于照射场景100的其它光源包括例如点光、聚光灯以及面积光。
[0032]图3描绘了通过虚拟摄像机104观察到的场景100的部分的渲染后图像300。如图3所示,渲染后图像300描绘了包括计算机生成对象的子集,包括茶壶151、圆锥体154以及立方体155。利用用于每个计算机生成对象的多个光源以及一种或多种表面着色器来渲染图3的计算机生成对象151、154、155以生成场景100的逼真外观图像。表面着色器可用于模拟计算机生成对象的表面的光学特性并且限定计算机生成对象的表面的颜色、纹理、反射特性以及其它光学特性。表面着色器可使用双向反射分布函数(BRDF)或用于模拟入射到计算机生成表面上的光的反射的其它技术。表面着色器还可用于限定模拟材料(例如,毛皮、皮肤或金属)的一组光学特性。典型地,光源、表面着色器和表面材料的配置对于每个计算机生成场景是可配置的,并且通常可称为灯光配置。
[0033]灯光配置可以在逐个对象的基础上或者通过共享属性所标识的对象集来指定。例如,如上所述,场景100包括与场景100中的所有对象相关联的漫射光源。另外,聚光灯随后可仅与场景100的前景中的圆锥体154相关联,使得聚光灯照射圆锥体154,而不照射其它对象151、155。该方法为动画师或灯光师提供了更大的配置场景中的视觉效果的灵活性,但是会使得管理大量的计算机生成对象及其关联的视觉效果变得困难。
[0034]图4示出了能够用于对用于渲染图3的计算机生成图像407的灯光配置数据以及外部过程进行配置和管理的示例性的渲染设置图401的操作。渲染设置图401可以从数据库403接收数据,诸如动画对象、对象配置数据等,数据库403可以包括由能够通过一个或多个用户访问的一个或多个本地和/或远程计算机存储数据库构成的集中式或分散式计算机存储数据库。利用集中式存储可以提高存储效率并且有助于确保利用计算机生成对象的共同版本来执行计算机生成动画的渲染。
[0035]从数据库403接收到的对象数据可以包括呈代表对象集(例如,人物、植物、建筑物等)的任意格式的数据,可以使用数据来渲染图像。例如,对象数据可以包括对象的表面和/或体积表示、构成对象的零件的标识等等。在一些实施例中,对象集可以包括要显示在图像内的对象以及那些包含在数据库中的不显示在图像内的对象。
[0036]对象配置数据可以包括视觉特性,诸如材料、纹理等,其可与对象的零件的表面相关联。对象配置数据还可以包括对该对象限定的任意数量的“外观”。外观可以包括已指定给对象的表面的视觉特性的特定配置。例如,椅子对象可具有对椅子的每个件分配了松木材料的第一外观以及对椅子的每个件分配了枫木材料的第二外观。可以为每个对象限定任意数量的外观,并且任意数量的外观可包括在由数据库403提供的对象配置数据之内。因此,在一些实施例中,由数据库403提供的数据可以包括配置计算机生成对象集,其中集合中的每个成员代表配置为具有特定外观的对象。
[0037]渲染设置图401可以包括具有由边缘互连的节点的依赖图,对象和对象配置数据可沿着边缘在节点之间传递。例如,节点的输出可以包括一个或多个对象以及关联的配置数据(或用于一个或多个以及关联的配置数据的标识符)。节点的输入可以包括对另一节点的一个或多个输出的引用,节点可通过该引用来接收对象和对象配置数据。通过这种方式,节点可用于提供对象和对象配置数据源,配置对象的视觉效果,分割对象集,调用外部过程405,执行图内的数据路由功能,等等。渲染设置图401可以提供对象数据、对象配置数据以及任何其它所需数据给外部过程405。外部过程405的结果可以返回到渲染设置图401。渲染设置图401的评估以及关联的外部过程405的执行可以生成类似于图3所示的计算机生成图像407。
[0038]图5示出了示例性的渲染设置图501的直观表示的更详细的视图,这是可用作图4中的渲染设置图401的一个示例图。通常,渲染设置图501可以从数据库(例如,数据库403)接收对象和对象配置数据作为输入并且可以调用外部过程505以生成计算机生成图像(例如,图像407)。渲染设置图501可显示在计算机显示器上并且可利用图形用户接口以及计算机I/O硬件来操纵。通过这种方式,渲染设置图501通常可由动画师、灯光师或其它用户来配置并且可用于对用于渲染计算机生成图像的灯光配置数据以及外部过程进行配置和管理。
[0039]如图5所示,渲染设置图501可包括依赖图,依赖图具有通过边缘互连的一个或多个节点(例如,节点 503、507、509、511、513、515、517、519、521、523 和 525)。节点可执行各种功能,这取决于节点类型。例如,节点可表示数据源,配置对象的视觉效果,分割对象集,调用外部过程,执行图内的数据路由功能,等等。通过节点输出的数据可沿着连接节点的边缘传送到下游节点。
[0040]渲染设置图501可以包括执行任意期望功能的各种类型的节点。可包括在渲染设置图501内的一个示例节点类型是表示待由渲染设置图501使用且可通过类似于或等同数据库403的本地或远程数据库提供的配置计算机生成对象集(例如,对象及其关联的对象配置数据)的对象源节点(例如,节点503),如上文所论述的。在一些实施例中,能够通过用户来分配由源节点表示的配置计算机生成对象集。例如,为了渲染特定图像,用户可以选择渲染设置图501以及利用渲染设置图501来操作的对象集。通过这种方式,渲染设置图501不限于特定的对象集并且能够用于渲染任何期望的图像。
[0041]可选地,对象源节点可以包括标识待由渲染设置图501使用的对象的引用信息。在一些实施例中,对象可由包含那些对象的存储位置的标识来引用。例如,对象源节点可以包括对包含待由渲染设置图501使用的对象的一个或多个本地或远程数据库(例如,数据库403)的引用。通过这种方式,待由渲染设置图501使用的对象可在源数据库中进行添加、删除或修改并且可由渲染设置图501使用,而不必修改渲染设置图501来专门地引用新添加的或修改的对象。在其它实施例中,对象源节点可包括各自地引用待由渲染设置图501使用的对象的唯一标识符。例如,如果每个对象被赋予唯一名称或标识符,则对象源节点可以包括限定待由渲染设置图501使用的对象集的对象名称或唯一标识符的列表。对象源节点可以将引用对象集(以及关联的对象配置数据)沿着一个或多个边缘输出到一个或多个连接节点。例如,对象源节点503可以将包含在数据库403中的对象集以及关联的对象配置数据提供给节点507和509。
[0042]可包括在渲染设置图501内的另一类型的节点是组织者节点(例如,节点507和509),其可用于对在组织者节点的输入处接收到的对象集(以及关联的对象配置数据)进行分割。组织者节点的输入可以包括标识在前一节点的输出处生成的对象和关联的配置数据的引用。组织者节点可配置为基于对象或者关联的配置数据的任意一个或多个属性来分割接收到的对象,这些属性诸如为对象名称、对象类型、几何结构名称、零件名称、材料、带基于时间限制(例如,对象的位置被评估的时间值或范围)的接近特性(例如,在摄像机视锥之内的对象、距对象/摄像机的距离、存在于区域内,等等)、带基于时间限制(例如,对象的位置被评估的时间值或范围)的屏幕投射,等等。对象可按如下方式进行分割:满足由对象或配置数据属性确立的标准的对象可分组到一个子集中,而不满足该标准的对象分组到另一子集中。对于基于时间的限制,组织者节点可配置为使得如果对于整个时间范围满足标准或者如果在该范围内任意时间都满足标准,则满足基于时间的标准。
[0043]例如,图6描绘了能够在渲染设置图501中用作组织者节点509的示例性的组织者节点609的示意性表示。在典型的实施方式中,组织者节点609在输入611处从一个或多个上游节点接收对象集以及关联的配置数据。组织者节点609可以通过评估一个或多个分割标准614A-D而将输入的对象集分割成一个或多个对象子集。每个分割标准614A-D可以包括能够用于标识或选择分割对象子集的一个或多个逻辑操作。然后,分割对象子集可作为分割提供在组织者节点609的各输出A-H上并且利用节点边缘606连接到下游节点。
[0044]例如,分割标准614A可以包括对具有对象类型“椅子”的所有对象(以及关联的对象配置数据)进行分割的分割标准。因此,在该实施例中,组织者节点609可以对与在输入611处接收到的对象集相关联的元数据进行评估并且可以生成包含在由组织者节点609接收到的所有椅子类型对象的对象子集。该对象子集可在输出B处输出。
[0045]在一些实施例中,组织者节点609可以对于为该节点限定的每个分割标准生成两个输出。第一输出可以包括满足分割标准的对象子集(其可包括零个、一些或全部的接收对象集),而第二输出可以包括不满足分割标准的对象子集。例如,继续上文提供的实施例,组织者节点609 (对应于图5中的节点509)可耦合以从对象源节点503接收包含在数据库403中的对象集。组织者节点609可以包括用于分割具有对象类型“椅子”的所有对象(以及关联的对象配置数据)的分割标准614A。因此,组织者节点609可以对在组织者节点609的输入处接收到的对象集相关联的元数据进行评估并且在输出B处输出椅子类型对象集。组织者节点609可以进一步在输出A处输出其余对象集(例如,非椅子对象)以及关联的对象配置数据。
[0046]在一些实施例中,组织者节点609的分割标准可以是分级的,意味着一个分割标准可用于对另一分割标准的结果进行分割。例如,组织者节点609可以包括分割标准614B,其接收满足分割标准614A的对象集并且基于其自身的分割标准对该子集进行进一步分害I]。例如,继续上面的实施例,分割标准614A可用于对具有对象类型“椅子”的对象子集进行分割。分割614B可对从分割614A接收到的椅子对象子集进行进一步分割以包括在特定时间位于场景的限定区域之内的对象。因此,组织者节点609可以在输出B处输出在组织者节点609的输入611处接收到的所有椅子对象(以及关联的配置数据),在输出A处输出所有的非椅子对象(以及关联的对象配置数据),在输出D处输出在特定时间位于场景的限定区域之内的所有椅子对象(以及关联的对象配置数据),以及在输出C处输出在特定时间不位于场景的限定区域之内的所有椅子对象(以及关联的对象配置数据)。组织者节点609还可以包括附加分割标准614C和614D并且可以类似方式在输出E-H处输出对象子集以及关联的配置数据。应当理解的是,虽然示出了四个分割标准,任意数量的分割标准可以包括在组织者节点内。
[0047]基于对象和配置数据属性来分割对象有益地允许动画师、灯光师或其它用户选择具有期望特性的对象,而无需用户各自地标识所选对象。这避免了当输入对象集中的对象被修改、添加或删除时修改渲染设置图501的需要。例如,如果附加的椅子对象添加到场景中,则组织者节点509可以标识该新添加的椅子对象并且将其连同之前限定的椅子对象一起在输出A处输出,而无需来自用户的任何额外输入。
[0048]可包含在渲染设置图501内的另一类型的节点是合并节点(例如,节点513),其可用于输出由合并节点接收到的所有输入的集合。例如,合并节点513可以从组织者节点509接收输出H并且从组织者节点507输出I。合并节点513可以将这些对象集组合并且可以输出包括所有H和所有I的对象集。在一些实施例中,合并节点的输入之间的相同对象可被丢弃,使得在输出处仅存在每个对象的一个。在其它实施例中,合并节点的输入之间的相同对象可不丢弃,使得合并节点的输出可包括同一对象的多个实例。
[0049]可包括在渲染设置图501内的另一类型的节点是外观选择器节点,七科用于选择对象的特定“外观”。如上所述,在节点之间传递的对象配置数据可以包括为关联对象限定的外观。例如,椅子对象可以具有将松木外观分配给椅子的每个件的第一外观以及将枫木外观分配给椅子的每个件的第二外观。外观选择器节点可用于选择由节点接收到的一个或多个对象的外观并且可以输出配置为具有所选外观的一个或多个对象。
[0050]例如,节点511可以是外观选择器节点并且可配置为选择从组织者节点509的输出A处接收到的对象的高品质外观。这可以使用,例如,因为从组织者节点509的输出A接收到的对象出现在场景中的前景中,因此应当以更高细节级别显现。外观选择器节点511随后可以以所选的高品质外观将从组织者节点509的输出A接收到的对象输出。
[0051]可以包括在渲染设置图501内的另一类型的节点是光节点,其可分配以照射一个或多个对象并且可配置为使得一些其它对象集由于该光而投影。光节点可对应于一个或多个光源,诸如环境光源、点光源、聚光灯等。光节点可配置为通过作为其输入接收的对象投影。在组织者节点中,光还能够分配以照射一个或多个对象。当这些分配的光源落在它们之上时,这些投影对象随后可以在场景内投影。例如,节点515可以是光节点,其配置为由于落在从组织者节点507的输出J接收到的对象上的点光源而投影。结果,当对象被渲染时,从组织者节点507的输出J接收到的对象可以从与节点515关联的点光源投影。为了分配光源以照射对象,可以使用组织者节点。特别地,光源可与组织者节点相关联并且可分配以照射组织者节点的输出中的一个或多个输出的对象。
[0052]可包含在渲染设置图501中的另一类型的节点是材料节点,其可用于为对象分配材料。材料节点可以将材料分配给整个对象的表面或者仅对象的一部分。例如,材料节点可用于将黄铜材料类型分配给门的门把手或者可用于将橡木材料类型分配给整个椅子。可选地,材料节点可仅表示材料并且可与组织者节点链接。在这些实施例中,组织者节点可进一步配置为将与所链接的材料节点相关联的材料分配给组织者节点的输出中的一个或多个输出。
[0053]可包括在渲染设置图501内的另一类型的节点是映射节点,其可与光节点和材料节点一起使用。映射节点可指定光或材料待使用的纹理,但是不直接分配作为配置的部分。相反,纹理借助映射节点与关联光或材料的节点链接而应用于光或材料。
[0054]包括在渲染设置图501内的另一类型的节点是类属节点,其可用于封装尚未预先限定的过程。这些节点可与通过用户手动输入的命令相关联以通过允许用户执行未通过图明确提供的功能为图提供灵活性。
[0055]包括在渲染设置图501内的另一类型的节点是传递节点(例如,517、521、523和525),其可用于调用外部过程,诸如渲染过程、半透明化过程、明暗处理过程、光栅化过程、阴影化过程、反射过程、透射过程等等。传递节点可以包括利用由传递节点接收到的对象和对象配置数据来执行外部过程的指令。例如,传递节点可以包括对待执行的外部过程的引用并且可以将由传递节点接收到的数据传递到外部过程。传递节点可以在过程执行之后接收外部过程的输出,并且可以依次地将该结果输出到渲染设置图501内的其它节点,或者可以将外部过程的结果作为渲染设置图501的输出而输出。
[0056]例如,节点517可以是配置为调用外部半透明化过程505的半透明化传递节点。因此,节点517可以将对象(以及关联的对象配置数据)传递到外部半透明化过程505并且可以接收该过程的执行的结果。节点517随后可以将外部半透明化过程505的结果输出到渲染设置图501内的另一传递节点521。该传递节点521可以是例如配置为调用外部明暗处理过程505的明暗传递节点。因此,节点521可以将半透明化传递节点517的输出传递到外部明暗处理过程505并且可以接收该过程的执行的结果。明暗处理过程505的结果随后可通过渲染设置图501作为图像407的部分输出。类似地,传递节点523和525的输出可以调用其相应的外部过程505并且可以通过渲染设置图501作为图像407的部分输出。
[0057]虽然上文提供了节点的具体类型,应当理解的是,渲染设置图501可以包括其它类型的节点,诸如分裂器节点、其它路由节点、for循环节点、组节点(代表避免屏幕杂波的两个以上节点),等等。这些其它节点能够与上文论述的结合组合以允许动画师、灯光师或其它用户来配置、记录和可视化待执行的过程以及这些过程与其它过程和配置数据的相依性。而且,虽然上文提供了渲染设置图的具体布置,但是应当理解的是,渲染设置图可以包括以任何配置适当布置的附加的或更少的节点以生成期望的图像或动画。
[0058]利用与上述渲染设置图类似或等同的渲染设置图有益地允许动画师或灯光师来抽象地限定待使用对象,配置这些对象的视觉效果(例如,灯光效果),快速地标识应当更新的脏数据,并且以独立于输入到图中的对象的方式限定待执行过程的流程。另外,渲染设置图为动画师、灯光师或其它用户提供了限定和配置渲染通道而不必工作于整个场景的能力。渲染设置图还可允许动画师、灯光师或其它用户工作于可省略用于最终制作渲染通道的资源密集型视觉效果的场景的简化版本。
[0059]图7示出了示例性的过程700,其利用类似于或等同于上文论述的图501的渲染设置图来渲染图像。在块702处,可以访问渲染设置图。例如,处理器可以访问包括渲染设置图(例如,类似于或等同于渲染设置图401或501的图)的本地或远程数据库,渲染设置图被生成以渲染特定图像或动画。渲染设置图可以包括通过边缘互连的节点,节点限定了待用于渲染过程的对象、用于这些对象的视觉效果的配置以及待对那些对象执行的外部过程。
[0060]在块704处,可以访问动画对象集。还可以访问与对象关联的对象配置数据,诸如对象的视觉特性和外观。在一些实施例中,对象集可由用户限定。例如,为了渲染特定图像,用户可以选择在块702处访问的渲染设置图以及利用该渲染设置图操作的对象集。通过这种方式,渲染设置图不限于特定对象集并且能够用于渲染任意期望图像。用户所选对象可通过处理器从类似于或等同于数据库403的数据库访问并且在类似于或等同于对象源节点503的一个或多个对象源节点处提供给渲染设置图。
[0061]可选地,对象集可由渲染设置图限定。渲染设置图可以利用类似于或等同于上述对象源节点503的对象源节点来限定待访问对象。在一些实施例中,对象源节点可以包括抽象地限定对象集的一个或多个引用,例如,通过标识对象的一个或多个存储位置。通过这种方式,可以对渲染设置图所使用的对象进行修改、添加或删除,而不必修改渲染设置图。在其它实施例中,对象源节点可以包括通过分别标识对象(例如通过使用唯一标识符)来明确地限定待使用对象的一个或多个引用。根据对象源节点限定对象的方式,处理器可以通过利用对象标识符或位置标识符询问本地或远程数据库来访问对象。例如,如果在块702处访问渲染设置图501,则在块704处要访问的对象集以及关联的对象配置数据可以由对象源节点503限定。在一些实施例中,对象源节点503可以通过将数据库403标识为对象源来抽象地限定待由渲染设置图501使用的对象集。因此,在块704处,可以从数据库403访问对象和关联的对象配置数据。
[0062]在块706处,可以基于渲染设置图来选择在块704处访问的对象集的子集。为了选择或限定待配置子集,类似于或等同于组织者节点507和509的组织者节点可用于基于对象或关联配置数据的任意一个或多个属性来选择性地分割对象的子集,属性诸如为对象名称、对象类型、几何结构名称、零件名称、材料、带基于时间限制的接近特性(例如,在摄像机视锥之内的对象、距对象/摄像机的距离、存在于区域内,等等)、带基于时间限制的屏幕投射,等等。图8示出了示例性过程800,其可用于选择在块706处的对象集的子集。
[0063]在块802处,可以访问对象集。在一些实施例中,可以通过在过程700的块702处访问的渲染设置图来限定对细节。在这些实施例中,图可以包括类似于或等同于组织者节点507或509的组织者节点,并且所访问的对象集可以包括在组织者节点的输入处接收到的对象。待访问对象可以包括通过组织者节点标识为在渲染设置图内的组织者节点的输入处接收的对象。因此,处理器可以从远程或本地存储设备来访问这些对象以及关联的配置数据。
[0064]在块804处,可以将对象集与一个或多个分割标准做比较。一个或多个分割标准可以包括对象或关联配置数据的一个或多个属性,诸如对象名称、对象类型、几何结构名称、零件名称、材料、带基于时间限制的接近特性(例如,在摄像机视锥之内的对象、距对象/摄像机的距离、存在于区域内,等等)、带基于时间限制的屏幕投射,等等。在一些实施例中,可通过在过程700的块702处访问的渲染设置图来限定一个或多个分割标准。在这些实施例中,图可以包括类似于或等同于组织者节点507或509的组织者节点,其包括一个或多个分割标准。使用一个或多个分割标准,处理器可以将在块802处访问的对象集和关联的配置数据与一个或多个分割标准做比较以标识出与一个或多个分割标准匹配的对象和关联的配置数据。
[0065]例如,如果渲染设置图501的组织者节点509用于限定在块802处访问的对象集,则通过组织者节点509接收到的对象集可以与与该节点关联的一个或多个分割标准做比较。可与组织者节点509关联的一个示例标准可以是对具有对象类型“椅子”的所有对象(以及关联的对象配置数据)进行分割的分割标准。因此,在块804处,可分析通过组织者节点509接收到的对象集以判定这些对象是否是椅子类型对象。这可以包括:对与对象集的对象相关联的元数据进行文本搜索以标识出对象类型的匹配。在其它实施例中,可以使用其它用于标识对象类型的方式。
[0066]在块806处,当在块802处访问的对象集中的一个或多个对象满足分割标准时,可以生成满足该分割标准的第一对象子集。第一对象子集可以包括来自在块802处访问的对象集的满足在块804处确定的标准的所有对象。可将对象加标签或以其它方式标识为同一子集的部分,使得随后可以将子集中的对象进行标识。在没有对象满足分割标准的情况下,可以不生成第一子集,或者可以生成空集。
[0067]在块808处,当在块802处访问的对象集中的一个或多个对象不满足分割标准时,可以生成不满足分割标准的第二对象子集。第二对象子集可包括在块802处访问的对象集中的不满足在块804处确定的标准的全部对象。对象可被加标签或者以其它方式标识为是同一子集的部分,使得该子集中的对象可在稍后被标识。在一些实施例中,块808可从过程800中省去。在所有对象都不排斥分割标准的情况下,可以不生成第二子集或者可以生成空集。
[0068]在一些实施例中,用于在块804处限定分割标准的组织者节点可以包括多于一个的分割标准。例如,图6中的组织者节点609包括四个不同的分割标准614A-D。在这些实施例中,对于每个分割标准可重复过程800。在每次迭代过程中在块802处访问的对象可包括由各分割标准614A-D接收到的对象,在块804处使用的分割标准可以包括各分割标准614A-D。
[0069]返回图7,在块708处,可以基于渲染设置图来选择用于在块706处选择的对象集的子集的视觉效果。视觉效果可包括任何类型的视觉效果,诸如外观、关联的光源、纹理、材料等。诸如光节点、材料节点、外观选择器节点和映射节点的节点可用于选择与对象子集相关联的视觉效果(例如,光源、材料特性、外观和纹理)。特别地,由光节点、材料节点、外观选择器节点、映射节点等中的一者接收到的对象集可以分配如该节点限定的视觉效果。在其它实施例中,光节点和材料节点可仅分别代表光源或材料,并且可与组织者节点链接。在这些实施例中,组织者节点可进一步配置为将与所链接节点相关联的材料或光源分配给该对象。结果,对那些对象执行的任何后续处理可利用所选视觉效果来进行。
[0070]例如,继续上文提供的实施例,渲染设置图501可包括在输出A处输出包含椅子类型对象的对象子集的组织者节点509。该椅子类型对象子集可由节点511接收,节点511可以是配置为用于选择用于在节点输入处接收到的对象的高品质外观的外观选择器节点。结果,对由外观选择器节点511输出的椅子类型对象执行的所有处理可利用高品质外观来执行(假设不存在可改变所选外观的任何中间的外观选择器节点)。
[0071]在块710处,可以基于渲染设置图来渲染计算机生成图像。渲染图像可以包括:基于渲染设置图利用所选视觉效果对对象子集执行一个或多个外部过程。外部过程可以包括动画师、灯光师或其它用户可希望对渲染设置图所使用的对象执行的任何过程,诸如渲染、明暗处理、光栅化、阴影计算、反射计算、透射计算等。在一些实施例中,渲染设置图可以包括类似于或等同于传递节点517、521、523和525的传递节点,其可包括对待执行外部过程的引用。处理器可以利用由这些传递节点接收到的对象和关联配置数据来执行由这些传递节点所引用的过程。然后,处理器可以将传递节点中的一些或全部的输出集合以生成场景的计算机生成图像。
[0072]例如,继续上文提供的实施例,渲染设置图501可以利用传递节点517来引用外部半透明化过程。因此,可以利用基于外观选择器节点511选择的高品质外观对组织者节点509分割的椅子类型对象子集执行所引用的半透明化过程。渲染设置图501进一步包括传递节点521,其可以引用外部明暗处理过程。结果,可利用高品质外观对椅子类型对象子集执行的半透明化过程的结果来执行所引用的明暗处理过程。结果可以是由组织者节点509分割的椅子类型对象子集的高品质明暗处理后表示。该数据可与传递节点523和525的输出组合,传递节点523和525可以分别输出场景中人物和场景背景的表示。处理器可以将这些输出组合以渲染明暗处理后的椅子、人物和背景的图像。
[0073]图9示出了能够用于实现上文论述的渲染设置图的示例性的动画系统900。渲染设置图能够以存储在非暂态计算机可读存储媒体上的硬件或软件来实现。系统能够配置为生成、修改和评估渲染设置图以对用于渲染计算机生成图像的灯光配置数据以及外部过程进行配置和管理。系统能够进一步配置为接收来自用户的输入并且基于渲染设置图来显示图形、图像或动画场景。
[0074]动画系统900能够配置为从输入设备920接收用户输入。输入设备920可以是接收来自用户的输入并且将其传输到动画系统900的任何设备。例如,输入设备920可以是键盘、鼠标、平板式电脑、触针等。本领域技术人员将理解到还可以使用其它类型的输入设备。
[0075]动画系统900能够配置为将图形、图像或动画输出到显示设备930。显示设备930能够包括任何从动画系统接收数据且将数据呈现给用户的设备。例如,显示设备可包括液晶显示器、一组发光二极管、投影仪等。本领域技术人员将理解的是还可使用其它类型的输出设备。
[0076]动画系统900可进一步包括中央处理单元902。中央处理单元可以包括一个或多个处理核。中央处理单元902可与输入设备920耦合并且能够与输入设备920通信。虽然动画系统900图示出具有一个中央处理单元902,但是动画系统900可以包括多个处理单元。动画系统900还可包括图形处理单元904。图形处理单元904可专用于处理图形相关数据。图形处理单元904可包括单个处理核或多个处理核。虽然图示出动画系统900具有一个图形处理单元904,但是动画系统900可以包括多个图形处理单元。中央处理单元902和/或图形处理单元904可与输出设备930耦合并且能够将数据传达给输出设备930。
[0077]在一个实施例中,动画系统900可包括一个或多个处理器以及存储在诸如内存或存储设备的非暂态性计算机可读存储媒体中的指令,当通过一个或多个处理器执行是,指令利用渲染设置图来执行分割和动画渲染,如上所述。在本文描述的实施方案的背景下,“非暂态性计算机可读存储媒体”可以是能够收容或存储由指令执行系统、装置或设备使用或者与指令执行系统、装置或设备关联的程序的任何媒体。非暂态性计算机可读存储媒体可包括但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备、便携式计算机磁盘(磁)、随机存取存储器(RAM)(磁)、只读存储器(ROM)(磁)、可擦除可编程只读存储器(EPROM)(磁)、诸如⑶、⑶-R、⑶-RW、DVD、DVD-R或DVD-RW的便携式光盘、或者诸如压缩闪存卡、安全数字卡、USB存储设备、存储棒等快擦写存储器。
[0078]动画系统900可以包括易失性存储器906,其是非暂态性计算机可读存储媒体,与中央处理单元902通信。易失性存储器906可包括例如随机存取存储器,诸如动态随机存取存储器或静态随机存取存储器,或者任何其它类型的易失性存储器。易失性存储器906可用于在动画系统900操作过程中存储数据或指令。本领域技术人员将理解的是还能够使用其它类型的易失性存储器。
[0079]动画系统900还可以包括非易失性存储器908,其是非暂态性计算机可读存储媒体,与中央处理单元902通信。非易失性存储器908可以包括快擦写存储器、硬盘、磁存储设备、只读存储器等。非易失性存储器908可用于存储动画数据、渲染设置图数据、计算机指令或任何其它信息。本领域技术人员将理解到还可以使用其它类型的非易失性存储器。
[0080]动画系统900不限于上文所描述的设备、配置和功能。例如,虽然示出了单个的易失性存储器906、非易失性存储器908、中央处理单元902、图形处理单元904、输入设备920和输出设备930,可在动画系统900的内部或外部实现这些设备中任意多个设备。另外,动画系统900可包括用于访问诸如内网或因特网的网络上的信息的网络访问设备。本领域技术人员将理解的是能够使用动画系统900的其它配置。
[0081 ] 本文描述了各个示例性实施方案。在非限制意义上参考了这些实施例。提供这些是为了更宽泛地说明所公开技术的可应用方面。可以进行各种改变并且可替代等同方案,而不偏离各个实施方案的真正主旨和范围。另外,可进行多方面修改以将特定的情形、材料、物理组成、过程、过程动作或步骤适应各个实施方案的目标、精神或范围。此外,本领域技术人员将理解的是,本文所描述和图示的每一个单个的变型例具有可易于与其它多个实施方案中的任一个的特征分离或组合的离散部件和特征,而不偏离各实施方案的范围或精神。
【权利要求】
1.计算机实现方法,用于利用依赖图分割动画对象集,所述方法包括: 访问包括多个互连节点的依赖图,其中所述多个互连节点中的第一节点包括第一分割标准; 访问由所述第一节点的输入标识的动画对象集; 将所述动画对象集与所述第一分割标准做比较; 当所述动画对象集中的一个或多个对象满足所述第一分割标准时,生成那些满足所述第一分割标准的一个或多个对象的第一子集;以及 当所述动画对象集中的一个或多个对象不满足所述第一分割标准时,生成那些不满足所述第一分割标准的一个或多个对象的第二子集。
2.如权利要求1所述的计算机实现方法,其中,当所述第一节点的所述输入将第一动画对象集标识为待访问的动画对象集时,所述动画对象集包括所述第一动画对象集,并且其中,当所述第一节点的所述输入将第二动画对象集标识为待访问的动画对象集时,所述动画对象集包括第二动画对象集。
3.如权利要求1所述的计算机实现方法,还包括: 将所述第一子集与第二分割标准做比较,其中所述第一节点还包括所述第二分割标准; 当所述第一子集中的一个或多个对象满足所述第二分割标准时,生成所述第一子集中的那些满足所述第二分割标准的一个或多个对象的第三子集;以及 当所述第一子集中的一个或多个对象不满足所述第二分割标准时,生成所述第一子集中的那些不满足所述第二分割标准的一个或多个对象的第四子集。
4.如权利要求1所述的计算机实现方法,还包括: 选择用于所述第一子集的视觉效果;以及 基于所述第一子集和所选视觉效果来渲染图像,其中所述多个互连节点还包括: 第二节点,其包括所述视觉效果;以及 第三节点,其包括基于所述第一子集和所选视觉效果来渲染所述图像的指令。
5.如权利要求4所述的计算机实现方法,其中,渲染所述图像包括:利用来自渲染过程、半透明化过程、明暗处理过程或光栅化过程中的一个或多个的结果来渲染所述图像。
6.如权利要求4所述的计算机实现方法,其中,所述第二节点的输入标识来自所述第一节点的第一输出的所述第一子集。
7.如权利要求6所述的计算机实现方法,其中,所述第三节点的输入标识来自所述第二节点的输出的所述第一子集和所述所选视觉效果。
8.如权利要求4所述的计算机实现方法,其中,所述视觉效果包括外观、关联光源、纹理或材料。
9.如权利要求1所述的计算机实现方法,其中,所述第一分割标准包括对象名称、对象类型、几何结构名称、零件名称、材料或接近特性中的一个或多个。
10.非暂态性计算机可读存储媒体,包括利用依赖图分割动画对象集的计算机可执行指令,所述计算机可执行指令包括如下指令: 访问包括多个互连节点的依赖图,其中所述多个互连节点中的第一节点包括第一分割标准;访问由所述第一节点的输入标识的动画对象集; 将所述动画对象集与所述第一分割标准做比较; 当所述动画对象集中的一个或多个对象满足所述第一分割标准时,生成那些满足所述第一分割标准的一个或多个对象的第一子集;以及 当所述动画对象集中的一个或多个对象不满足所述第一分割标准时,生成那些不满足所述第一分割标准的一个或多个对象的第二子集。
11.如权利要求10所述的非暂态性计算机可读存储媒体,其中,当所述第一节点的所述输入将第一动画对象集标识为待访问的动画对象集时,所述动画对象集包括所述第一动画对象集,并且其中,当所述第一节点的所述输入将第二动画对象集标识为待访问的动画对象集时,所述动画对象集包括所述第二动画对象集。
12.如权利要求10所述的非暂态性计算机可读存储媒体,还包括如下指令: 将所述第一子集与第二分割标准做比较,其中所述第一节点还包括所述第二分割标准; 当所述第一子集 中的一个或多个对象满足所述第二分割标准时,生成所述第一子集中的那些满足所述第二分割标准的一个或多个对象的第三子集;以及 当所述第一子集中的一个或多个对象不满足所述第二分割标准时,生成所述第一子集中的那些不满足所述第二分割标准的一个或多个对象的第四子集。
13.如权利要求10所述的非暂态性计算机可读存储媒体,还包括如下指令: 选择用于所述第一子集的视觉效果;以及 基于所述第一子集和所选视觉效果来渲染图像,其中所述多个互连节点还包括: 第二节点,包括所述视觉效果;以及 第三节点,其包括基于所述第一子集和所述所选视觉效果来渲染所述图像的指令。
14.如权利要求14所述的非暂态性计算机可读存储媒体,其中,渲染所述图像包括:利用来自渲染过程、半透明化过程、明暗处理过程或光栅化过程中的一个或多个的结果来渲染所述图像。
15.如权利要求14所述的非暂态性计算机可读存储媒体,其中,所述第二节点的输入标识来自所述第一节点的第一输出的所述第一子集。
16.如权利要求16所述的非暂态性计算机可读存储媒体,其中,所述第三节点的输入标识来自所述第二节点的输出的所述第一子集和所述所选视觉效果。
17.如权利要求14所述的非暂态性计算机可读存储媒体,其中,所述视觉效果包括外观、关联光源、纹理或材料。
18.如权利要求14所述的非暂态性计算机可读存储媒体,其中,所述第一分割标准包括对象名称、对象类型、几何结构名称、零件名称、材料或接近特性中的一个或多个。
19.利用依赖图分割动画对象集的装置,所述装置包括: 存储器,其配置为存储包括多个互连节点的依赖图,其中所述多个互连节点中的第一节点包括第一分割标准;以及计算机处理器,其配置为: 访问包括多个互连节点的依赖图,其中所述多个互连节点中的第一节点包括第一分割标准;访问由所述第一节点的输入标识的动画对象集; 将所述动画对象集与所述第一分割标准做比较; 当所述动画对象集中的一个或多个对象满足所述第一分割标准时,生成那些满足所述第一分割标准的一个或多个对象的第一子集;以及 当所述动画对象集中的一个或多个对象不满足所述第一分割标准时,生成那些不满足所述第一分割标准的一个或多个对象的第二子集。
20.如权利要求19所述的装置,其中,当所述第一节点的所述输入将第一动画对象集标识为待访问的所述动画对象集时,所述动画对象集包括所述第一动画对象集,并且其中,当所述第一节点的所述输入将第二动画对象集标识为待访问的动画对象集时,所述动画对象集包括所述第二动画对象集。
21.如权利要求19所述的装置,其中,所述计算机处理器还配置为: 将所述第一子集与第二分割标准做比较,其中所述第一节点还包括所述第二分割标准; 当所述第一子集中的一个或多个对象满足所述第二分割标准时,生成所述第一子集中那些满足所述第二分割标准的一个或多个对象的第三子集;以及 当所述第一子集中的一个或多个对象不满足所述第二分割标准时,生成所述第一子集中不满足所述第二分割标准的一个或多个对象的第四子集。
22.如权利要求19所述的装置,其中,所述计算机处理器还配置为: 选择用于所述第一子集的视觉效果;以及 基于所述第一子集和所选视觉效果来渲染图像,其中所述多个互连节点还包括: 第二节点,其包括所述视觉效果;以及 第三节点,包括基于所述第一子集和所述所选视觉效果来渲染所述图像的指令。
23.如权利要求22所述的装置,其中,渲染所述图像包括:利用来自渲染过程、半透明化过程、明暗处理过程或光栅化过程中的一个或多个的结果来渲染所述图像。
24.如权利要求22所述的装置,其中,所述第二节点的输入标识来自所述第一节点的第一输出的所述第一子集。
25.如权利要求24所述的装置,其中,所述第三节点的输入标识来自所述第二节点的输出的所述第一子集和所述所选视觉效果。
26.如权利要求22所述的装置,其中,所述视觉效果包括外观、关联光源、纹理或材料。
27.如权利要求19所述的装置,其中,所述第一分割标准包括对象名称、对象类型、几何结构名称、零件名称、材料或接近特性中的一个或多个。
【文档编号】G06T13/00GK104050693SQ201410096201
【公开日】2014年9月17日 申请日期:2014年3月16日 优先权日:2013年3月15日
【发明者】R·G·威尔逊, E·P·史密斯, M·李, M·瑞归恩斯, P·麦克纳尼 申请人:梦工厂动画公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1