用于数字内容制作的分层数据共享的制作方法

文档序号:6540700阅读:117来源:国知局
用于数字内容制作的分层数据共享的制作方法
【专利摘要】本发明提供了利用层级图来渲染三维图像的系统和方法。访问层级图,所述层级图包括第一节点、第二节点和目标节点。第二节点和目标节点是第一节点的后继。第一节点包括第一场景描述数据,第二节点包括第一变化数据,所述目标节点包括第二变化数据。选择目标节点以用于计算。确定目标节点祖先。第一节点和第二节点是目标节点的祖先。确定祖先的线性化,线性化包括阶。利用第一场景描述数据来初始化场景描述。基于线性化将第一变化应用于场景描述。第二变化应用于场景描述以产生最终场景描述。利用最终场景描述来渲染图像。
【专利说明】用于数字内容制作的分层数据共享

【技术领域】
[0001]本公开涉及计算机生成场景数据,尤其涉及利用定向非循环图的计算机生成场景数据。

【背景技术】
[0002]计算机生成动画通常是通过渲染图像序列来创建的,每个图像描绘了由一个或多个计算机生成对象(例如人物、一群人、环境、效果或灯光用具)构成的计算机生成场景。通常,计算机生成图像图示出包含相同资产的不同场景。例如,在白天时候场景可描绘男性人物,并且在夜间时候不同的场景可以描绘同一人物。在该实施例中,在白天时候人物可以是无胡子的,但是在夜间时候可具有短须或其它外表差别。
[0003]当资产具有在不同场景中具有不同特性时,传统的用于渲染图像的技术需要管理资产的各种实现。然而,维护资产的多个分离的版本提出了挑战。维护资产的分离版本的一个尤其有挑战性的方面是难以在资产的一些或全部版本中应用相同变化的难度。
[0004]返回参考上文的实施例,通常维护同一人物的两个版本:第一资产,其将人物表示为无胡子的,用在描绘白天时候的场景中;以及第二资产,其将人物表示为具有短须的,用在描绘夜间时候的场景中。在动画制作期间对人物的修改可要求变化应用于人物的所有版本。作为实施例,制作会需要人物的鼻子和下巴的变化。对于两个人物资产实现该相同变化是耗时的且计算机密集型的任务。
[0005]因此,期望使用用于以减少维护资产的多个独立版本的需要的方式共享数字内容的技术。
[0006]发明概述
[0007]描述了利用层级图来渲染三维图像的过程。一个示例过程可包括访问层级图。层级图包括第一节点、第二节点和目标节点。第二节点和目标节点是第一节点的后继。第一节点包括第一场景描述数据,第二节点包括第一变化数据,并且目标节点包括第二变化数据。接收目标节点的选择以用于计算。确定目标节点的祖先。第一节点和第二节点是目标节点的祖先。确定目标节点的祖先的线性化。线性化包括目标节点的祖先的阶。利用第一节点的第一场景描述数据来初始化场景描述。基于线性化将第二节点的第一变化应用于场景描述以产生更新场景描述。将目标节点的第二变化应用于更新场景描述以产生最终场景描述。基于最终场景描述来渲染图像。
[0008]描述了利用层级图来渲染三维图像的系统和计算机可读存储媒体。

【专利附图】

【附图说明】
[0009]通过参考结合所附附图进行的下面的说明,能够最佳地理解本申请,其中相似的部件可由相似的标记表示。
[0010]图1A-B描绘了根据各个实施方案的可利用分级数据共享来渲染的示例性的计算机生成图像。[0011 ] 图2示出了用于内容制作的示例性的层级图。
[0012]图3示出了用于内容制作的另一示例性的层级图。
[0013]图4示出了利用层级图来渲染三维图像的示例性过程。
[0014]图5示出了利用层级图来渲染三维图像的示例性过程。
[0015]图6示出了示例性的计算系统。
[0016]发明详述
[0017]提供了下面的说明书以使本领域普通技术人员能够实现和利用各个实施方案。具体的设备、技术和应用的描述仅作为实施例被提供。对本文所描述的实施例的各种改进对于本领域普通技术人员而言将是显而易见的,并且本文限定的一般性原理可应用于其它实施例和应用,而不偏离本技术的精神和范围。因此,所公开的技术不旨在局限于本文描述和图示的实施例,而是与权利要求相一致的范围相符合。
[0018]为了描述的目的,在本公开全文中,软件、软件模块、软件对象等可描述为执行各种功能。然而,本领域普通技术人员将认识到,软件不会主动地执行任何功能,相反,会包含能够在计算机处理器上执行的指令。因此,虽然本文将软件描述为执行功能,应理解为计算机处理器或其它计算设备通常可通过执行由软件模块或对象提供的计算机指令来实施那些在本文属于软件模块或对象的功能。
[0019]计算机生成动画通常是通过渲染图像序列而创建的,每个图像描绘了由一个或多个计算机生成资产构成的计算机生成场景。光源、材料、纹理和其它视觉效果可与计算机生成对象相关联以创建计算机生成场景的逼真视觉外观。为了本文论述的目的,计算机生成场景通常是指可利用虚拟摄像机来拍摄的三维(3D)空间,并且还可一般性地称为场景。
[0020]下文描述的各个实施方案涉及制作数字内容。数字内容可以指的是参数化场景描述数据。场景描述数据的部分在多个场合重复使用。场合可指的是单独的拍摄或成组拍摄。基础数据是指资产定义,诸如用于人物、环境和灯光用具。修改是指应用于场景描述数据的改动。
[0021]图1A-B描绘了根据各个实施方案的可利用分级数据共享来渲染的示例性的计算机生成图像。图1A示出了资产,在白天场景下描绘的拟人化狮子角色。动画师或美术师可能更愿意使狮子角色在白天场景中出现的一系列拍摄中具有短的面毛以制作白天动作。图1B示出了同一狮子角色,但是是在夜间场景中描绘的。动画师或美术师可能更愿意使狮子角色在夜间场景中出现的一系列拍摄中具有长的面毛以制作夜间动画。这给予了时间已消逝的表现,允许狮子角色的面毛在一天中生长。通常地,这需要将两个狮子角色维护为两个分离的资产,每个资产具有其自身的特性以及描述资产的数据。
[0022]利用分级数据共享,同一狮子资产能够高效地用于其中狮子角色的视觉特性基于拍摄而不同的各拍摄。因为同一资产用作用于在各拍摄中产生狮子角色的各描绘的基础,甚至对狮子角色进行的基本改变,诸如改变狮子角色的面部结构的变化,也可以容易地应用于使用狮子资产的所有拍摄。这加速了动画的制作并且降低了为渲染目的的计算复杂度。
[0023]图2示出了用于内容制作的示例性的层级图200。层级图是定向非循环图。层级图包括场景描述。场景描述可以是用于描述资产的数据格式或语言。场面描述数据直接地使用或者传递到另一过程,诸如渲染过程,以制作图像或图像系列。修改或“S (deltas)”用于描述对场景描述数据或其它修改的改动。因此,给定场景描述和5集合,能够生成各种新场景描述。
[0024]层级图被限定为动画制作过程的部分。层级图中的每个节点称为层级节点,并且包含场景描述数据、修改或两者。图的每个层级可以通过将来自进入边缘的内容与节点自身的内容合并来生成场景描述(例如,“层级”)。在边缘起始处的节点可称为母节点,并且在边缘末尾处的节点可称为子节点。
[0025]在图2的实施例中,基础节点202是三个子节点的母节点,每个子节点都包含用于基础场景描述数据的变化。三个子节点是变化节点204、变化节点206和变化节点208。基础节点202与场景描述数据相关联。变化节点204与标记为“模型I”的变化相关联。变化节点206与标记为“模型2”的变化相关联。变化节点208与标记为“模型3”的变化相关联。
[0026]在一个实施例中,系统接收请求以在变化节点204的层级“变化I”处生成场景描述。节点204的层级“变化I”是将“模型I”应用于基础节点202的场景描述数据的结果。假设基础节点202描述了想要在白天期间描绘为不具有短须的狮子角色资产,节点204的模型I可描述将基础节点202的狮子角色变换成具有短须且想要在夜间期间描绘的狮子角色所需的改变。
[0027]在动画制作过程中利用该技术,用户能够独立地工作与基础节点和变化。例如,一个用户可以负责通过改变角色资产的面部结构来更新与基础节点202相关联的场景描述数据,而不同的用户负责改变在变化节点204中描述的面毛变化的颜色或纹理。
[0028]活性(Liveness)描述了当在作为变化的基础节点的子节点的变化处计算层级时可以并入对基础节点做出的改变的构思。共享数据的活性是通过在任意时候重新计算层级的能力来实现的。当计算与变化相关联的层级时,对基础节点做出的变化并入到生成的描述数据中。为了有效地支持活性,内容制作工具和编辑工具可适于传递S形式的变化。
[0029]另外,驻留在子节点处的数据,诸如变化或描述数据,可通过图升级。例如,如果制作要求驻留在子节点处的变化用于所有拍摄,则用户可以将变化升级以使其并入到基础节点中。这样,包括基础节点的任意层级计算将(至少起初)包括升级后变化。
[0030]图3示出了用于内容制作的示例性的层级图300。如图3所示,层级节点可具有多个母节点,并且可包含场景描述数据和修改数据。在该实施例中,基础302包括场景描述数据。节点304、306和310包括修改数据。节点308包括修改数据和场景描述数据两者。
[0031]计算节点310 (模型)处的层级是按如下完成的。该过程开始于基础节点302的场景描述数据。对节点306或308中的哪一个首先处理做出决策。做出该决策的技术称为线性化,在下文进行详细说明。假设做出决策在节点308之前处理节点306,则节点306的修改数据应用于基础节点302的场景描述数据,生成第一中间描述数据。该中间描述数据可存储在存储器中。接着,节点308的修改数据和场景描述数据应用于第一中间描述数据以生成第二中间描述数据。当节点308的修改数据应用于第一中间描述数据时,其修改了在之前步骤附加的场景描述数据。当节点308的场景描述数据附加到第一中间结果时,其不影响现有的场景描述数据。相反,其添加了场景描述数据。接着,节点310的修改数据应用于第二修改数据。因此,对于层级图300中的节点310计算层级。
[0032]图4示出了示例性的过程400,其用于计算利用层级图渲染三维图像的层级。当系统检测到处理与目标节点相关联的层级的请求时,过程开始于块402。目标节点是正在计算层级的节点。在块404处,系统确定目标节点的层级祖先节点集合。这些是目标节点的母节点、祖母节点以及其它祖先。
[0033]在块406处,利用线性化技术将祖先节点排序成序列。下面描述了各种线性化技术。在块408处,基于层级祖先节点集合中的作为序列中第一个的节点来初始化场景描述。这生成了中间描述数据,该中间描述数据可存储在存储器中。
[0034]在块410中,过程继续,通过将层级祖先节点集合中的其余祖先节点按线性化技术确定的序列连续地应用于中间描述数据。层级祖先节点可包含场景描述数据、S或两者。在节点包括节点的情况下,将S应用于中间场景描述数据的操作会失败。在一个实施例中,当操作试图将δ应用于非存在数据时,应用δ的操作失败。在更具体的实施例中,当中间场景数据不包含角色面部时,增加面毛到角色面部的变化失败。因此,不能对面毛属性进行修改。如果应用δ的操作失败,则包含失败的δ的节点可略过,并且可以在不具有包含失败δ的节点的情况下计算整个层级计算。在一个实施例中,如果应用δ的操作失败,则层级计算会停止,并且可将失败通知用户。
[0035]在块412处,将目标节点应用于中间描述数据,得到最终层级场景描述。在块414处,利用最终层级场景描述来渲染图像。
[0036]在应用δ的次序应用最终层级场景描述的范围内,用于线性化的算法是重要的。δ不变的情况可特征化为冲突,因此,线性化用于确定应当如何解决冲突的修改。
[0037]第一线性化技术是从为编程语言Dylan开发的“C3母集合线性化”方法得到的。在分级数据共享技术的背景下,层级图扮演了类继承分层结构的角色。该算法要求用户或过程将表明进入边缘的先后次序的注释添加到层级图中。
[0038]第二线性化技术依赖于与每个层级节点相关联的整数标签注释。线性化按标签的降序列出祖先节点,当相等标签出现在同一线性化输入集合中时为失败条件。本领域普通技术人员将理解的是可以应用其它线性化技术。
[0039]图5示出了利用层级图来渲染三维图像的示例性过程。在块502处,访问层级图。层级图包括第一节点、第二节点和目标节点。第二节点和目标节点是第一节点的后继。第一节点包括第一场景描述数据,第二节点包括第一变化数据,目标节点包括第二变化数据。在一些实施例中,第一节点是基础节点,其是层级图的根节点。基础节点可与诸如人物、一群人、环境、效果或灯光用具的资产相关联。
[0040]在块504处,接收目标节点的选择以用于计算。例如,目标节点的选择可通过外部渲染过程或通过用户来进行。在块506处,确定目标节点的祖先。第一节点和第二节点目标节点的祖先。
[0041]在块508处,确定目标节点的祖先的线性化。线性化包括所述目标节点的祖先中的至少一些的排序。在一个实施例中,线性化可基于C3母集合线性化技术。在另一实施例中,第一节点包括第一标签,第二节点包括第二标签。在该实施例中,祖先的线性化包括:基于其相应的标签对第一节点和第二节点排序。在本技术的一种实施方式中,用户可通过适当地设定标签的值来手动地确定哪些节点应当在其它节点之前应用。在块510处,利用第一节点的第一场景描述数据来初始化场景描述。在一个实施例中,初始化基于线性化。
[0042]在块512处,第二节点的第一变化应用于场景描述。基于线性化而应用第一变化。在一些实施例中,第二节点还包括第二场景描述数据。在该情况下,第二场景描述数据也应用于场景描述。这生存了更新场景描述。在块514处,目标节点的第二变化应用于更新场景描述。这生成了最终场景描述。最终场景描述可以是描述资产的数据。在块516处,基于最终场景描述来渲染图像。
[0043]图6示出了能够用于实现上述分级数据共享技术的示例性的动画系统600。分级数据共享技术能够以例如硬件或存储在非暂态性计算机可读存储媒体上的软件来实现。
[0044]动画系统600能够配置为从输入设备620接收用户输入。输入设备620可以是接收来自用户的输入并且将其传输到动画系统600的任何设备。例如,输入设备620可以是键盘、鼠标、平板式电脑、触针等。本领域技术人员将理解到还可以使用其它类型的输入设备。
[0045]动画系统600能够配置为将图形、图像或动画输出到输出设备630。输出设备630能够包括任何从动画系统接收数据且将数据呈现给用户的设备。例如,输出设备630可包括液晶显示器、一组发光二极管、投影仪等。本领域技术人员将理解的是还可使用其它类型的输出设备。
[0046]动画系统600可进一步包括中央处理单元602。中央处理单元可以包括一个或多个处理核。中央处理单元602可与输入设备620耦合并且能够与输入设备620通信。虽然动画系统600图示出具有一个中央处理单元602,但是动画系统600可以包括多个处理单元。动画系统600还可包括图形处理单元604。图形处理单元604可专用于处理图形相关数据。图形处理单元604可包括单个处理核或多个处理核。虽然图示出动画系统600具有一个图形处理单元604,但是动画系统600可以包括多个图形处理单元。中央处理单元602和/或图形处理单元604可与输出设备630耦合并且能够将数据传达给输出设备630。
[0047]在一个实施例中,动画系统600可包括一个或多个处理器以及存储在诸如内存或存储设备的非暂态性计算机可读存储媒体中的指令,当通过一个或多个处理器执行时,指令利用上述分级数据共享技术来执行动画渲染,如上所述。在本文描述的实施方案的背景下,“非暂态性计算机可读存储媒体”可以是能够收容或存储由指令执行系统、装置或设备使用或者与指令执行系统、装置或设备关联的程序的任何媒体。非暂态性计算机可读存储媒体可包括但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备、便携式计算机磁盘(磁)、随机存取存储器(RAM)(磁)、只读存储器(ROM)(磁)、可擦除可编程只读存储器(EPROM)(磁)、诸如CD、CD-R、CD-RW、DVD、DVD-R或DVD-RW的便携式光盘、或者诸如压缩闪存卡、安全数字卡、USB存储设备、存储棒等快擦写存储器。
[0048]动画系统600可以包括易失性存储器606,其是非暂态性计算机可读存储媒体,与中央处理单元602通信。易失性存储器606可包括例如随机存取存储器,诸如动态随机存取存储器或静态随机存取存储器,或者任何其它类型的易失性存储器。易失性存储器606可用于在动画系统600操作过程中存储数据或指令。本领域技术人员将理解的是还能够使用其它类型的易失性存储器。
[0049]动画系统600还可以包括非易失性存储器608,其是非暂态性计算机可读存储媒体,与中央处理单元602通信。非易失性存储器608可以包括快擦写存储器、硬盘、磁存储设备、只读存储器等。非易失性存储器608可用于存储动画数据、分级数据、计算机指令或任何其它信息。本领域技术人员将理解到还可以使用其它类型的非易失性存储器。
[0050]动画系统600不限于上文所描述的设备、配置和功能。例如,虽然示出了单个的易失性存储器606、非易失性存储器608、中央处理单元602、图形处理单元604、输入设备620和输出设备630,可在动画系统600的内部或外部实现这些设备中任意多个设备。另外,动画系统600可包括用于访问诸如内网或因特网的网络上的信息的网络访问设备。本领域技术人员将理解的是能够使用动画系统600的其它配置。
[0051 ] 本文描述了各个示例性实施方案。在非限制意义上参考了这些实施例。提供这些是为了更宽泛地说明所公开技术的可应用方面。可以进行各种改变并且可替代等同方案,而不偏离各个实施方案的真正主旨和范围。另外,可进行多方面修改以将特定的情形、材料、物理组成、过程、过程动作或步骤适应各个实施方案的目标、精神或范围。此外,本领域技术人员将理解的是,本文所描述和图示的每一个单个的变型例具有可易于与其它多个实施方案中的任一个的特征分离或组合的离散部件和特征,而不偏离各实施方案的范围或精神。
【权利要求】
1.计算机实现方法,利用层级图来渲染三维图像,所述方法包括: 访问所述层级图,所述层级图包括第一节点、第二节点和目标节点,其中所述第二节点和目标节点是第一节点的后继,并且其中,所述第一节点包括第一场景描述数据,所述第二节点包括第一变化数据,并且所述目标节点包括第二变化数据; 接收所述目标节点的选择以用于计算; 确定所述目标节点的祖先,其中所述目标节点的所述祖先包括所述第一节点和所述第二节点; 确定所述目标节点的所述祖先的线性化,所述线性化包括所述目标节点的所述祖先的阶; 利用所述第一节点的所述第一场景描述数据来初始化场景描述; 基于所述线性化将所述第二节点的所述第一变化应用于所述场景描述,以产生更新场景描述; 将所述目标节点的所述第二变化应用于所述更新场景描述以产生最终场景描述;以及 基于所述最终场景描述来渲染图像。
2.如权利要求1所述的计算机实现方法,其中所述第一节点是作为根节点的基础节点。
3.如权利要求1所述的计算机实现方法,其中利用所述第一节点的所述场景描述数据初始化所述场景描述是基于所述线性化。
4.如权利要求1所述的计算机实现方法,其中所述第二节点还包括第二场景描述数据,并且其中所述第二场景描述数据应用于所述场景描述以产生所述更新场景描述。
5.如权利要求1所述的计算机实现方法,其中确定所述目标节点的所述祖先的所述线性化包括:基于C3母集合线性化算法来确定所述目标节点的所述祖先的所述线性化。
6.如权利要求1所述的计算机实现方法,其中: 所述第一节点包括第一标签,并且所述第二节点包括第二标签;以及确定所述目标节点的所述祖先的所述线性化包括:基于所述标签和所述第二标签对所述第一节点和所述第二节点进行排序。
7.非暂态性计算机可读存储媒体,其包括利用层级图来渲染三维图像的计算机可执行指令,所述计算机可执行指令包括如下指令: 访问所述层级图,所述层级图包括第一节点、第二节点和目标节点,其中所述第二节点和目标节点是第一节点的后继,并且其中,所述第一节点包括第一场景描述数据,所述第二节点包括第一变化数据,并且所述目标节点包括第二变化数据; 接收所述目标节点的选择以用于计算; 确定所述目标节点的祖先,其中所述目标节点的所述祖先包括所述第一节点和所述第二节点; 确定所述目标节点的所述祖先的线性化,所述线性化包括所述目标节点的所述祖先的阶; 利用所述第一节点的所述第一场景描述数据来初始化场景描述; 基于所述线性化将所述第二节点的所述第一变化应用于所述场景描述,以产生更新场景描述;将所述目标节点的所述第二变化应用于所述更新场景描述以产生最终场景描述;以及 基于所述最终场景描述来渲染图像。
8.如权利要求7所述的非暂态性计算机可读存储媒体,其中所述第一节点是作为根节点的基础节点。
9.如权利要求7所述的非暂态性计算机可读存储媒体,其中利用所述第一节点的所述场景描述数据初始化所述场景描述是基于所述线性化。
10.如权利要求7所述的非暂态性计算机可读存储媒体,其中所述第二节点还包括第二场景描述数据,并且其中所述第二场景描述数据应用于所述场景描述以产生所述更新场景描述。
11.如权利要求7所述的非暂态性计算机可读存储媒体,其中确定所述目标节点的所述祖先的所述线性化包括:基于C3母集合线性化算法来确定所述目标节点的所述祖先的所述线性化。
12.如权利要求7所述的非暂态性计算机可读存储媒体,其中: 所述第一节点包括第一标签,并且所述第二节点包括第二标签;以及 确定所述目标节点的所述祖先的所述线性化包括:基于所述标签和所述第二标签对所述第一节点和所述第二节点进行排序。
13.利用层级图来渲染三维图像的装置,所述装置包括: 存储器,其配置为存储所述层级图;以及 一个或多个计算机处理器,其配置为: 访问所述层级图,所述层级图包括第一节点、第二节点和目标节点,其中所述第二节点和目标节点是第一节点的后继,并且其中,所述第一节点包括第一场景描述数据,所述第二节点包括第一变化数据,并且所述目标节点包括第二变化数据; 接收所述目标节点的选择以用于计算; 确定所述目标节点的祖先,其中所述目标节点的所述祖先包括所述第一节点和所述第二节点; 确定所述目标节点的所述祖先的线性化,所述线性化包括所述目标节点的所述祖先的阶; 利用所述第一节点的所述第一场景描述数据来初始化场景描述; 基于所述线性化将所述第二节点的所述第一变化应用于所述场景描述,以产生更新场景描述; 将所述目标节点的所述第二变化应用于所述更新场景描述以产生最终场景描述;以及 基于所述最终场景描述来渲染图像。
14.如权利要求13所述的装置,其中所述第一节点是作为根节点的基础节点。
15.如权利要求13所述的装置,其中利用所述第一节点的所述场景描述数据初始化所述场景描述是基于所述线性化。
16.如权利要求13所述的装置,其中所述第二节点还包括第二场景描述数据,并且其中所述第二场景描述数据应用于所述场景描述以产生所述更新场景描述。
17.如权利要求13所述的装置,其中确定所述目标节点的所述祖先的所述线性化包括:基于C3母集合线性化算法来确定所述目标节点的所述祖先的所述线性化。
18.如权利要求13所述的装置,其中: 所述第一节点包括第一标签,并且所述第二节点包括第二标签;以及确定所述目标节点的所述祖先的所述线性化包括:基于所述标签和所述第二标签对所述第一节点和所述 第二节点进行排序。
【文档编号】G06T13/40GK104050698SQ201410097094
【公开日】2014年9月17日 申请日期:2014年3月17日 优先权日:2013年3月15日
【发明者】P·麦克纳尼, E·P·史密斯, R·G·威尔逊, G·赫夫林, J·比尔, J·吉布斯, M·哈姆勒, B·盖农 申请人:梦工厂动画公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1