通用三维场景数据的应用实例的制作方法

文档序号:6540828阅读:165来源:国知局
通用三维场景数据的应用实例的制作方法
【专利摘要】本发明提供了采用层次结构实例化场景描述数据来渲染三维图像的系统和方法。访问一个层次结构。该层次结构包含一个第一节点和一个实例节点。该第一节点是一个或多个节点的第一子树的前身而且第一节点是与第一场景描述数据对象相关联的。该实例节点是层次结构的一片叶子。实例节点有一个母节点而且实例节点与第二场景描述数据对象有关。该母节点有除实例节点之外的后继节点。读取实例节点的实例化指令。该实例化指令包含识别第一节点的信息。一个或多个节点的实例子树被合并到实例节点层次结构的一个位置。根据子树的合并实例渲染图像。
【专利说明】通用三维场景数据的应用实例

【技术领域】
[0001]本发明涉及计算机生成的场景数据,更具体而言涉及使用层次结构树计算机生成的场景数据。

【背景技术】
[0002]计算机生成的动画通常是通过创造一序列图像,每个图像描述由一个或多个计算机生成的对象(如:一个角色、一棵树、一张桌子或一把椅子)组成的计算机生成的场景。计算机生成的图像往往描述一个包含多个类似对象(如:多个角色、多棵树、多张桌子或多把椅子)的场景。例如:一个场景可能包括数百人坐在体育场看台上观看一场体育赛事或者另一个场景可能包括许多松树产生一片森林的效果。
[0003]再具体而言,生成一个包括松树林的虚拟三维场景,从计算机的角度上看,反复生成相同松树组成的森林要比设计、开发、维护和提供不同树木组成的森林便宜很多。复制相同松树组成的森林也比设计场景的美术师所花的时间更少。
[0004]然而,森林中的每棵松树都一模一样,从审美意义上并不好看。这样的森林既不真实,让看这动画场景的人也觉得不逼真。但只需要稍微改变一下松树的细节就可大大增加森林的逼真效果。例如:改变树木的色泽、树木的质地、树枝的数量和位置以及树叶的颜色,这样森林的场景就明显地逼真了。
[0005]通常,能够在虚拟三维场景中复制对象背景中纷杂物景的多个变量是非常有益的。因此,有必要建立一个通用系统,用于配置和管理计算机生成的场景中的元素以及在复制时应用各种变体。
[0006]发明概述
[0007]本发明阐述了通过使用层次结构实例化的场景描述数据渲染三维图像的流程。其中例示的一个流程可包括访问一个层次结构。层次结构包括第一节点和一个实例节点。第一节点是包含一个或多个节点的第一子树的前身,而且与第一场景描述数据对象相关。实例节点有一个母节点,而且与第二场景描述数据对象相关。母节点有除实例节点以外的后继节点。然后,读取实例节点的实例化指令。实例化指令包括识别第一节点的信息。随后,包含一个或多个节点的第一子树被合并到实例节点的层次结构中。根据第一子树的合并实例渲染图像。
[0008]本发明还阐述了通过使用层次结构实例化的场景描述数据产生三维图像的系统和计算机可读的存储媒介。
[0009]附图简述
[0010]可通过参考以下说明和相应编号的附图更好地理解本申请。
[0011]图1例示一幅计算机根据各种实施例用层次结构树生成的图像。
[0012]图2A-B例示源层次结构和目标层次结构。
[0013]图3A-B例示覆盖一个节点的源层次结构和目标层次结构。
[0014]图4显示用于递归合并节点的示范技术。
[0015]图5A-B例示覆盖增加一个节点的源层次结构和目标层次结构。
[0016]图6A-B例示用于绝对路径和相对路径的源层次结构和目标层次结构。
[0017]图7例示使用层次结构渲染三维图像的流程。
[0018]图8显示一个示范计算系统。
[0019]发明详述
[0020]以下描述可使本领域的普通技术人员制造和使用各种实施例。这里描述的具体装置、技术和应用仅作为示例。对于本领域的普通技术人员而言对这些示例进行各种修改简单易行,而且可以在不偏离本技术的精神和范围情况下把本专利描述的一般原理运用到其它实例和应用中去。所以,这里公开的技术并不局限于本文所列的示例,而可应用于与本权利要求相一致的范围之中。
[0021]出于描述目的,在此公开的技术全文中使用的软件、软件模块、软件对象等等均可描述执行各种功能。然而,本领域的一个普通技术人员会发现软件可能无法主动执行任何功能,但可包括计算机处理器可执行的指令。因此,尽管这里描述的软件可执行一项功能,但它应被理解为计算机处理器或其它计算装置通常可执行这些功能,因为这些软件模块或对象提供了计算机的执行指令。
[0022]计算机生成的动画通常是通过创造一序列图像,每个图像描述由一个或多个计算机生成的对象组成的计算机生成的场景。光源、材料、纹理和其它视觉效果可与计算机生成对象相关联以创造一个视觉效果逼真的计算机生成的场景。为了便于本文讨论,计算机生成的场景通常指可用虚拟摄像机拍摄的虚拟三维(3D)空间,也可泛指一个场景。
[0023]以下描述的各种实施例与场景描述数据有关。场景描述数据按层次结构树的结构排列。层次结构树被用于虚拟三维场景的实例场景描述数据。此外,变量可运用到实例化的场景描述数据之中。例如:一个人物对象有皮肤颜色特性和头发颜色特性。这个人物可被实例化产生第二个人物。在第二个人物中,变量可运用到皮肤颜色的特性,譬如使皮肤颜色更深。这样,一个场景可同时用两个人物,第一个人物皮肤颜色稍浅,而第二个人物有更深色的皮肤。
[0024]图1例示计算机根据各种实施例可用层次结构树生成图像。值得注意的是图1描绘了一个体育场中一群人物的场景。为了创造这样一幅图像,工程师通常要逐个地配置每个人物来营造一群人的效果。当某些人物共有的特性需要改变时,工程师必须对每一个人物的特性进行逐一改变。因此,保持人物的多个副本会使创造这类图像变成一个困难和繁重的任务。
[0025]参考图1,采用层次结构树的通用实例化渲染同样的场景,工程师可创建人物的其它实例并给实例化的人物添加变量。这种技术可使人群中的人物共享某些特性,又可使工程师改变实例化人物的个性特点。这样,减少了存储代表这群人物的数据并减小了维护这些人物的开支。这些人物就是场景描述数据。
[0026]如上所述,场景描述数据是按层次结构树的结构排列的。层次结构树上最高的节点称之为根节点。根节点没有母节点。层次树的内部节点均有一个或多个子节点。层次树的叶节点是层次树上没有子节点的节点。叶节点代表数据(如:字符串、整数、矢量或多边形网格等)。内部节点代表数据组。例如:叶节点可能表示几何网格、视觉效果对象、应用到几何上的材料、虚拟摄像机、照明架、滤光器等等。边缘或链路连接层次结构树的各个节点。
[0027]图2例示了源层次结构和目标层次结构。实例化的语义是按照源层次结构200至目标层次结构220之间转换进行描述的。
[0028]源层次结构200包括根节点202、内部节点204-210以及叶节点212-218。每个节点212、214和216代表场景描述数据。节点218是叶节点,即一个实例节点。一个实例节点包括一个特殊实例化标签。例如:该实例节点包括一个“母实例”标签和一个值。这个“母实例”标签可被称之为一个实例化指令标签。实例节点的值是层次结构树上另一个需要被实例的节点路径。同样,实例节点可包括实例另一个节点的指令而且该实例节点可指定树中哪个节点应被实例化。
[0029]作为示例,到达叶节点216的路径可以是“1,1,2,2”。为了便于理解,该路径可写成:1[来自标签=节点202的1]、1[来自标签=节点204的1]、2[来自标签=节点210的2]、2 [来自标签=节点216的2]。
[0030]要被实例化的节点称之为实例母节点。在图2A的示例中,节点218就是一个实例母节点。实例指令标签和实例母节点的路径用虚线从实例节点218连到实例母节点204。在这个示例中,实例母节点218有一条“1,I”的路径。当实例指令标签在执行时,存储在该节点的路径被行进过而且母节点204的所有子节点的副本被作为实例节点218的姐妹插入到实例母节点204并产生图2B所示的目标层次结构220。在图2A,实例母节点204的子节点是节点208-216。实例节点218被删除。换言之,实例母节点204的子节点替代了节点218。
[0031]在图2B示例中,源层次结构200已被执行,产生目标层次结构220。如上所述,当实例节点被执行时,实例母节点所有子节点的副本将被作为实例节点的姐妹插入并产生一个目标层次结构。目标层次结构220具有与源层次结构200相类似的结构,但增添了内部节点222和224及叶节点226、228和230。更重要的是,实例叶节点226、228及230具有与相应的叶节点212、214及216相同的标签、值和特性。
[0032]当一个实例母节点因一条实例化指令被实例化时,该实例母节点的所有子节点被复制。这个副本是深复制副本。深复制副本指该母节点以下的整个子树被复制。
[0033]在示例中,图2的节点204代表在虚拟场景中放置的一个虚拟对象。节点204是一组用于产生虚拟对象的元素。虚拟对象的不同元素由叶节点212、214和216表示。节点212代表对象的几何网格,节点214代表对象的材料属性(如:对象的颜色),而节点216则代表对象的转换特性(如:位置、旋转及对象的比例)。如图2A所示,作为示例,节点214代表该对象的材料属性,具有“ B ”值。
[0034]图2的节点206代表作同一场景中放置的第二个虚拟对象,前一个虚拟对象用节点204代表。当执行实例节点218的实例化指令时,母节点204的子节点被深复制。节点208-216被复制后产生节点222-230。节点206连接节点222-230并与节点226-230所含的数据有关。具体而言,节点206是用于产生虚拟对象的一组元素。节点226代表对象的几何网格并具有与节点212相同的值,节点228代表对象的材料属性(如:对象的颜色)并具有与节点214相同的值,而节点230则代表对象的转换特性(如:位置、旋转及对象的比例)并具有与节点216相同的值。如图2B所示,作为示例,节点228代表该对象的材料属性,具有与节点214相同的“B”值。
[0035]图3例示覆盖一个节点的源层次结构和目标层次结构。实例化的语义是按照源层次结构300至目标层次结构330之间转换进行描述的。
[0036]源层次结构300包括根节点302、内部节点304-310和320以及叶节点312-318和322。每个节点312、314、316和322代表场景描述数据。节点318是一个叶节点,即实例节点。如图3A中虚线所示,节点318包括一个“母实例”标签和到达实例母节点304路径的值。例如:到达母节点的路径可用“1-1”表示。第一个“I”表示节点302,第二个“I”表示节点304。
[0037]与图2A中的源层次结构200相反,图3A中的源层次结构300包括一个有妹节点的实例节点318。换言之,在源层次结构,代表实例化指令的节点可能有姐妹节点。这些姐妹节点可以是叶节点,也可以是内部节点。如图3A所示,内部节点320和实例节点318是姐妹节点,因为内部节点320和实例节点318具有同一个直系母节点——节点306。
[0038]在图3B示例中,源层次结构300已被执行,导致出目标层次结构330。如上所述,当一个实例节点被执行时,该实例母节点的所有子节点被复制,被作为姐妹节点插入实例节点并产生一个目标层次结构。这种复制可能导致两个或更多节点之间的碰撞。当一个(实例化导致的)复制节点和一个现有节点具有同一标签(如:它们描述在一个层次结构树中同一位置的同一个场景描述数据)时将发生碰撞。产生碰撞时,已实例化的母节点之子节点将与现有节点合并产生目标层次结构。
[0039]现在,让我们回到图3A,看看已实例化的母节点之子节点是如何与现有节点合并产生目标层次结构330。在这个示例中值得关注的重点是内部节点320 (tag=2)和内部节点310(tag=2)具有同样的标签。因此,在执行实例节点318的实例化指令时,这两个内部节点产生碰撞。由于内部节点320和内部节点310均为无叶节点,所以他们的子节点被合并。
[0040]源层次结构的内部节点320有一个子节点322(tag=l)。内部节点310(tag=2)有子节点314(tag=l)和子节点316(tag=2)。当节点310的子节点和节点320的子节点合并时会产生另一个碰撞。这个碰撞发生在子节点314(tag=l)副本被复制到节点320的直系子节点和其子节点322(tag=l)时。这个碰撞的发生是因为复制结果产生一棵树的同一位置上具有两个相同标签值的节点。如果涉及碰撞的两个节点都不是叶节点,碰撞的结果会有利于现有节点。换言之,来自于源代码树上的现有节点会保留在目标树上。在这个示例中,涉及碰撞的两个节点均为叶节点。因此,碰撞的结果有利于叶节点322。节点310的另一个子节点,即叶节点316,并没有造成碰撞,所以被复制到节点320 —个直系子节点中。如图3B所示,叶节点316被复制成叶节点336。同样,节点308和节点312被相应地复制为节点306子树的节点332和节点334。
[0041]由于这次合并,树中现有数据覆盖新复制的数据并产生出实例母节点变量子树。
[0042]图4例示一个递归的合并节点过程。该过程始于模块402。模块404表示为当前组节点的各个姐妹节点的合并程序正在执行。这个过程进行到模块406将一组节点合并到一个节点。如果系统在模块406检测到该节点会产生碰撞,该程序会移到模块408。碰撞是通过比较将被复制到层次结构树某一位置的节点标签与该位置现有节点标签而检测到。如果被复制的节点具有与现有节点相同的值,两个节点会产生碰撞。在模块408,系统会确定两个产生碰撞的节点是否其中一个是叶节点。如果两个中有一个是叶节点,系统会移到模块414。如果两个都不是叶节点,系统会移到模块410。
[0043]在模块414,系统保留了现有节点,丢弃了被复制的节点。在一个示例中,现有节点可以是一个覆盖一个叶节点或内部节点的叶节点。在另一个示例中,现有节点可以是一个覆盖一个叶节点的内部节点。然后系统移到模块412。
[0044]系统在模块410调用合并两个节点的子节点程序。图400的该程序可被反复调用以实现这个合并。
[0045]系统在模块412确定是否还有其它姐妹节点需要被复制。如果没有需要复制的姐妹节点,该程序会在模块416结束。如果系统确定还有一个或多个姐妹节点要复制,系统会返回到模块404,并继续处理进行下一个姐妹节点。
[0046]采用这种覆盖技术,系统可以修改叶节点定义的任何属性。此外,系统还可以作为合并的一部分增添节点。图5展示了增添节点的一个示例。
[0047]图5例示了源层次结构和目标层次结构在一次覆盖时增添了一个节点。实例化的语义按照源层次结构500至目标层次结构530之间的转换进行描述。
[0048]图5A中,源层次结构500包括根节点502、内部节点504-510和520以及叶节点512-518和522。每个节点512、514、516和522代表场景描述数据。如图5A用虚线所示,节点518也是一个属于实例节点的叶节点。
[0049]重要的是,叶节点522具有一个值3的标签(tag=3)。在这个示例中,当实例化时,只有节点510和节点520会产生碰撞。叶节点522(tag=3)与节点514(tag=l)和节点516(tag=2)的副本之间不会有任何碰撞。
[0050]在图5B的示例中,源层次结构500已被执行,产生目标层次结构530。与前面的示例相同,产生了节点532、534、536和538。但是,在这个示例中增添的一个节点也被存储了。具体而言,组510和520相同,唯一不同是多了一个叶节点522 (tag=3)。这个示例表明增添节点(和增添场景描述数据)可以通过实例化程序完成。因此,覆盖也可以添加节点,因为目标层次结构是实例母节点复制和覆盖数据之间的合并(如:图5A中的节点522)例如:一个摄像机架可被实例产生一个摄像机架,新产生的摄像机架子树中比原来的摄像机架子树中多一个节点。这个增添的节点可描述为一个摄像过滤器或其它场景描述数据。
[0051]该系统的另一个属性是叶节点可存储值,这些值可被解释为对层次结构中其它节点的引用。例如:可通过存储一个路径值而实现。这个路径值,如上所述,是一个序列标签。绝对引用是一条被解释为来自根节点的路径。
[0052]但是,路径也可被解释为从存储的子节点的母节点中开始行进的路径。这称之为相对引用而且当这个节点被实例化后具有许多有用的属性。例如:一个实例复制的节点包含一个相对引用可指向该实例的相应参考原节点,并不指向原节点本身。这就使系统模块化,能使通用实例子树按预期进行,即使子树包含内在引用。
[0053]图6例示用于绝对和相对路径的源层次结构和目标层次结构。在图6A中,源层次结构600包括根节点602、内部节点604-610和616以及叶节点612、614、618和620。如图6A虚线所示,节点620也是一个属于实例节点的叶节点。
[0054]叶节点614可包括指向节点618的引用。该引用作为一条路径被存储。如上所述,路径可以说绝对或相对的。一个绝对引用会使叶节点614的每次实例化都会被指向节点618。而相对引用可使叶节点614的每次实例化指向相对于节点614所在位置的相同路径。
[0055]例如:图6B中的目标层次结构640产生于实例化。在图6B中,目标层次结构640包括根节点602、内部节点604-610、616、622、624和630以及叶节点612、614、618、626、628和632。如果叶节点614包含指向叶节点618的绝对引用,实例化的叶节点628也会包含指向叶节点618的绝对引用。这种绝对引用的例子是“1,1,2,2,I”。但是,如果叶节点614包含指向叶节点618的相对引用,实例化的叶节点628会包含指向叶节点632的相对引用。这种相对引用的例子是“2,I”。这个相对引用被解释为从存储的子节点的母节点中开始行进的路径。在这个示例中,节点628的母节点是节点624。行进的路径“2,I”从节点624开始,至叶节点632止。在某些示例中,引用旁边会存储一面旗巾只或一个标记,表示该引用是相对引用还是绝对引用。
[0056]本系统的另一个特点是具有指向称之为“移到母节点”的特殊令牌的相对引用能力。这可解释为一种指令,而不是一种标签。这个指令可以在树中行进计算参照物时移到层次结构更高一个层级。这也可被认为是一种类似于UNIX系统和文件路径名中.”的特殊目录名。
[0057]图7例示了通过用一个层次结构实例化场景描述数据来渲染三维图像的过程。在模块702访问层次结构。层次结构包括一个第一节点。第一节点是一个或多个节点的第一子树的前身。换言之,第一子树的一个或多个节点是第一节点的儿子或孙子。第一节点与第一场景描述数据对象有关。场景描述数据对象可包括,如几何物体、虚拟摄像机、照明架、光源、光滤波器、材料、纹理和其它视觉效果。该层次结构还包括一个实例节点。这个实例节点是层次结构的一片叶子。该实例节点有一个母节点而且该实例节点与第二场景描述数据对象有关。该实例节点的母节点具有该实例节点以外的其它后继节点。那些后继节点可以是内部节点及或叶节点。
[0058]在模块704,该实例节点的实例化指令被读取。实例化指令包含识别第一节点的信息。实例化指令可以是一个特殊标签和实例节点的值。
[0059]在模块706,第一子树的实例被合并。第一子树实例的一个或多个节点在实例节点层次结构的某个位置被合并。合并可包括确定在(a)第一子树的至少一个节点和(b)除实例节点的母节点之外的后继节点的至少一个节点之间是否有冲突。合并可能还包括覆盖由(b)(除实例节点的母节点之外的后继节点的至少一个节点)用(a)(第一子树的至少一个节点)定义的一个属性的第二值来定义一个属性的第一值。
[0060]冲突可通过访问(a)(第一子树的至少一个节点)的第一标签,该标签具有一个标签值;以及访问(b)(除实例节点的母节点之外的后继节点的至少一个节点)的第二标签,该第二标签具有相同的标签值来确定。因为两个标签值相同,否则两个节点可能是姐妹节点,所以确定两个节点之间是否有冲突。通常,标签值用于识别层次结构中的姐妹节点的独特性。
[0061]在有些示例中,第一节点也可以有一个标签,如第三标签。识别第一节点的信息包括一条路径,该路径使用第三标签。
[0062]在有些示例中,第一子树包含一个含相对引用的第二节点,该第二节点的相对引用识别第一子树中第一个识别的节点。第一子树合并实例包含一个含相对引用的第三节点。该第三节点的相对引用识别第一子树合并实例中的第二个识别的节点。第一个识别的节点和第二个识别的节点不是同一节点。
[0063]在其它示例中,第一子树包含一个含绝对引用的第二节点。第二节点的绝对引用识别第一子树的第一个识别的节点。第一子树的合并实例包含一个含绝对引用的第三节点。该第三节点的绝对引用识别第一子树的第一个识别的节点。
[0064]此外,第一子树可能包含一个第四节点,该节点包括含一个母令牌的数据。母令牌表示可在层次结构中往上移一层级的指令。
[0065]在模块708,根据第一子树合并实例渲染一幅图像。
[0066]图8例示可以被用于执行上述层次结构技术的动画系统800。该层次结构技术可在硬件或在非临时性计算机可读存储媒介的软件中执行。
[0067]动画系统800经配置可从输入装置820接收用户的输入。输入装置820可以是任何能接收用户输入信息并发送此类信息到动画系统800的装置。例如:输入装置820可以是一个键盘、鼠标、平板电脑、指示笔等等。本领域的熟练技术人员会知道也可使用其它类型的输入装置。
[0068]动画系统800经配置可向输出装置830输出图形、图像或动画。输出装置830可包括任何能够接受来自动画系统数据并把数据传给用户的装置。例如:输出装置830可包括一个液晶显示仪、一组发光二极管、投影仪等等。本领域的熟练技术人员会知道也可使用其它类型的输出装置。
[0069]动画系统800还可包括一个中央处理器802。该中央处理器可包括一个或多个处理核心。中央处理器802可与输入装置820连接,并与之通信。尽管显示的动画系统800只有一个中央处理器,但该系统可包括多个处理器。动画系统800还可包括图形处理器804。图形处理器804可用于专门处理与图形相关的数据。图形处理器804可包括一个处理核心或多个处理核心。尽管显示的动画系统800只有一个图形处理器804,但该系统可包括数个图形处理器。中央处理器802及或图形处理器804可与输出装置830连接,并与之通信。
[0070]在示例中,动画系统800可包括存储在非临时性计算机可读存储媒介上的一个或多个处理器和指令,当一个或多个处理器执行时,将会应用上述层次结构技术渲染动画。在此处所描述实施例的背景中,“非临时性计算机可读存储媒介”可以是任何能够包含或存储用于或连接指令执行系统、仪器或装置。非临时性计算机可读存储媒介可包括但不限于电子、磁、光学、电磁、红外线或半导体系统、仪器或装置、便携式计算机磁盘(磁性)、随机存取存储器(RAM)(磁性)、只读存储器(ROM)(磁性)、可擦除可编程只读存储器(EPROM)(磁性)、便携式光盘如⑶、⑶-R、⑶-RW、DVD、DVD-R或DVD-RW、或闪存记忆体如小型闪存卡、安全数码卡、USB存储设备、记忆棒等等。
[0071]动画系统800可包括易失性存储器806,这是一种非临时性计算机可读存储媒介,可与中央处理器802通信。易失性存储器806可包括随机存取存储器,如动态随机存取存储器或静态随机存取存储器或任何其它类型的易失性存储器。易失性存储器806可在运行动画系统800的时候用于存储数据或指令。本领域的熟练技术人员将会知道也可使用其它类型的易失性存储器。
[0072]动画系统800还可包括非易失性存储器808,这是一种非临时性计算机可读存储媒介,可与中央处理器802通信。非易失性存储器808可包括闪存器、硬盘、磁存储设备、只读存储器等等。非易失性存储器808可在用于存储动画数据、渲染安装设置图数据、计算机指令或其它信息。本领域的熟练技术人员将会知道也可使用其它类型的非易失性存储器。
[0073]动画系统800并不局限于上述这些设备、配置和功能。例如:尽管只显示了单一的易失性存储器806、非易失性存储器808、中央处理器802、图形处理器804、输入装置820、和输出装置830,多个此类装置可内部或外部连接动画系统800。此外,动画系统800还可包括用于访问诸如内部网络或互联网的网络信息的网络连接设备。本领域的熟练技术人员将会知道本动画系统800也可采用其它配置。
[0074]这里描述了许多示例。这些示例的参照意义没有局限。提供这些示例能够显示本公开的技术之更广泛的应用。在不偏离本技术真正精神和范围的前提下,可对各种实施例进行更改或采用等同物进行替代。此外,为了适用于特定情况、材料、物质组成、程序、过程行为或步骤可进行很多修改以达到各种实施例的目的、精神或范围。另外,熟悉本领域的技术人员可能理解这里描述和展示的每个变量均有其独特的部分和功能,可以在不偏离各种实施例的范围或精神的前提下随时与其它功能分离或结合。
【权利要求】
1.一种通过用层次结构实例化场景描述数据来渲染三维图像的计算机执行方法,所述方法包含: 访问层次结构;所述层次结构包含: 第一节点;所述第一节点系一个或多个节点的第一子树的前身并且所述第一节点是与第一场景描述数据对象相关联的; 一个实例节点;所述实例节点是一个层次结构的叶片、实例节点有一个母节点、并且所述实例节点与第二场景描述数据对象有关,并且其中母节点具有除实例节点之外的后继节点。 读取所述实例节点的实例化指令;所述实例化指令包含识别所述第一节点的信息。 合并在所述实例节点层次结构中某一位置的一个或多个节点的所述第一子树实例;以及 渲染根据所述第一子树实例合并生成的图像。
2.如权利要求1所述的计算机执行方法,这里所述的合并包含: 确定在(a)所述第一子树的至少一个节点和(b)除所述实例节点的母节点之外的所述后继节点的至少一个节点之间是否有冲突;以及 覆盖由(b)所述后继 节点的至少一个节点定义的属性的第一值,通过使用由(a)所述第一子树的至少一个节点定义的所述属性的第二值。
3.如权利要求1所述的计算机执行方法,其中所述的合并还包含: 确定冲突采用: 访问(a)所述第一子树的至少一个节点的第一标签,所述标签具有标签值。 访问(b)所述后继节点的至少一个节点的第二标签,所述第二标签具有所述标签值;以及 其中标签值独特地标示在层次结构中的姐妹节点。
4.如权利要求3所述的计算机执行方法,其中: 所述第一节点有第三标签; 识别所述第一节点的所述信息包含路径;并且 所述路径包括所述第一节点的所述第三标签。
5.如权利要求1所述的计算机执行方法,其中: 所述第一子树包含一包含相对引用的第二节点,所述第二节点的所述相对引用识别在所述第一子树中的第一个识别的节点; 所述第一子树合并实例包含一包含相对引用的第三节点,所述第三节点的相对引用识别在所述第一子树合并实例中的第二个识别的节点;并且 其中所述的第一个识别的节点和所述第二个识别的节点并非同一个节点。
6.如权利要求1所述的计算机执行方法,其中: 所述第一子树包含一包含绝对引用的第二节点,所述第二节点的绝对引用识别在所述第一子树中第一个识别的节点;以及 所述第一子树合并实例包含一包含绝对引用的第三节点,所述第三节点的绝对引用识别在所述第一子树中的第一个识别的节点。
7.如权利要求1所述的计算机执行方法,其中:所述第一子树包含一第四节点,所述节点包括含一个母令牌的数据,所述母令牌表示可在所述层次结构中往上移一个层级的指令。
8.一种非临时性计算机可读存储媒介包括采用层次结构实例化场景描述数据来渲染三维图像的计算机可执行的指令,所述计算机可执行的指令包含用于下列用途的指令: 访问所述层次结构,所述层次结构包含: 第一节点;所述第一节点系一个或多个节点的第一子树的前身而且所述第一节点与第一场景描述数据对象有关。 一个实例节点;所述实例节点是所述层次结构的一片叶子,所述实例节点有母节点,并且所述实例节点与第二场景描述数据对象有关,并且其中所述母节点有除实例节点之外的后继节点; 读取所述实例节点的实例化指令;所述实例化指令包含识别所述第一节点的信息。 合并在所述实例节点层次结构中某位置的一个或多个节点的第一子树;以及 根据所述第一子树的合并实例渲染图像。
9.如权利要求8所述的非临时性计算机可读存储媒介,其中所述合并包含以下指令: 确定在(a)所述第一子树的至少一个节点和(b)所述除实例节点的母节点之外的后继节点的至少一个节点之间是否有冲突;以及 覆盖由(b)所述除实例节点的母节点之外的后继节点的至少一个节点定义的属性的第一值,通过使用由(a)所述第一子树的至少一个节点定义的属性的第二值。
10.如权利要求8所述的非临时性计算机可读存储媒介,其中所述合并还包含以下指令: 确定冲突采用: 访问(a)所述第一子树的至少一个节点的第一标签,所述标签具有一个标签值; 访问(b)所述除实例节点的母节点之外的后继节点的至少一个节点的第二标签,所述第二标签具有标签值;并且 其中标签值独特地标示在层次结构中的姐妹节点。
11.如权利要求10所述的非临时性计算机可读存储媒介,其中: 所述第一节点有第三标签; 所述识别第一节点的信息包含路径;以及 所述路径包括第一节点的第三标签。
12.如权利要求8所述的非临时性计算机可读存储媒介,其中: 所述第一子树包含一包含相对引用的第二节点,所述第二节点的相对引用识别在所述第一子树中的第一个识别的节点; 所述第一子树合并实例包含一包含相对引用的第三节点,所述第三节点的相对引用识别在所述第一子树合并实例中的第二个识别的节点;以及 其中所述的第一个识别的节点和第二个识别的节点并非同一个节点。
13.如权利要求8所述的非临时性计算机可读存储媒介,其中: 所述第一子树包含一包含绝对引用的第二节点,所述第二节点的绝对引用识别在所述第一子树中第一个识别的节点;以及 所述第一子树合并实例包含一包含绝对引用的第三节点,所述第三节点的绝对引用识别在所述第一子树中的所述第一个识别的节点。
14.如权利要求8所述的非临时性计算机可读存储媒介,其中: 所述第一子树包含一第四节点,所述第四节点含一母令牌的数据,所述母令牌表示可在所述层次结构中往上移一个层级的指令。
15.一种通过用层次结构实例化场景描述数据来渲染三维图像的装置, 所述装置包含: 经配置可存储所述层次结构的存储器;以及 一个或多个经配置后可执行下列操作的计算机处理器: 访问层次结构,所述层次结构包含: 第一节点,所述第一节点系一个或多个节点的第一子树的前身,并且第一节点与第一场景描述数据对象有关; 实例节点,所述实例节点是所述层次结构的叶子,所述实例节点有母节点,所述实例节点与第二场景描述数据对象有关,并且其中所述母节点有除实例节点之外的后继节点;读取实例节点的实例化指令;所述实例化指令包含识别所述第一节点的信息; 合并在所述实例节点层次结构中某位置的一个或多个节点的第一子树的实例;以及 根据所述第一子树的合并实例渲染图像。
16.如权利要求15所述的装置,所述一个或多个计算机处理器经配置还可用于: 确定在(a)所述第一子树的至少一个节点和(b)所述除实例节点的母节点之外的后继节点的至少一个节点之间是否有冲突;以及 覆盖由(b)所述除实例节点的母节点之外的后继节点的至少一个节点定义的属性的第一值,通过使用由(a)第一子树的至少一个节点定义的属性的第二值。
17.如权利要求15所述的装置,所述一个或多个经过进一步配置可执行下列操作的计算机处理器: 通过下列方式确定冲突: 访问(a)所述第一子树的至少一个节点的第一标签,所述标签具有标签值; 访问(b)所述除实例节点的母节点之外的后继节点的至少一个节点的第二标签,所述第二标签具有标签值;以及 其中标签值独特地标示在层次结构中的姐妹节点。
18.如权利要求17所述的装置,其中: 所述第一节点有第三标签; 所述识别第一节点的信息包含路径;以及 所述路径包括所述第一节点的所述第三标签。
19.如权利要求15所述的装置,其中: 所述第一子树包含一包含相对引用的第二节点,所述第二节点的相对引用识别在所述第一子树中的第一个识别的节点; 所述第一子树合并实例包含一包含相对引用的第三节点,所述第三节点的相对引用识别在所述第一子树合并实例中的第二个识别的节点;以及 其中所述的第一个识别的节点和第二个识别的节点并非同一个节点。
20.如权利要求15所述的装置,其中:所述第一子树包含一包含绝对引用的第二节点,所述第二节点的绝对引用识别在所述第一子树中第一个识别的节点;以及 所述第一子树合并实例包含一包含绝对引用的第三节点,所述第三节点的绝对引用识别在所述第一子树中的所述第一个识别的节点。
21.如权利要求15所述的装置,其中: 所述第一子树包含第四节点,所述第四节点包含母令牌的数据,所述母令牌表示可在所述层次结构 中往上移一个层级的指令。
【文档编号】G06T17/00GK104050699SQ201410098949
【公开日】2014年9月17日 申请日期:2014年3月17日 优先权日:2013年3月15日
【发明者】R·G·威尔逊, D·穆尔, N·龙 申请人:梦工厂动画公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1