表征计算机动画毛发的压缩数据的制作方法

文档序号:8435894阅读:336来源:国知局
表征计算机动画毛发的压缩数据的制作方法
【技术领域】
[0001]本申请总体上涉及数字数据压缩,更具体地,涉及用于表示计算机动画毛发压缩数据计算机系统和方法。
【背景技术】
[0002]计算机生成图像(CGI)的改进使得电脑制作的动画电影刻画非常精细、给动画角色显著的真实感。服装、发型、表情、场景背景等变得越来越复杂,使得动画电影具有震撼视觉效果。增加的复杂性和显著的细节水平,会在管理大量数字数据上成为成本。虽然近年来存储数字数据的成本有所下降,动画电影的每一帧额外的复杂性和细节可能会导致长期存储全部毛发几何数据的大量数据不能维持,使得电影制片厂只存储生成毛发几何形状或数字捕获电影序列所需要的初始数据。因为处理毛发几何数据的大小会让存储变得不切实际,在电影的制造过程中,为动画角色或场景工作的艺术家、动画家、装配员等可以经常需要重新处理或重新渲染角色或场景。在许多情况下,重新处理场景数据所花费的艺术家时间和计算时间造成的损失可以是非常昂贵的。
[0003]让动画电影增强真实感,非常详细的毛发、毛皮、草等各种动画场景中的元素可以对观众有特别显著的影响。然而,这些细节的处理版本会占据如此大量的数据存储,该数据用在活化帧、捕获电影序列或其他后被丢弃。例如,表征完整发型的已处理的数据可包括在CGI场景中所有毛发的几何位置和属性(例如,半径、颜色等),而一旦场景被捕获或以其他方式使用,这样大量的数据将被丢弃。电影制片厂也因此,需要每次都重新生成所需的可视毛发效果并在许多情况下选择不处理毛发的工作。但是,存储处理毛发数据,使之按艺术家要求制作可以显著减少或消除再生时间、浪费的艺术家的时间、浪费的计算资源。
[0004]因此,用于压缩动画毛发数据的系统和方法是需要的。
[0005]发明概述
[0006]描述了用于压缩表征计算机生成影像场景(CGI)中动画毛发数据的系统和方法。接收表征动画毛发的数据,其中数据包括毛发数据参数的多个阵列。使用主成分分析法(PrincipalComponentAnalysis,简称PCA),为毛发数据参数的多个阵列确定一组新的基向量;其中新的基向量的数目对应于阵列中毛发数据参数的数目。根据新的基向量的相对长度,确定对应于所述一组新的基向量的维度的位分配,其中最大长度的新的基向量比长度较短的新的基向量被分配更多的位。根据位分配,在对应于所述一组新的基向量的维度上,数字化毛发数据。位打包数字化毛发数据。压缩位打包、数字化毛发数据,其中,所述压缩是无损的。存储压缩的毛发数据。
[0007]在压缩毛发数据时,通过所有的毛发数据点数目除以2~N,确定用以分配数字化区段的毛发数据点的数目。其中N用于分配维度的位数。在非均匀宽度的维度内,形成数字化区段,其中,数字化区段捕获已确定的毛发数据点的数目。
[0008]还描述了用于解压并重建表征计算机生成影像场景中动画毛发数据的系统和方法。接收一组对应于在毛发数据参数的未压缩阵列上执行主成分分析(PCA)的一组基向量。接收表征动画毛发、压缩后的数据。执行压缩毛发数据的无损解压。其中,解压后的毛发数据包括对应于一组基向量的、由原始基向量到新的基向量转换的毛发数据参数的多个阵列。在对应于原始基向量的维度上,将毛发数据参数的转换后阵列映入毛发数据参数的新的多个阵列,以重建解压后的毛发数据。
[0009]在解压和重建毛发数据时,将解压后的毛发数据的参照数字化值映射到相应的实际数据值。接收已存储毛发数据参数。使用已存储毛发数据参数,在毛发数据参数的新的多个阵列中填充一个空值参数,其中空值参数对应于所述新的基向量的一个没有数字化的域。
【附图说明】
[0010]本申请可通过参考附图和下文的描述而最佳地被理解,其中相同部分可由相同数字来指代。
[0011]图1示例性地描绘了计算机生成动画角色。
[0012]图2示例性地描绘了用于压缩表征动画毛发数据的示例性过程。
[0013]图3A示例性地描绘了二维空间的动画毛发。
[0014]图3B示例性地描绘了插入控制点到毛发曲线。
[0015]图4A示例性地描绘了毛发数据点群集的主要成分分析。
[0016]图4B描绘了具有显著方差的毛发数据的典型簇查找。
[0017]图5描绘了示例的基向量的长度变化。
[0018]图6A描绘了在两个不同维度的数据的示例性数字化。
[0019]图6B描绘了示例性非线性数字化数据。
[0020]图7描绘了用于解压缩压缩的动画毛发数据的示例性流程。
[0021]图8描绘了未被压缩的动画毛发的示例。
[0022]图9描绘了动画毛发被以5:1的比例压缩和解压缩的示例。
[0023]图10描绘了动画毛发被以20:1的比例压缩和解压缩的示例。。
[0024]图11描绘了典型的计算系统。
[0025]发明详述
[0026]提供了下面说明书以使本领域普通技术人员能够实现并利用各种实施方案。具体设备、技术以及应用的描述仅以实例的方式被提供。本文所描述的实施实例的各种改进对于本领域具有普通技术人员而言将是显而易见,在没有偏离本技术的精神与范围的情况下,本文所阐释的一般性的原理可以应用到其他实例与应用。因此,所公开的技术不旨在局限于下面描述与呈现的实例,而是与权利要求相一致的范围符合。
[0027]用于压缩表征计算机动画毛发、毛皮、草、叶子和其他的数字数据的系统和方法的各种实施例将在下面进行描述。计算机动画毛发可以包括在一个场景中的静止的计算机生成毛发,毛发被活化以显示一帧跟着一帧的移动,或动画电影的通过计算机生成的任何其他毛发。一种示例性的压缩方法可以包括:接收在一个CGI环境里表征处理毛发的数据。处理毛发数据可包括描述毛发位置、毛发的几何形状、毛发颜色、毛发半径、和其他信息。PCA可在一个场景中所有毛发或为特定角色在一个场景的许多或所有单独毛发的毛发数据上执行。PCA会产生新基向量,长短不一,对应具有最大方差的最大基向量(S卩,各个点都最散开处),逐步降低到对应具有最小方差的最小基向量(即,各个点都最紧密地聚合处)。在一些实施例中,毛发数据的原始阵列可以被转化成由新基向量定义的新维度。
[0028]用新的基础定义和识别具有最大方差的维度,数据的数字化可以执行对数据进行压缩。数据保真度(或相反的数字化误差或丢失数据的量)可以通过分配给代表每组毛发数据的参数(每个阵列)的位数来确定。更多位可允许更好的保真度和更少的数据丢失,但较少的位可能会导致更小的压缩数据。分配给每个基向量的位数可以对应于基向量的相对维度。例如,最大的基向量的维数可被分配最大的位数,从而提供各个毛发数据点之间最多数据变化的维度的最多的细节。与此相反,具有最小基向量的维度(即,具有最少变化的毛发数据群的维度)可以被分配最少位,或可以不获分配任何位,因为在该维度各个毛发数据点之间可以没有差别或差别最少。
[0029]在各个维度数字化数据之后,标准的无损熵压缩技术可被用于压缩数字化数据,而无需进一步的损失。有利的是,如本文所描述的压缩毛发数据可需要利用场景中的各个毛发之间的相似性来压缩数据,同时仍保留各个毛发之间的重要区别。尽管这样的压缩可以具有显著数字化误差,被压缩的数据仍然可以证明是对动画制作者、艺术家和其他是有用的,以减少几何生成的浪费、处理时间的浪费和计算机资源的浪费。此外,本文所讨论的压缩技术可以修改,以允许用户自定义压缩的影响,并且在此所讨论的各种技术也可应用于其它类型的数据。例如,虽然本文以毛发数据为例进行讨论、说明技术,该技术也可用于压缩各种其他类型的动画数据,如草的叶片,树上的叶片、毛皮、鳞肩、衣物、装饰物或其他。因此,本文所讨论的各种实施例和例子应该被认为是说明性的,本领域的普通技术人员很容易识别许多其它应用。
[0030]图1示例性地描绘了计算机生成动画角色。值得注意的是,动画角色以大量的毛发细节进行说明。对应于角色的毛发的细节数据可以是相当大的。例如,该数据可以包括角色发型的每一个毛发的所有几何位置和属性(例如,半径、颜色等)。由于该数据太大,电影制片厂不喜欢存储复杂的毛发数据。不过,本文所讨论的各种压缩系统和方法可使存储处理毛发数据更经济,这可消除浪费再生时间、计算资源和艺术家的时间,同时为艺术家提供增强的灵活性,艺术家可随时查看全分辨率的毛发,而无需重新处理毛发数据。
[0031]图2描绘了用于压缩表征动画毛发数据的示例性流程200。在框202,接收表征动画毛发数据。在一个实施例中,表征动画毛发数据可包括控制顶点(或控制点)沿着非均一的理性基础曲线(non-uniformrat1nal basissplines,简称 NURBS)。例如,图 3A 在一个简化的二维(X,Y)空间示例性地示出动画毛发H1、H2和H3。各个毛发的位置和曲率可以由控制点314至少部分地定义。在这个例子中,每根毛发有5个控制点314,每个控制点可以在(X,Y)的空间有关联的坐标位置。在所示的简化的二维空间中,每根毛发可因此具有至少10个参数或属性,用于定义毛发的位置和曲率(X坐标和Y坐标各有5个控制点)。在一些实施例中,在空间的中心位置坐标可以限定毛发开始的位置,并控制点参考该位置坐标来定义。
[0032]在其它实施例中,毛发可以在三维(3D)CGI空间中来定义,并且每个控制点的位置可通过至少三个坐标(x,Y,z)来限定。此外,可以使用任何数量的控制点来定义的毛发的位置和曲率。例如,两个控制点可足以确定一个毛发所需的曲率,而10个或更多控制点可以随意定义另外更复杂毛发的曲率(例如,卷曲的、长的、波浪形、弯曲的等)。因此,不同的发型、毛发长度等等,可以需要不同数量的控制点。除了控制点,可以使用诸如毛发半径(即,毛发厚度)等参数进一步定义毛发几何形状。
[0033]除了几何形状和控制点,许多额外的参数也可用于描述动画毛发。例如,每根毛发可具有定义了毛发颜色的参数或属性。在一个实施例中,动画毛发可以仅包括一种颜色。在其它实施例中,动画毛发可以包括在不同位置的不同颜色(例如,角色毛皮处或毛发端部的较暗或较浅的阴影)。颜色可以以各种不同的方式来定义。例如,毛发的颜色可以由三个参数,即红色值、绿色值和蓝色值(即RGB)来表示。在其它实施例中,毛发的颜色可以由对应于特定颜色的特定色调的颜色索引和颜色数来表示。在其它实施例中,单独的参数可被用来定义阴影、色彩、色调,或毛发颜色的其它属性。毛发参数还可以包括毛发曲线的参考位置(例如,X,Y,Z)、曲线切线、或自然空间以及发根位置所在的表面点的正常坐标和UV坐标。同样,不用NURBS曲面,毛发可以利用Bezier曲线、线性聚-线或其他来定义。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1