CN108074284A - 使用多个输入网格生成有效的风格化的网格形变 - Google Patents
使用多个输入网格生成有效的风格化的网格形变 Download PDFInfo
- Publication number
- CN108074284A CN108074284A CN201710819189.0A CN201710819189A CN108074284A CN 108074284 A CN108074284 A CN 108074284A CN 201710819189 A CN201710819189 A CN 201710819189A CN 108074284 A CN108074284 A CN 108074284A
- Authority
- CN
- China
- Prior art keywords
- grid
- deformation
- input
- changed
- measurement
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开的各实施例涉及使用多个输入网格生成有效的风格化的网格形变。具体地,包括用于基于用户输入来操纵数字模型的方法和***。特别地,所公开的***和方法可以基于多个输入网格和一个或多个控制点的用户操纵来实时地生成已修改网格。例如,所公开的***和方法的一个或多个实施例基于组合的形状空间形变插值度量从多个输入网格生成已修改网格。此外,在一个或多个实施例中,所公开的***和方法利用尽可能刚性形变度量来将输入网格组合成已修改网格。此外,所公开的***和方法可以变化地组合已修改网格的不同部分上的输入形状,从而提供增强的表达力,同时减少伪像并且提高计算效率。
Description
相关申请的交叉引用
本申请要求于2016年11月10日提交的名称为“Generating Efficient,StylizedMesh Deformations Using A Plurality Of Input Meshes”的美国临时专利申请No.62/420,163的优先权,其全部内容通过引用并入本文。
背景技术
近年来数字形状形变技术已经得到了迅速的发展。实际上,由于算法和硬件的进步,传统的数字形变***现在能够基于各种用户输入来操纵数字形状(即,数字网格)。因此,例如,传统的数字形变***可以接收与数字网格的部分相关的用户输入,并且自动修改(例如,拉伸、混合或旋转)数字网格的其余部分。
虽然近年来传统的形状形变***已经取得进展,但是它们仍然具有很多显著的缺陷。例如,数字形变***的一个分支利用尽可能刚性的方法。这样的形变***通过使与完美刚性的局部偏离的总和最小化来确定输入网格的形变。
虽然传统的尽可能刚性形变***具有很多益处(它们的制定相对简单并且计算相对有效),但是它们也具有很多缺点。例如,鉴于传统的尽可能刚性的***强调输入网格上的刚性,这样的***倾向于生成看起来僵硬和不屈服的形变。例如,从尽可能刚性的***的形变通常看起来好像形状从刚性橡胶片发生形变。虽然这样的方法在某些应用中可能是期望的,但是用户经常寻求输入形状的更多流体形变。
类似地,传统的尽可能刚性形变***历来是针对单个输入形状来制定的,这限制了在生成已修改形状时的艺术控制。例如,虽然很多传统的尽可能刚性形变***可以通过混合或拉伸输入形状来使输入形状发生形变,但是这样的***通常使得用户无法通过组合多个示例输入形状来修改更复杂逼真的动画中的形状。
其他传统形变***通过利用基于示例的形变方法来提供附加的艺术控制。在这样的***中,用户提供多个输入形状,并且基于示例的形变***组合输入形状以生成已修改形状。这种方法使得形状能够基于多个输入形状来更现实地发生形变。然而,这样的***还引入了很多附加问题,这取决于具体方法。
例如,很多基于示例的形变方法不是非常适合逆运动学应用(即,其中用户在网格的局部部分上提供位置约束并且***从用户规定的约束而不是物理模拟来计算已形变形状的应用)。例如,一些基于示例的形变***难以响应于用户输入来在多个输入形状之间转变。实际上,逆运动学应用中的一些基于示例的形变***从一个输入形状跳跃或跳过到另一输入形状,而不是在输入形状之间平滑地发生形变。
类似地,一些传统的基于示例的***生成由于局部最小值而导致的次优解,这导致在修改网格时的伪像和不连续跳跃。此外,一些***在生成已形变形状时简单地忽略一些输入形状。因此,这样的传统***可能导致与用户期待相反的改变和修改,而不是基于示例输入以用户预期的方式转变形状。
另外,虽然传统的基于示例的形变***可以全局地组合输入网格,但是这样的全局组合通常在所得到的形状中导致伪像。实际上,由于传统的基于示例的形变***不能在已形变形状的不同部分上可变地组合输入网格,所以可能导致所得到的已修改网格的一个部分中的正常形变的组合可能在已修改网格的另一部分中引起奇怪的伪像。一些***寻求通过要求大量的输入网格并且然后利用大量的输入网格来生成各种不同的表现形变来克服这个限制;然而,该方法给用户生成大量的输入网格以获得期望的形变结果造成过大的负担。
此外,一些传统的形变***在动态应用中(即,在物理模拟的上下文中)生成已修改网格。然而,这样的动态***通常需要各种输入参数(例如,用于对物理模拟的物理特性进行建模)、物理动力学等式、和约束。此外,这样的***通常不太适合于容纳不反映物理材料的形变的网格。因此,这样的***通常无法在没有输入参数和/或输入形状被高度风格化(例如,卡通,而不是模拟的物理形变)的情况下生成的已修改网格。
此外,虽然很多数字形变***可以生成形变形状,但是它们的操作需要大量的计算机处理时间、功率和存储器。因此,很多传统的数字形变***不能够在运行足够快以便在实时应用(例如,实时动画)中使用的同时基于各种不同输入形状来提供已形变形状。
在生成风格化的数字形状形变方面存在这些和其他问题。
发明内容
本公开的一个或多个实施例提供了利用和/或解决本领域中的一个或多个前述或其他问题的***和方法,上述***和方法能够基于数字模型(即输入网格)的样本配置响应于用户输入来快速且有效地操纵数字模型。特别地,在一个或多个实施例中,所公开的***和方法基于多个输入网格来实时地生成已修改网格,同时避免了与传统***相关联的伪像。具体地,响应于指示数字模型的控制点的移动的输入,所公开的***和方法分析反映数字模型的不同配置的输入网格并且生成已修改网格。所公开的***和方法可以这样做,同时以直观的方式可靠地包括输入形状,在已修改网格之间平滑地转变,以及避免了由在操纵数字模型时的局部最小值导致的伪像。因此,例如,所公开的***和方法生成实时数字动画,其包括用于很多各种不同的输入网格(包括高度风格化的形状)的多个高质量的形变。
在一个或多个实施例中,所公开的***和方法通过利用基于示例的弹性能量的新的度量来生成已修改网格。特别地,所公开的***和方法利用组合的形状空间形变插值度量来操纵数字模型。通过利用这种组合的形状空间形变插值度量,所公开的***和方法可以解决由传统***引入的伪像。
此外,在一个或多个实施例中,所公开的***和方法利用尽可能刚性形变度量来组合多个输入网格并且生成已修改网格。例如,所公开的***和方法可以在减小的线性子空间内利用尽可能刚性形变度量(即,通过利用线性混合蒙皮(skinning))。以这种方式,所公开的***和方法可以获得各种益处,包括计算效率,同时还提供了对于组合多个输入形状以提供更逼真的视觉上愉悦的操纵(例如,动画)的附加的艺术控制。
此外,所公开的***和方法还可以支持如何组合不同的示例形状的空间局部变化。实际上,所公开的***和方法可以生成跨越数字网格不同部分来利用不同输入形状的不同组合的数字网格。这实现了局部优化的形变,其避免了由输入网格的全局组合导致的伪像。此外,可变地组合不同的输入形状使得用户能够从相对有限数目的输入网格生成各种表现形变。
本公开的一个或多个实施例的附加特征和优点将在下面的描述中阐述,并且部分地将从描述中容易理解,或者可以通过实践这样的示例实施例来了解。
附图说明
参考附图来描述详细描述,在附图中:
图1A至图1C示出了根据一个或多个实施例的基于多个输入网格经由计算设备来操纵数字模型的表示;
图2A示出了根据一个或多个实施例的基于与控制点的用户交互来操纵数字模型的表示;
图2B示出了根据一个或多个实施例的基于应用于多个输入网格的组合的形状空间形变插值度量来生成已修改网格的表示;
图3示出了根据一个或多个实施例的基于尽可能刚性形变度量来生成已修改网格的表示;
图4示出了根据一个或多个实施例的优化尽可能刚性形变度量以生成已修改网格的表示;
图5示出了根据一个或多个实施例的应用风格化的网格形变***以生成已修改网格的结果的表示;
图6A和图6B示出了基于风格化的网格形变***的一个或多个实施例以及基于一个或多个传统***来操纵数字模型的比较;
图7A和图7B示出了基于风格化的网格形变***的一个或多个实施例以及基于一个或多个传统的基于示例的形变***来操纵数字模型的另一比较;
图8示出了基于具有输入网格的空间变化的混合的风格化的网格形变***的一个或多个实施例以及基于没有输入网格的空间变化的混合的风格化的网格形变***的一个或多个实施例来操纵数字模型的比较;
图9示出了根据一个或多个实施例的风格化的网格形变***的示意图;
图10示出了示出根据一个或多个实施例可以实现风格化的网格形变***的示例性环境的示意图;
图11示出了根据一个或多个实施例的利用多个输入网格来操纵数字模型的方法中的一系列动作的流程图;
图12示出了根据一个或多个实施例的利用多个输入网格来操纵数字模型的方法中的一系列动作的另一流程图;以及
图13示出了根据一个或多个实施例的示例性计算设备的框图。
具体实施方式
本公开的一个或多个实施例包括基于多个输入来操纵数字模型的风格化的网格形变***。特别地,风格化的网格形变***接收反映数字模型的不同配置的多个输入网格,并且然后响应于操纵数字模型的输入来生成组合多个输入网格的已修改网格。因此,例如,风格化的网格形变***生成反映输入网格的不同配置的组合的已修改网格。因此,风格化的网格形变***为容易地创作和操纵虚拟形状或字符提供了一种方法。
例如,在一个或多个实施例中,风格化的网格形变***接收用于操纵由顶点网格定义的数字模型的输入。特别地,输入可以包括数字模型的控制点到新的位置的移动的指示。此外,风格化的网格形变***标识数字模型的多个输入网格,其中每个输入网格包括按照不同配置的顶点网格。风格化的网格形变***针对多个输入网格确定与控制点到新的位置的移动相关联的组合的形状空间形变插值度量。例如,在一个或多个实施例中,风格化的网格形变***基于以下各项来生成组合形状空间形变插值度量:(1)满足输入约束的每个输入网格的形变量(即,“输入网格形变插值度量”),以及(2)满足输入约束的在由输入网格限定的形状空间中生成的混合网格的形变量(即,“形状空间形变度量”)。风格化的网格形变***通过在新的位置的控制点在多个网格上优化组合的形状空间形变插值度量来生成已修改网格。
风格化的网格形变***提供了优于现有的数字形变***的很多优点。作为初始事项,在一个或多个实施例中,风格化的网格形变***可靠地反映输入网格。特别地,风格化的网格形变***在以直观和可预测的方式生成已形变形状时使用输入网格,即使对于高度风格化的输入。因此,风格化的网格形变***可以避免在生成已形变形状时省略或跳过某些输入网格。
此外,风格化的网格形变***避免了产生与传统的***相关联的各种其他伪像。例如,风格化的网格形变***生成平滑地在形状之间转变的已修改网格,同时避免了零星的倾斜、形状之间的突然跳跃、或者由局部最小值导致的不期望的伪像。
此外,风格化的网格形变***为用户提供了用于创造性表达的附加途径。实际上,风格化的网格形变***可以从相对较小的输入网格集合来生成很多各种不同的视觉上合理的形变。例如,风格化的网格形变***不仅可以可靠地组合各种输入网格以生成已修改网格,风格化的网格形变***还可以以一种跨越所得到的已修改网格中在空间上平滑地变化的方式来组合输入网格。因此,风格化的网格形变***可以跨越已形变形状利用输入网格的不同组合,这实现了各种附加的真实的配置。
另外,风格化的网格形变***可以关于各种各样的输入形状(即,输入网格)生成各种已修改网格。例如,除了现实的对象、人物、动物或物体的已修改网格之外,风格化的网格形变***还可以生成风格化的卡通漫画的已修改网格。值得注意的是,风格化的网格形变***可以在没有用于建模物理模拟的参数的情况下生成已修改形状。相反,风格化的网格形变***可以利用反映数字模型的示例配置的输入网格并且生成数字模型的已修改网格。
此外,风格化的网格形变***足够快以实时地产生高质量的形变。因此,风格化的网格形变***改善了用于操纵数字模型的计算设备的功能。例如,用户可以选择和拖动数字模型的控制点,并且作为响应,风格化的网格形变***可以生成包括随着用户将控制点的位置改变为新的位置而变化的多个已修改网格的动画。因此,风格化的网格形变***可以实时地提供已修改网格用于显示,这为通过简单的输入使一组草图变得有生机提供了一种简单的方法。
总之,风格化的网格形变***提供了一种用于基于实时运动示例的网格形变的技术,其在很多各种不同的情况下实现了高质量和直观的结果(没有参数调谐),包括高度非物理的风格化的输入。
如上所述,在一个或多个实施例中,风格化的网格形变***通过利用组合的形状空间形变插值度量生成已修改网格来获得这些优点。特别地,在一个或多个实施例中,风格化的网格形变***利用组合的形状空间形变插值度量来确定如何(即,在多大程度上)组合输入网格以生成已修改网格。例如,在一个或多个实施例中,风格化的网格形变***基于以下各项来生成组合的形状空间形变插值度量:(1)满足输入约束的每个输入网格的形变量(即,“输入网格形变插值度量”),以及(2)满足输入约束的在由输入网格限定的形状空间中生成的混合网格的形变量(即,“形状空间形变度量”)。然后,风格化的网格形变***可以优化组合的形状空间形变插值度量,以确定用于组合不同的输入网格以生成已修改网格的权重。利用组合的形状空间形变插值度量,风格化的网格形变***可以响应于不断变化的用户输入来平滑地组合输入网格,从而避免了上述传统***普遍存在的伪像。
此外,在一个或多个实施例中,风格化的网格形变***利用尽可能刚性形变度量来组合多个输入网格。尽可能刚性形变度量反映局部非刚性程度(例如,用于生成已修改网格的局部平移和/或旋转量)。利用尽可能刚性形变度量来组合多个输入网格,风格化的网格形变***可以在处理要求方面获得效率,同时还获得对刚性变换的不变性、以及尺度和剪切失真的最小化。此外,风格化的网格形变***还可以提供附加的艺术控制。例如,风格化的网格形变***组合多个输入形状,以提供更加看起来不呆板和僵硬的逼真的操作。
实际上,在一个或多个实施例中,所公开的***和方法利用反映组合的形状空间形变插值度量(被称为ARAP组合的形状空间形变插值度量)的尽可能刚性形变度量。具体地,所公开的***和方法可以利用尽可能刚性形变度量,其反映满足输入约束条件的来自每个输入网格的尽可能刚性形变量以及满足输入约束的从输入到网格的来自混合形状的尽可能刚性形变量。在一个或多个实施例中,所公开的***和方法利用该方法来获得计算效率,以便实时地生成高质量的形变,即使对于高分辨率网格。
此外,风格化的网格形变***还可以平滑地改变在所得到的网格上使用每个输入形状的程度。例如,如下所述,风格化的网格形变***可以利用ARAP组合的形状空间形变插值度量来在已修改网格的不同部分上生成不同输入形状的不同组合。通过提供输入网格的这样的空间上的局部组合,风格化的网格形变***生成更逼真的动画并且避免了由于利用输入形状的全局组合而生成的伪像。
现在转到图1A至图1C,将提供关于根据一个或多个实施例的基于多个输入网格来生成已修改网格的附加细节。具体地,图1A示出了多个输入网格102a-102e。如图所示,每个输入网格102a-102e包括相同数字模型(即,蛇的模型)的不同配置。特别地,输入网格102a-102e包括包括顶点网格的数字模型的不同配置。因此,每个输入网格包括以不同配置(即,位置)布置的一组公共顶点。
如本文中使用的,术语“数字模型”是指对象的数字表示。例如,数字模型可以包括由网格(例如,多边形网格)定义的对象的表示。具体地,数字模型可以包括由边缘连接的顶点的多边形网格定义的表示。类似地,如本文中使用的,术语“网格”是指用于表示数字对象的一组顶点。特别地,术语“网格”包括由定义用于表示数字对象的多边形的一组边缘连接的一组顶点。例如,术语“网格”可以包括一组顶点和一组边缘,其定义共同表示数字对象的三角形。网格可以表示二维对象或三维对象。例如,关于图1A,输入网格102a-102e每个包括由限定二维三角形的边缘连接的多个顶点,它们共同表示蛇的特定配置。
在一个或多个实施例中,风格化的网格形变***提供初始网格用于与控制点一起显示,以使得用户能够提供用于生成已修改网格的用户输入。具体地,图1B示出了显示具有控制点110、112的初始网格108的计算设备104,其中控制点110、112反映用于控制初始网格108中的相应顶点的位置的句柄。如本文中使用的,术语“控制点”是指用于控制网格的一个或多个顶点的位置的数字项目。例如,控制点包括用户可以与之交互(例如,选择和拖动)以移动网格中的相应顶点(或顶点组)的句柄。控制点还包括用户可以与之交互以固定网格中的一个或多个顶点(例如,因此相应的一个或多个顶点不能移动)的句柄。除了句柄之外,控制点包括用户可以利用来控制一个或多个顶点的位置的任何数字项目。例如,用户可以将用户输入(例如,坐标输入)提供给定义一个或多个顶点(即,控制点)的位置的计算设备,而不是选择和拖动句柄。为了说明,用户可以提供定义控制点随时间的移动的用户输入(例如,坐标输入),以基于控制点的移动来生成数字动画。此外,算法或其他输入源可以指示控制点的位置以控制数字模型的移动。或者,用户可以随时间选择和拖动控制点,以基于控制点的移动来生成数字动画。
如图所示,在一个或多个实施例中,风格化的网格形变***从输入网格102a-102e中选择初始网格108。特别地,风格化的网格形变***选择输入网格102b并且提供输入网格102b用于经由计算设备104与控制点110、112一起显示,以使得用户能够与控制点110、112交互并且生成已修改网格。或者,初始网格108不与任何输入网格102a-102e相对应。
在一个或多个实施例中,风格化的网格形变***生成控制点。例如,风格化的网格形变***可以接收一个或多个顶点的用户输入(例如,选择)并且生成对应于顶点的控制点。例如,关于图1,用户选择初始网格108的顶点,并且作为响应,风格化的网格形变***生成控制点110、112。
如上所述,风格化的网格形变***基于相对于一个或多个控制点的输入来生成已修改网格。例如,风格化的网格形变***接收指示控制点110从第一位置110a(图1B所示)到第二位置110b(图1C所示)的移动的输入。关于图1的实施例,用户输入包括选择事件和拖动事件(例如,鼠标点击和拖动事件或者触摸屏触摸和拖动事件)。
如图所示,在图1C中,响应于用户输入将控制点110移动到第二位置110b,风格化的网格形变***生成已修改网格114。如本文中使用的,术语“已修改网格”是指改变后的网格。特别地,术语“已修改网格”包括通过组合一个或多个输入网格而生成的网格。类似地,术语“已修改网格”包括已经发生形变的网格。例如,术语“已修改网格”包括具有被平移和/或旋转的顶点的网格。例如,已修改网格114反映输入网格102a-102e中的一个或多个的组合(并且反映与输入网格102a-102e中的任何一个不同的顶点的配置),其中顶点已被平移并且旋转以满足一个或多个约束(例如,控制点110、112)。因此,风格化的网格形变***使用输入网格102a-102e来生成已修改网格114。更具体地,风格化的网格形变***确定对应于输入网格102a-102e的权重,并且根据权重来组合输入网格以生成已修改网格114。
具体地,风格化的网格形变通过利用组合的形状空间形变插值度量来确定用于组合输入网格102a-102e的权重。如下面更详细地说明的,风格化的网格形变***基于输入网格102a-102e中的每个的加权(即插值)的形变度量和来自由输入网格102a-102e定义的形状空间的混合形状来确定组合的形状空间形变插值度量。以这种方式,风格化的网格形变***选择用于组合和使输入网格102a-102e发生形变的权重以满足输入约束(例如,控制点110、112的位置)并且生成已修改网格114。
如上所述,风格化的网格形变***可以通过跨越数字模型可变地组合输入网格来生成已修改网格。因此,例如,在图1C中,风格化的网格形变***不仅组合输入网格,还利用输入网格102a-102e的多个组合来生成已修改网格114的不同部分。为了说明,风格化的网格形变***利用输入形状102d和102e的第一组合来生成已修改网格114的尾部部分116c(例如,基于第一权重集合,组合来自输入形状102d的尾部部分116a的顶点和来自输入形状102e的尾部部分116b的顶点,以生成尾部部分116c)。类似地,风格化的网格形变***利用输入形状102a和102c的第二组合来生成已修改网格114的颈部部分118c(例如,基于第二权重集合,组合来自输入形状102a的颈部部分118a的顶点和输入形状102c的颈部部分118b的顶点,以生成颈部部分118c)。以这种方式,风格化的网格形变***可以从小的输入网格集合来生成各种表现的独特的已修改网格。
实际上,除了已修改网格114,风格化的网格形变***可以基于控制点110、112的修改来生成各种附加的已修改网格。例如,当用户修改控制点110的位置112时,风格化的网格形变***可以通过组合输入网格102a-102e来生成附加的已修改网格。因此,基于简单的输入,风格化的网格形变***可以生成蛇形滑动、卷绕、拉伸和以其他方式移动的复杂的数字动画。
实际上,风格化的网格形变***可以生成在已修改网格之间平滑地转变的数字动画,直观地合并所有的输入网格102a-102e,并且通过允许以使得能够跨越所得到的已修改网格平滑地在空间上变化的方式使用输入网格102a-102e来提供添加的表现性。此外,风格化的网格形变***足够快以实时地运行,这使得能够从一小组输入形状来创建丰富且详细的形变,并且为通过简单的用户输入使一组草图变得有生机(通过动画或其他操纵)提供了一种简单的方法。
如上所述,在一个或多个实施例中,风格化的网格形变***通过利用组合的形状空间形变插值度量来生成已修改网格。特别地,风格化的网格形变***可以利用组合的形状空间形变插值度量来确定在生成已修改网格时应用于任何给定的输入形状的权重。如本文中使用的,术语“组合的形状空间形变插值度量”是指形状空间形变度量和输入网格形变插值度量的联合量化。例如,组合的形状空间形变插值度量包括用于基于形状空间形变度量和输入网格形变插值度量从多个输入网格生成已修改网格的能量度量(例如,弹性能量)。如下面更详细地讨论的,组合的形状空间形变插值度量可以包括尽可能刚性形变度量(即,ARAP组合的形状空间形变插值度量,其中组合的形状空间形变插值度量取决于尽可能刚性形变,而不是一些其他的形变/能量度量)。
如本文中使用的,术语“形状空间形变度量”是指从输入网格生成的混合网格的全部或部分的形变量的量化。特别地,术语“形状空间形变度量”包括通过根据一个或多个权重将输入形状在形状空间内混合的混合算法生成的网格的全部或部分的形变量。更具体地,形状空间形变度量包括满足一个或多个约束的通过混合算法生成的混合网格的形变量。例如,术语“形状空间形变度量”包括用于修改(全部或部分)混合网格以满足由控制点定义的一个或多个约束的能量(例如,弹性能量)的量度。如下面更详细地讨论的,形状空间形变度量还可以包括尽可能刚性形变度量(即,ARAP组合的形状空间形变插值度量,其中形状空间形变依赖于尽可能刚性形变,而不是一些其他形变/能量度量)。下面提供关于形状空间形变度量的附加信息。
如本文中使用的,术语“输入网格形变插值度量”是指多个输入网格中的全部或部分顶点的形变的加权量化。特别地,术语“输入网格形变度量”包括输入网格中的全部或部分顶点的形变量与一个或多个权重的乘积。例如,术语“输入网格形变插值度量”包括用于修改每个输入网格以满足一个或多个约束(例如,控制点)的能量(例如,弹性能量)的量度,其根据量每个输入网格对所得到的已修改网格的贡献来被加权(即插值)。如下面更详细地讨论的,输入网格形变插值度量还可以包括尽可能刚性形变度量(即,ARAP输入网格形变插值度量,其中输入网格形变插值度量依赖于尽可能刚性形变,而不是一些其他形变/能量度量)。下面提供关于输入网格形变插值度量的附加信息。
例如,图2A-2B示出了根据一个或多个实施例的利用组合的形状空间形变插值度量来生成已修改网格。具体地,图2A示出了第一输入网格202、第二输入网格204和第三输入网格206。风格化的网格形变***利用输入网格202-206基于组合的形状空间形变插值度量来生成多个网格212a-212l。
如图所示,输入网格202-206中的每个反映由一组顶点定义的公共数字模型的不同配置。因此,输入网格202-206中的每个包括按照不同布置的多个公共顶点。此外,输入网格202-206中的每个包括与第一控制点208a、第二控制点208b和第三控制点208c相关联的顶点。如图所示,分别对于输入网格202-206中的每个,第一控制点208a与第二和第三控制点208b、208c之间的距离增加。因此,用户将预期,从左到右拖动控制点208a将生成从第一输入网格202转变到第二输入网格204(例如,以正方形开始并且然后凸出)并且然后从第二输入网格204转变到第三输入网格206(例如,停止凸出并且伸出)的已形变网格。
实际上,图2A示出了用户在返回到位置210a之前将第一控制点208a从第一位置210a移动到多个新的位置210b-2101。此外,图2A示出了,作为响应,风格化的网格形变***生成对应于第一位置210a的初始网格212a,并且然后生成对应于多个新的位置210b-2101的已修改网格212b-212l。
如图所示,风格化的网格形变***生成在输入网格202-206之间平滑且逐渐地转变的已修改网格。特别地,风格化的网格形变***逐渐地组合输入网格202-206以生成已修改网格212b-212l。例如,已修改网格212b是第一输入网格202和第二输入网格204的组合(即,发生形变以满足由控制点208a-208c限定的约束的组合)。类似地,已修改网格212f是第二输入网格204和第三输入网格206的组合。
通过利用组合的形状空间形变插值度量,风格化的网格形变***关于图2A实现了这样的平滑的变换。特别地,风格化的网格形变***使组合的形状空间形变插值度量最小化,以促进输入网格之间的平滑转变。具体地,组合的形状空间形变插值度量有助于使得风格化的网格形变***能够选择用于组合输入网格202-206的权重。实际上,图2A示出了当第一控制点208a改变位置时来自输入网格202-206的贡献量(即,应用于输入形状以生成已修改网格的权重)的图形214。如图所示,最初基于第一输入网格202来生成已修改网格。当第一控制点208a向右移动时,风格化的网格形变***平滑地减小应用于第一输入网格202的权重,并且增加应用于第二输入网格204的权重。以这种方式,风格化的网格形变***修改适用于输入网格202-206的权重,并且使所得到的形状发生形变以匹配由控制点208a-208c规定的准则。
图2B提供了关于根据一个或多个实施例的确定组合的形状空间形变插值度量和生成已修改网格的附加细节。特别地,在一个或多个实施例中,关于图2B示出的动作可以被执行,作为用于基于组合的形状空间形变插值度量从具有在新的位置的控制点的多个输入网格来生成已修改网格的步骤240。
关于图2B,风格化的网格形变***接收包括第一控制点208a移动到新的位置(位置210b)的指示的用户输入。作为响应,如图2B所示,风格化的网格形变***基于权重集合220-224来确定输入网格形变插值度量228。此外,风格化的网格形变***基于权重集合220-224来确定形状空间形变度量230。风格化的网格形变***利用输入网格形变插值度量228和形状空间形变度量230来确定组合的形状空间形变插值度量232。此外,风格化的网格形变***然后通过使组合的形状空间形变插值度量232最小化来生成已修改网格234。
如图所示,风格化的网格形变***基于每个输入网格202-206的形变量和相应的权重220-224来确定输入网格形变插值度量228。特别地,风格化的网格形变***基于第一输入网格202生成第一已形变网格202a,基于第二输入网格204生成第二已形变网格204a,并且基于第三输入网格206生成第三已形变网格206a。更多具体地,风格化的网格形变***通过确定用于使输入网格202-206发生形变以包括第一控制点208a的新的位置210b的最小弹性能量的量来生成已形变网格202a-206a。
例如,风格化的网格形变***通过使第一输入网格202发生形变以反映第一控制点208a的新的位置210b来生成已形变网格202a。风格化的网格形变***确定使第一输入网格202发生形变以反映第一控制点208a的新的位置210b所需的能量的量。此外,风格化的网格形变***修改形变以减少(即最小化)使输入形状发生形变所需的弹性能量。通过使形变的度量(例如,弹性能量)最小化,风格化的网格形变***生成已形变网格202a。类似地,风格化的网格形变***从输入网格204、206生成已形变网格204a、206a。
如图2B所示,风格化的网格形变***然后在每个输入网格202-206的形变度量之间进行插值,以生成输入网格形变插值度量228。特别地,如图所示,风格化的网格形变***通过向输入网格202-206中的每个应用权重集合220-224来插值。更具体地,风格化的网格形变***向生成已形变网格202a-206a所需的形变度量(例如,能量度量)应用权重集合220-224。
因此,例如,风格化的网格形变***确定使第一输入网格202形变到已形变网格202a所需的弹性能量(即,形变度量)的量,并且基于所确定的弹性能量的量来设置第一权重220。类似地,风格化的网格形变***基于生成已形变网格204a-206a所需的形变量来设定权重222-224。此外,风格化的网格形变***将总计加在一起(即,每个形变度量的乘积和与每个输入形状相对应的关联权重的总和)以确定输入网格形变插值度量228。
在一个或多个实施例中,风格化的网格形变***对权重220-224施加约束。特别地,在一个或多个实施例中,风格化的网格形变***约束权重220-224,使得权重是相关的(即,如果一个上升,则另一权重必须下降),并且对输入形状没有负的贡献。例如,在一个或多个实施例中,风格化的网格形变***定义权重220-224,使得它们必须是正的并且之和为1(或某个其他设定值)。因此,在一个或多个实施例中,权重220-224反映每个输入网格202-206对已修改网格234的相对贡献。
如图2B所示,风格化的网格形变***还生成形状空间形变度量230。特别地,风格化的网格形变***通过混合输入网格202-206来生成形状空间形变度量230。具体地,风格化的网格形变***根据权重集合220-224来混合输入网格202-206以生成混合网格226。
风格化的网格形变***通过应用混合算法来生成混合网格226。特别地,风格化的网格形变***可以利用形状空间混合算法。形状空间混合算法可以混合多个输入形状(即,输入网格)以生成已形变形状(即已形变网格)。具体地,形状空间混合算法可以确定由输入网格定义的形状空间。形状空间是可能由输入网格的组合导致的所有不同网格的反射。因此,形状空间内的混合网格是根据权重集合的输入网格的组合的混合形状。
风格化的网格形变***可以利用各种形状空间混合算法。例如,风格化的网格形变***利用线性形状空间混合算法或非线性形状空间混合算法。为了说明,在一个或多个实施例中,风格化的网格形变***利用如在Schumacher,C.,Thomaszewski,B.,Coros,S.,Martin,S.,Sumner,R.,&Gross,M.,Efficient Simulation of Example-BasedMaterials,Proceedings of the ACM SIG-GRAPH/Eurographics Symposium on ComputerAnimation,Eurographics Association,Aerie-la-Ville,Switzerland,SCA’12,1-8(2012)(以下简称“Schumacher 2012”)中描述的非线性混合算法,其全部内容通过引用并入本文。类似地,在一个或多个实施例中,风格化的网格形变***利用如由Sumner,R.W.,Zwicker,M.,Gotsman,C.,&Popovic,J.,Mesh-Based Inverse Kinematics,ACM SIGGRAPH2005Papers,ACM,New York,NY,USA,SIGGRAPH’05,488-495(2005)描述的线性混合算法,其全部内容通过引用并入本文。
如图2B所示,风格化的网格形变***根据权重集合220-224来生成混合形状。此外,在生成混合网格226之后,风格化的网格形变***还确定混合网格226的形变量以生成满足一个或多个约束的已修改网格226a。具体地,风格化的网格形变***确定用于使混合形状226发生形变以生成已修改网格226a使得第一控制点208a位于新的位置210b中的弹性能量的量(例如,最小弹性能量的量)。风格化的网格形变***利用弹性能量的量作为空间形状形变度量230。
因此,如图2B所示,风格化的网格形变***利用权重集合220-224来确定输入网格形变插值度量228并且确定形状空间形变度量230。此外,权重220-224的修改影响输入网格形变插值度量228和形状空间形变度量230。实际上,权重集合220-224增加了输入网格形变插值度量228,其中权重强调需要大量形变以满足约束(即,确保第一控制点208a在新的位置210b)的输入网格。类似地,权重集合220-224减小了输入网格形变插值度量228,其中权重强调需要较小量的形变以满足约束的输入网格。
关于形状空间形变度量230,权重集合220-224增加了形状空间形变度量230,其中权重产生需要显著形变以满足约束(例如,使混合网格226发生形变成为具有在新的位置210b处的第一控制点208a的已修改网格226a)的混合网格。此外,权重220-224通过生成需要最小形变的混合形状来减少形状空间形变度量230(例如,通过选择导致混合形状接近具有在新的位置210b的第一控制点208a的已修改网格226a的权重)。
此外,如图所示,风格化的网格形变***可以基于输入网格形变插值度量228和形状空间形变度量230来生成组合的形状空间形变插值度量232。例如,在一个或多个实施例中,风格化的网格形变***通过将输入网格形变插值度量228和形状空间形变度量230相加来生成组合的形状空间形变插值度量232。
如图2B所示,风格化的网格形变***还可以最小化(或减少或优化)组合的形状空间形变插值度量232。具体地,风格化的网格形变***可以修改权重集合220-224(以及顶点在已修改网格226a中的位置)以使组合的形状空间形变插值度量232最小化。
使组合的形状空间形变插值度量232最小化也可以被视为联合地最小化输入网格形变插值度量228和形状空间形变度量230。实际上,使组合的形状空间形变插值度量232最小化导致修改权重集合220-224以强调需要很小形变以满足输入约束并且在被组合时需要很小形变以满足输入约束的输入网格。
如图所示,在优化组合的形状空间形变插值度量232之后,风格化的网格形变***可以生成已修改网格234。具体地,风格化的网格形变***可以根据优化后的权重来混合输入的形状并且使混合形状根据控制点208a-208c的位置发生形变。实际上,在一个或多个实施例中,在对权重集合220-224进行优化之后,风格化的网格形变***利用已修改网格226a作为已修改网格234。
尽管图2B示出了生成与第一控制点208a的位置210b相对应的已修改网格234,但是风格化的网格形变***可以生成与任何控制点208a-208c的任何位置相对应的已修改网格。实际上,当用户改变第一控制点208a(或控制点208b、208c)的位置时,风格化的网格形变***可以生成与多个新的位置相对应的多个已修改网格。在一个或多个实施例中,例如,风格化的网格形变***生成与控制点的已修改位置相对应的已修改网格的实时动画(例如,包括已修改网格212b-212l的动画)。
如图2A和图2B所示,风格化的网格形变***可以与非物理形状或模拟物理形状结合操作。实际上,已修改网格212b-212l是非物理的(即,不按照拉伸材料的物理模拟来表现)。为了说明,在拉伸第一控制点208a时,物理形变通常不会使第一输入网202在顶部和底部***。相反,风格化的网格形变***使得用户能够基于用户的艺术偏好来生成这样的非物理形变。此外,风格化的网格形变***在输入网格之间平滑地转变,而没有多个参数以辅助定义物理变换。
除了以上描述,还可以在由计算设备实现以生成增强的数字网格的等式和/或伪代码方面来描述风格化的网格形变***。例如,在一个或多个实施例中,风格化的网格形变***将输入定义为输入网格(例如,输入网格202-206)的集合这些输入网格中的每个描述某种数字模型(例如,对象)的示例休息形状。这些输入网格具有相同的顶点集合(例如,多个公共顶点)和相同的三角形集合,使得它们仅在其顶点的位置方面不同。在一个或多个实施例中,由ps表示的第s输入网格的形状用长度的一维阵列来表示,其每个元素是描述单个顶点的位置的k维向量,其中k取决于网格嵌入在其中的空间的尺寸而可以是2或3。在一个或多个实施例中,所有ps个示例网格被一起收集到被表示为P的单个阵列中,其中P的每个元素是k维向量,而不是单个标量。
在一个或多个实施例中,风格化的网格形变***使得用户能够通过控制句柄(例如,控制点208a-208c)的集合来操纵网格。每个句柄与网格的顶点的子集相关联。风格化的网格形变***可以通过用户规定每个句柄的位置来确定已修改网格q,从其能够自动确定剩余顶点的位置。对于中的每个句柄的期望位置的任何特定设置,风格化的网格形变***可以定义相关联的约束集合使得当且仅当q中的每个句柄位于其期望位置时存在
如上所述,风格化的网格形变***通过最小化组合的形状空间形变插值度量来确定已修改网格q。在一个或多个实施例中,风格化的网格形变***将q定义为长度的阵列其每个元素是描述增强网格中的单个顶点的位置的k维向量。此外,风格化的网格形变***将P定义为将所有ps个输入网格的顶点位置和b组合作为长度为的标量阵列,以便bs给出输入网格ps对q的度数贡献(例如,b定义权重集合220-224)。在一个或多个实施例中,风格化的网格形变***还执行ps是非负的并且之和为1。
然后可以将用于求解应用于基于网格的逆运动学的上下文的基于示例的网格形变的优化等式的一般形式写为:
风格化的网格形变***利用了提供快速可靠的基于网格的逆运动学的E的定义。很有吸引力的是,将这个问题看作是网格插值的简单泛化、或者基于示例的弹性材料模拟的微不足道的限制。然而,如上所述,存在在这两个上下文中没有出现的网格逆运动学特定的困难。实际上,如上所述,应用传统的网格插值或弹性材料模拟方法会导致基于网格的逆运动学中的各种不同的伪像。
在一个或多个实施例中,风格化的网格形变***利用组合的形状空间形变插值能量,其在受到最小化的逆运动学约束时,在一组示例网格之间高效可靠地插值,即使对于高度风格化的输入网格和夸张的形变。特别地,风格化的网格形变***通过修改非基于示例的能量Ed(q,p)来构建基于示例的弹性能量E(q,P,b)(即组合的形状空间形变插值度量)。增强网格q中的顶点位置是通过使受到用户规定的约束的E最小化来生成的,该约束执行其中表示其中句柄被正确地定位在其用户特定位置处的形变子集。
如上所述,弹性能量E的一个功能是在用户规定的约束集合改变时(例如,在用户点击并且拖动句柄时)在输入形状之间插值。因此,风格化的网格形变***以使得能够满足很多属性的方式来定义E。具体地:
属性1.如果bs=0,则E(q,P,b)与ps无关。
属性2.当b除了bs=1之外完全为零时,E(q,P,b)=Ed(q,ps)。因此,当只有一个示例网格时,E减小为Ed。
属性3.E应当继承Ed的任何对称性。例如,如果Ed对刚性变换是不变的,则E也应当是这样。
另外,如上所述,存在风格化的网格形变***有助于避免的至少两类伪像。首先,句柄位置的小的变化不应当导致结果的不连续变化。第二,相似形状的组合优于不同形状的组合。因此:
属性4.在实践中,向量应当关于不断改变
属性5.给定某个增强网格q并且定义则bopt在与不同于q的输入形状相对应的条目处通常应当为零。相应地,当且仅当针对某个s存在q=ps(直到对称)时,minbE(q,P,b)才应当为零。
此外,为了减轻局部最小值的影响,风格化的网格形变***还确保:
属性6.如果Ed是凸的,则E也是这样。
最后一点是值得注意的细微之处。风格化的网格形变***不仅可以要求凸起Ed产生凸起E,而且还要求E不依赖于Ed的非凸性或非线性,以满足上述属性1-5。这与一些传统的***形成对比,这些***给出了凸起优化或者喜欢在类似的输入形状之间插值,而不是两者。
没有传统的方法能够满足所有这些属性。此外,如上所述,当应用于风格化的基于网格的逆运动学时,不能满足这些属性将产生明显的伪像。通过采用将非基于示例的能量概括为组合的形状空间形变插值度量的新颖方法,风格化的网格形变***提供了满足上述六个属性的基于示例的形变。
实际上,如上所述,在一个或多个实施例中,风格化的网格形变***计算形状空间形变度量,其依赖于被应用于输入形状的插值的非基于示例的弹性能量Ed(或从输入形状计算的特征)。使用blend(P,b)(例如,形状空间混合算法)来表示使用b作为插值权重向量来组合输入网格的函数,应用于混合输入形状的弹性能量可以表示为:
E(q,P,b)=Ed(q,blend(P,b)) 等式(2)
另外,如上所述,在一个或多个实施例中,风格化的网格形变***可以通过在独立地应用于每个ps形状的非基于示例的弹性能量Ed的值之间进行插值来定义E。这导致输入形状形变插值度量,如下:
为了满足上述六个属性,风格化的网格形变***生成组合的形状空间形变插值度量。具体地,在一个或多个实施例中,风格化的网格形变***如下计算标量常数的集合
这里,使用qs而不是q来指示为每个ds单独计算已修改网格。换言之,风格化的网格形变***计算使每个输入网格形变为将满足用户提供的约束的已修改网格所需的最小能量(例如,为每个输入网格生成已形变网格202a-206a所需的最小能量202-206)。风格化的网格形变***将ds值收集成单个长度为的向量d。风格化的网格形变***然后将组合的形状空间形变插值度量定义为:
E(q,P,b)=Ed(q,blend(P,b))+λdTb
具体地,第一项反映形状空间形变能量,第二项反映输入形状形变插值度量。组合的(即,求和的)它们反映组合的形状空间形变插值度量。此外,风格化的网格形变***可以如下定义优化以求解q:
其中λ是预定义的标量(例如,被设置为0.5)。具体地,风格化的网格形变***通过修改b来最小化组合的形状空间形变插值度量以求解已修改网格q(例如,可以最小化组合的形状空间形变插值度量232以生成已修改网格234)。注意,每个ds的值仅取决于ps(例如,仅取决于每个已形变网格202a-206a)和因此在实践中,每当用户移动句柄时,它们被重新计算一次。
等式5的优化可以以几种不同的方式来解释。例如,优化可被视为应用于形状空间距离Ed(q,blend(P,b))的L1加权的正则化,其中正则化中的权重本身通过最小化Ed来定义。或者,该优化可以被视为从多个输入网格获取能量插值公式并且使用到子空间的距离项Ed(q,blend(P,b))来平滑不连续的转变。类似地,它可以被视为形状空间组合,其中贡献形状基于形成所得到的已形变形状所需的形变量被加权(惩罚)。因此,风格化的网格形变***促进混合需要很小形变的形状以形成所得到的已修改网格。
如上所述,风格化的网格形变***还可以利用尽可能刚性形变度量来从多个输入形状生成已修改形状。如本文中使用的,术语“尽可能刚性形变度量”(或“ARAP”)是指与刚性的局部偏离的度量。特别地,“尽可能刚性形变度量”是指作为与完美刚性的局部偏离的总和的关于输入网格的已修改网格的失真。因此,术语“尽可能刚性形变度量”包括在生成已修改网格时在相邻顶点(或相邻顶点组,诸如边缘组)之间与完美刚性的偏离的度量。例如,术语“尽可能刚性形变度量”包括在已修改网格中的顶点(或边缘组)相对于网格中的相邻的顶点(或边缘组)与完美刚性的平移和/或旋转的度量。
尽可能刚性形变度量可以包括组合的形状空间形变插值度量。例如,在一个或多个实施例中,风格化的网格形变***可以生成组合的形状空间形变插值度量,其依赖于尽可能刚性形变度量(即,ARAP组合的形状空间形变插值度量)。该方法继承了尽可能刚性形变的很多理想属性,诸如对刚性变换的不变性以及尺度和剪切失真的最小化。此外,该方法可以在输入形状之间稳健且平滑地插值。此外,该方法还支持在如何组合不同形状方面的空间局部变化。
虽然计算效率高,但是该方法也可能在概念上更复杂。实际上,由于尽可能刚性形变度量分析局部刚性,在利用尽可能刚性形变度量时,风格化的网格形变***分析局部平移和/或旋转。此外,在组合输入形状以生成已形变网格时,风格化的网格形变***可以改变已修改网格的不同部分上的不同输入形状的组合。因此,在一个或多个实施例中,风格化的网格形变***不仅确定全局适用于每个输入网格的权重,而且确定用于组合每个输入网格的各个部分以形成已修改网格的权重。
例如,图3示出了通过利用尽可能刚性形变度量组合多个输入网格来生成已形变网格。具体地,图3示出了利用ARAP组合的形状空间形变插值度量326来生成已修改网格328。关于图3的实施例,风格化的网格形变***标识输入网格202-206和相应的控制点208a-208c。此外,如图所示,风格化的网格形变***接收指示第一控制点208a到新的位置300的移动的用户输入。作为响应,风格化的网格形变***生成ARAP输入网格形变插值度量322(即,依赖于尽可能刚性形变度量的输入网格形变插值度量)和ARAP形状空间形变度量324(即,依赖于尽可能刚性形变度量的形状空间形变度量)。此外,风格化的网格形变***基于ARAP输入网格形变插值度量322和ARAP形状空间形变度量324来生成ARAP组合的形状空间形变插值度量326,并且使ARAP组合的形状空间形变插值度量326最小化以生成已修改网格328。
如上所述,由于尽可能刚性形变度量分析与刚性的局部偏离,ARAP输入网格形变插值度量322和ARAP形状空间形变度量324还分析局部顶点或边缘组。例如,如图3所示,风格化的网格形变***基于输入网格202-206中的各个边缘组310的与刚性的偏离来生成ARAP输入网格形变插值度量322。
如本文中使用的,术语“边缘组”是指多个顶点。特别地,术语“边缘组”包括通过一个或多个边缘连接的网格的多个局部顶点。在一个或多个实施例中,风格化的网格形变***将网格的类似顶点聚类为边缘组(例如,基于k均值聚类算法)并且分析边缘组(而不是单个顶点)以提高处理速度。也就是说,根据实施例,风格化的网格形变***可以分析边缘组或顶点。
特别地,如图3所示,风格化的网格形变***基于跨越输入网格202-206的边缘组310的平移和旋转量来确定ARAP输入网格形变插值度量322。具体地,风格化的网格形变***生成已形变网格330-334,确定每个形状的边缘特定的尽可能刚性形变度量,然后基于权重312-316来组合每个形状的边缘特定的尽可能刚性形变度量以生成ARAP输入网格形变插值度量322。
如上所述,为了生成ARAP输入网格形变插值度量322,风格化的网格形变***生成已形变网格330-334。特别地,风格化的网格形变***生成对应于每个输入网格202-206的已形变网格330-334,使得已形变网格330-334满足输入约束(例如,使得第一控制点208a位于位置300)。更具体地,风格化的网格形变***通过使输入形状特定的尽可能刚性形变度量最小化来生成已形变网格330-334。换言之,风格化的网格形变***通过使每个输入网格202-206的总的与刚性的局部偏离最小化来确定已形变网格330-334,同时仍然确保已形变网格330-334满足由控制点208a反映的输入约束-208c。
例如,关于输入网格202,风格化的网格形变***生成已形变网格330。具体地,风格化的网格形变***通过使输入网格202的总体尽可能刚性形变度量最小化来生成已形变网格330,以第一控制点208a处于位置300作为约束。因此,风格化的网格形变***分析每个边缘组的平移和旋转,并且使总的与刚性的局部偏离最小化以生成已形变网格330。风格化的网格形变***以类似的方式生成已形变网格332、334。
在生成已形变网格330-334之后,风格化的网格形变***然后确定边缘特定(或顶点特定)的尽可能刚性形变度量。特别地,风格化的网格形变***确定对应于每个输入网格中的每个边缘的与刚性的偏离(即相对于相邻边缘组的平移和旋转)。因此,关于第一输入网格202,风格化的网格形变***在生成已形变网格330时分析边缘组310并且确定从第一位置302a到第二位置302b的旋转336何平移。此外,基于从第一位置302a到第二位置302b的旋转336和平移,风格化的网格形变***确定边缘组310和第一输入网格202的相应的边缘特定的尽可能刚性形变度量。类似地,关于第二输入网格204,风格化的网格形变***在生成已形变网格332时分析边缘组310并且确定从第一位置304a到第二位置304b的旋转338和平移(以及相应的边缘特定的尽可能刚性形变度量)。另外,关于第三输入网格206,风格化的网格形变***在生成已形变网格334时分析边缘组310并且确定从第一位置306a到第二位置306b的旋转340和平移(以及相应的边缘特定的尽可能刚性形变度量)。
在计算边缘组310关于每个输入网格202-206的边缘特定的尽可能刚性形变度量之后,风格化的网格形变***组合边缘特定的尽可能刚性形变度量以生成ARAP输入形状形变插值度量322。具体地,如图3所示,风格化的网格形变***通过将边缘特定的尽可能刚性形变度量乘以权重312-316并且将结果相加来针对每个输入网格202-206组合边缘特定的尽可能刚性形变度量。
为了说明,关于第一输入网格202,风格化的网格形变***确定边缘组310的边缘特定的尽可能刚性形变度量以生成已形变网格330。此外,风格化的网格形变***将边缘特定的尽可能刚性形变度量乘以第一权重312。另外,关于第二输入网格204,风格化的网格形变***确定边缘组310的边缘特定的尽可能刚性形变度量以生成已形变网格332。风格化的网格形变***还将边缘特定的尽可能刚性形变度量乘以第二权重314。另外,关于第二输入网格204,风格化的网格形变***确定边缘组310的尽可能刚性形变度量以生成已形变网格334,并且将边缘特定的尽可能刚性形变度量乘以第三权重。风格化的网格形变***然后通过将所得到的乘积相加在一起来生成ARAP输入网格形变插值度量322。
因此,关于每个输入网格202-206内的局部边缘组,ARAP输入网格形变插值度量322针对每个输入网格202-206反映尽可能刚性形变度量的插值量。具体地,ARAP输入网格形变插值度量322反映每个输入形状内的局部边缘组的平移和旋转量(与完美刚性相比),以便通过将第一控制点208a定位在位置300中来使每个输入形状满足输入约束。
尽管图3示出了关于边缘组310生成ARAP输入网格形变插值度量322,但是风格化的网格形变***可以关于输入网格202-206的所有顶点(或边缘组)生成ARAP输入网格形变插值度量322。例如,在一个或多个实施例中,风格化的网格形变***遍历输入网格202-206的每个边缘组,确定每个边缘组关于每个输入网格202-206的边缘组特定的尽可能刚性形变度量,并且利用每个边缘组特定的权重来组合边缘组特定的尽可能刚性形变度量。
实际上,以这种方式,风格化的网格形变***可以生成不仅特定于每个输入形状而且特定于每个输入形状内的每个边缘组的权重。通过利用特定于每个形状中的边缘组的权重,风格化的网格形变***跨越不同的边缘组不同地组合输入形状。例如,风格化的网格形变***利用第一边缘组的第一权重集合和第二边缘组的第二权重集合。因此,风格化的网格形变***可以对数字模型的不同部分进行不同的输入形状的不同组合。
除了生成ARAP输入网格形变插值度量322,如图3所示,风格化的网格形变***还生成ARAP形状空间形变度量324。类似于ARAP输入网格形变插值度量322,风格化的网格形变***还可以生成特定于输入网格202-206内的每个边缘组的ARAP形状空间形变度量324。
例如,如图3所示,风格化的网格形变***通过旋转和混合输入网格202-206来生成ARAP形状空间形变度量324。特别地,风格化的网格形变***根据转动336-340旋转每个边缘组。此外,风格化的网格形变***根据权重312-316混合每个边缘组以生成混合网格342。风格化的网格形变***然后确定满足输入约束(例如,具有在位置300的第一控制点208a)的已形变网格344。风格化的网格形变***然后基于混合网格342中的边缘组与已形变网格344中的边缘组之间的差异(即,尽可能刚性形变度量)来确定ARAP形状空间形变度量324。
例如,图3示出了关于边缘组310生成ARAP形状空间形变度量324。如图所示,风格化的网格形变***首先基于旋转336-340来旋转边缘组310。因此,关于第一输入网格202,风格化的网格形变***通过旋转336使边缘组310旋转。类似地,风格化的网格形变***通过旋转338使边缘组310关于第二输入网格204旋转并且通过旋转340使边缘组310关于第三输入网格206旋转。
在旋转边缘组310之后,风格化的网格形变***根据权重312-316将来自每个输入网格202-206的旋转后的边缘组310混合。具体地,风格化的网格形变***利用混合算法(例如,形状空间混合算法)来组合来自每个输入网格202-206的旋转后的边缘组310以生成混合边缘组318。图3仅示出了边缘组310和混合边缘组318,但是风格化的网格形变***可以旋转并且混合每个输入网格202-206中的所有边缘组。以这种方式,风格化的网格形变***可以生成混合网格342。
此外,风格化的网格形变***将混合网格342中的各个边缘与已形变网格344相比较。特别地,风格化的网格形变***基于混合网格342生成已形变网格344。具体地,风格化的网格形变***通过修改混合网格342以满足输入约束(例如,使得第一控制点208a处于位置300)来生成已形变网格344。更具体地,风格化的网格形变***通过修改混合网格342以便在满足输入约束的同时使尽可能刚性形变度量最小化来生成已形变形状。
因此,如图所示,风格化的网格形变***将混合网格342的各个边缘组与已形变网格344的相应边缘组相比较。具体地,风格化的网格形变***确定旋转后的混合边缘组318与已形变网格344中的相应边缘组320之间的尽可能刚性形变度量。风格化的网格形变***然后利用混合边缘组318与边缘组320之间的尽可能刚性形变度量作为ARAP形状空间形变度量324。
如上所述,虽然图3示出了基于边缘组310生成ARAP形状空间形变度量324,风格化的网格形变***可以基于附加边缘组来生成ARAP形状空间形变度量324。实际上,在一个或多个实施例中,风格化的网格形变***基于数字模型中的所有边缘组的尽可能刚性形变度量来生成ARAP形状空间形变度量324(例如通过将输入网格202-206中的所有边缘组相加)。
如图3所示,风格化的网格形变***还组合ARAP输入网格形变插值度量322和ARAP形状空间形变度量324以生成ARAP组合的形状空间形变插值度量326。因此,ARAP组合的形状空间形变插值度量326基于局部插值以及在局部混合输入形状之后的局部ARAP形变来反映每个输入形状的局部ARAP形变。因此,减少该度量可以促进选择局部相似的输入形状,其在组合后需要最小的ARAP形变以满足输入约束。例如,选择强调每个都需要与刚性很少的局部偏离以满足输入约束的输入形状的权重将减少ARAP组合的形状空间形变插值度量326。类似地,选择强调组合以需要与刚性的很小的局部偏离以满足输入约束的输入形状的权重将减少ARAP组合的形状空间形变插值度量326。
因此,如图3所示,风格化的网格形变***使ARAP组合的形状空间形变插值度量326最小化(或以其他方式优化或减小)。具体地,风格化的网格形变***可以修改应用于各个边缘组的旋转、平移和权重,以使ARAP组合的形状空间形变插值度量326最小化。
如图所示,在优化ARAP组合的形状空间形变插值度量326之后,风格化的网格形变***生成已修改网格328。实际上,通过确定用于减少ARAP组合的形状空间形变插值度量326的旋转、平移和权重,风格化的网格形变***可以得到已修改网格328(例如,已形变网格344)。
在一个或多个实施例中,风格化的网格形变***通过利用基于线性混合蒙皮的简化坐标模型进一步减少在生成已修改网格328时的处理需求。线性混合蒙皮定义网格如何根据控制点的功能而改变。特别地,线性混合蒙皮模型利用蒙皮权重来描述控制点对网格中的点的位置的影响量。风格化的网格形变***然后可以利用线性混合蒙皮模型作为用于以计算上有效的方式来计算已修改网格328的手段。具体地,在一个或多个实施例中,风格化的网格形变***定义了蒙皮权重,并且然后使用有界的双调和权重将权重扩展到网格的其余部分,如在Jacobson,A.,Baran,I.,Popovic,J.,&Sorkine,O.,Bounded BiharmonicWeights For Real-Time Deformation,ACM Transactions on Graphics(proceedings ofACM SIG_GRAPH)30,4,78:1-78:8(2011)中描述的,其全部内容通过引用并入本文。
该方法与线性混合蒙皮的传统应用的不同之处在于,风格化的网格形变***确定与不同控制点和不同形状有关的贡献。例如,风格化的网格形变***可以基于其在特定控制点的附近以及在特定控制点附近的输入网格的贡献来将独特权重应用于点。以这种方式,风格化的网格形变***可以提高处理速度和与高分辨率网格的实时交互。下面提供关于线性混合蒙皮模型的实现的其他细节。
除了以上描述,还可以在由计算设备实现以使用尽可能刚性形变度量来生成增强的数字网格的等式和/或伪代码方面来描述风格化的网格形变***。特别地,如上所述,风格化的网格形变***使得用户能够通过控制句柄(即控制点)的集合来操纵网格。风格化的网格形变***可以采用线性混合蒙皮模型,其中每个句柄与表示句柄的仿射变换的每形状kxk+1维矩阵相关联。风格化的网格形变***可以将这些变换包装成的阵列T,使得第h句柄和第s形状的仿射变换为Ths。通过线性混合蒙皮从T来计算描述已修改网格的中的完整的顶点集合的位置。这使用蒙皮权重W的矩阵其中Whp给出了第h句柄对第p点的位置的影响量。这些蒙皮权重可以以很多方式定义,包括艺术家的绘画,但是在一个或多个实施例中,风格化的网格形变***为每个句柄选择网格中的顶点的子集,固定它们的蒙皮权重(例如,为1),并且使用有界的双调和权重将权重扩展到网格的其余部分。给定已修改网格的形状,风格化的网格形变***可以如下计算k维点q的长度为的阵列:
其中,为了减少符号混乱,总和的边界(即,)被从它在通过其来求和的索引的名称中隐含。M是长度为k+1的行向量的矩阵其在T方面组合了W和P对q的影响。
虽然该形变模型在数学上等同于标准线性混合蒙皮,但是其插值稍微不同,因为它组合了不同的句柄和不同的形状。例如,以常数因子缩放特定的Ths可以增加或减小第s形状对第h句柄附近的q的贡献。另一方面,对于将每个Ths乘以相同的刚性变换具有刚性地转变第h句柄附近的q的部分的效果。因此,等式6将q描述为输入网格的空间局部几何变换和插值的组合。
该形变是线性的这一事实有助于计算效率。这简化了其在优化组合的形状空间形变插值度量方面的用途,并且可用于使得风格化的网格形变***能够实时地运行。虽然该线性特征意味着它能够表示高度扭曲的形变,但是ARAP组合的形状空间形变插值度量尝试保留局部刚性的这一事实自然地避免了这些情况。在实践中,研究人员没有观察到由线性引起的任何伪像。
通过手动地规定T来描述已修改网格的形状是冗长乏味的,特别是当存在多于一个形状时。风格化的网格形变***可以使得用户能够使用简单的点击拖动(或其他用户输入)界面直接操纵形状,并经由能量最小化优化来自动地推断T。这导致自动几何失真和自动确定每个输入形状对最终网格有多少贡献。此外,风格化的网格形变***可以在空间上定位几何和形状失真(例如,修改各个三角形的几何形状以及跨越数字网格的每个单独形状的贡献量)。
如上所述,在一个或多个实施例中,风格化的网格形变***利用尽可能刚性形变度量来允许一组形状之间的插值。例如,风格化的网格形变***生成ARAP组合的形状空间形变插值度量,其中刚性关于由描述的输入形状集合而不是关于单个网格来度量。
被表示为Earap的传统的ARAP能量通过与完美刚性的局部偏离的总和来度量形状q关于参考形状p的形状失真。关于作为大小为的阵列的q和p,其每个元素是表示单个顶点的位置的k维向量。这个能量可以写为:
其中是一组边缘组,g索引如上所述,总和的范围被从索引在其上求和的名称中隐含。此外,Rg∈SO(k)是与第g边缘组相关联的局部旋转矩阵,cge是通常用余切拉普拉斯算子计算的加权项(如Chao,I.,Pinkall,U.,Sanan,P.,and Schroder,P.,A SimpleGeometric Model for Elastic Deformations,ACM Trans.Graph.29,4(July),38:1-38:6(2010)中描述的,其全部内容通过引用并入本文),并且A是与q上的三角形网格的边缘集合ε相对应的(稀疏)定向相邻矩阵。风格化的网格形变***可以通过以被设置为的簇数对W进行k均值聚类来计算这允许风格化的网格形变***使用相对较少数目的边缘组并且生成实时性能,因为对空间局部混合的支持包括每个边缘组的附加变量和约束(如下所示)。
如上所述,风格化的网格形变***可以通过将等式7概括为在多个输入形状之间进行插值来生成ARAP组合的形状空间形变插值度量。这样做可能比其看起来更加谨慎,原因有两个。首先,在一个或多个实施例中,风格化的网格形变***修改混合函数,用于ARAP能量对于中的每个组在局部旋转矩阵上明确地优化的这一事实。第二,关于支持在输入网格之间的空间局部形变和插值的实施例,风格化的网格形变***进一步修改混合函数,以便支持在网格上空间地变化的插值。
如上所述,在一个或多个实施例中,风格化的网格形变***通过每个形状和每个边缘组定义局部旋转矩阵和混合权重来实现这些修改。因此,在一个或多个实施例中,风格化的网格形变***表示具有kxk的旋转矩阵的阵列的所有局部旋转的集合R(例如,旋转336-340)。类似地,将P中的不同的形状的每边缘组混合权重收集到被表示为B的矩阵中(例如权重312-316)。风格化的网格形变***可以将混合函数(例如,对于ARAP形状空间形变度量324)定义为:
[blendg(P,B)]e=∑spBgsRgsAepPsp 等式(8)
为了避免缩放伪像或负的形状贡献,风格化的网格形变***也可以约束和由于blendg(P,B)计算插值边长度的向量,等式8使用符号[blendg(P,B)]e来指代对应于第e边缘的单个元素。此外,下标e用于表示如何定义对应于单个边缘的该向量中的元素。
如上所述,该函数可以被解释为:对于第g边缘组和每个边缘首先使中的每个形状的相应边缘旋转Rgs(例如,通过旋转336-340从输入网格202-206旋转边缘组310),然后根据由Bgs给出的权重将不同形状的边缘线性地混合在一起(例如,基于权重312-316混合输入网格202-206)。因为每个形状中的边缘组的实例被旋转地对准,并且由于每个边缘组仅涉及整个网格的小的局部部分,所以风格化的网格形变***可以避免与在顶点位置之间直接插值相关联的正常伪像。
给定等式8中的混合函数的定义,在一个或多个实施例中,风格化的网格形变***利用以下等式,其将ARAP能量并入形状空间形变度量中,以局部插值和旋转不同的输入形状(例如,ARAP形状空间形变度量324)。
风格化的网格形变***也可以从上面生成类似的d的定义。为了支持ARAP风格的公式中的空间变化的几何形变,风格化的网格形变***可以计算矩阵D。该矩阵的每列通过首先求解(例如,求解已形变网格330-334)来定义。出现来自以上的函数Earap,而不是Ed,因为当应用于单个形状ps时,Ed(q,B,R,P)精确地减少为Earap(q,R,ps)。
因此,ARAP组合的形状空间形变插值度量可以以类似于等式5的形式写为:
在该等式中,平方根的使用使得结果能够在改变时更好地近似分段线性插值。没有平方根的版本也可以很好地工作,并且在低计算成本是至关重要的情况下可以是适当的替代实施例。尽管如此,研究人员发现等式10可以快速地计算。
如上所述,在一个或多个实施例中,风格化的网格形变***优化等式10以确定已修改网格。特别地,在一个或多个实施例中,风格化的网格形变***求解等式10(并且优化ARAP组合的形状空间形变插值度量)。在一个或多个实施例中,风格化的网格形变***通过在两步过程中求解等式10来减少计算处理能力。
例如,图4示出了根据一个或多个实施例的优化尽可能刚性形变度量(例如,在等式10中铰接的ARAP组合的形状空间形变插值度量)的方法400的一系列动作的流程图。如图所示,方法400包括获取输入网格的动作402。例如,如上所述,方法400包括获取以各种配置描绘数字模型的输入网格的用户输入。
在获得输入网格之后,方法400执行保持旋转恒定并且求解平移和权重的动作404。例如,风格化的网格形变***保持输入网格中每个边缘组的旋转恒定,并且然后使ARAP组合的形状空间形变插值度量最小化,以求解边缘组的平移和适用于每个输入边缘组和输入网格的权重。实际上,通过利用如上所述的线性混合蒙皮形变模型,求解平移和权重等价于求解表示已修改网格的顶点位置的向量。此外,如下所述,使ARAP组合的形状空间形变插值度量最小化简化为被称为二阶锥体程序(SOCP)的凸优化,如Boyd,S.,andVendenberghe,L.,Convex Optimization,Cambridge University Press,New York,NY,USA(2004)中描述的,其全部内容通过引用并入本文。风格化的网格形变***可以利用圆锥优化器来以计算有效的方式全局地优化二阶锥体程序。
如图4所示,风格化的网格形变***还执行保持平移和权重恒定并且求解旋转的动作406。例如,风格化的网格形变***保持被应用于每个边缘组和每个输入形状的平移和权重恒定,并且然后使ARAP组合的形状空间形变插值度量最小化,以求解每个边缘组从每个形状的旋转。因为每个边缘组和每个形状可以贡献不同的旋转,所以优化ARAP组合的形状空间形变插值度量以求解旋转可能会导致显著的伪像。实际上,从不同输入形状的旋转(例如旋转336-340)可以彼此抵消,从而导致高度非刚性的变换。
因此,在一个或多个实施例中,风格化的网格形变***通过将用于计算ARAP形变插值度量的已形变形状与用于计算ARAP形状空间形变度量的已形变形状对准来执行动作406。为了说明,关于图3的实施例,风格化的网格形变***可以将已形变网格330-334与已形变网格344对准。这具有求解不同旋转的结果而没有不同形状之间的任何形变插值(例如,ARAP输入网格形变插值度量322不反映从每个输入形状202-206的形变)。这简化了求解旋转的过程,而不影响适用于输入形状的权重(因为在动作406期间权重保持恒定)。
如图4所示,风格化的网格形变***还执行确定尽可能刚性形变度量是否被最小化的动作408。例如,在一个或多个实施例中,动作408包括确定ARAP组合的形状空间形变插值度量是否已经收敛。为了说明,动作408可以包括确定跨越迭代的ARAP组合的形状空间形变插值度量的变化是否在一定门限量内已经改变。
如图所示,如果风格化的网格形变***确定尽可能刚性形变度量没有被最小化(例如,没有收敛),则风格化的网格形变***可以继续执行动作404和406。如果风格化的网格形变***确定尽可能刚性形变度量被最小化,则风格化的网格形变***可以执行生成已修改网格的动作410。特别地,风格化的网格形变***可以基于关于动作404和406求解的平移、旋转和权重来生成已修改网格。
尽管图4示出了通过迭代地保持旋转和/或平移和权重恒定来生成已修改网格,但是应当理解,风格化的网格形变***还可以利用替代方法来生成已修改形变。例如,在一个或多个实施例中,风格化的网格形变***不优化旋转。相反,风格化的网格形变***仅求解平移和权重。这使得风格化的网格形变***能够计算全局最佳已修改网格。该方法可以提供良好的结果,同时保证全局最优性。
此外,在一个或多个实施例中,风格化的网格形变***还可以生成求解平移、旋转和权重的已修改网格,而不需要求解平移/权重和旋转之间的交替。例如,在一个或多个实施例中,风格化的网格形变***利用信任区域优化方法来保证收敛和求解旋转、平移和权重。
除了以上描述,还可以在由计算设备实现以优化尽可能刚性形变度量并且生成增强的数字网格的等式和/或伪代码方面来描述风格化的网格形变***。特别地,正如关于图4刚刚提到的,风格化的网格形变***可以用在两种动作之间交替的算法来求解等式10。首先保持R固定并且求解T和B(例如,动作404)。然后,在第二动作中,保持T和B固定并且求解R(例如,动作406)。这个过程被重复直到收敛(或直到新的帧被显示在动画中,在这种情况下,它被提前终止)。
为了求解T和B同时保持R固定(例如,动作404),风格化的网格形变***的一个或多个实施例利用如上所述的线性混合蒙皮形变模型。特别地,在利用线性混合蒙皮形变模型时,求解T等效于求解表示已修改网格的顶点位置的向量。将等式6***到等式9中,以在T方面将Ed(q,B,R,P)表示为Ed(T,B,R,P)并且将结果扩展为三个项之和:
这个等式中的项是直接计算和用代码实现,在某种程度上可以表示为:
其中L是矩阵,是(k+1)×(k+1)矩阵的阵列。
类似地,表示为:
其中
其中K是长度k的向量的阵列,并且是k×k+1矩阵的阵列。此外,
其中
其中H是k×k矩阵的阵列。
假定P预先固定,用于和的这些公式使得能够通过重新计算和H,以与无关的成本来计算Ed。可以进行根据T的q的类似替代以求解D。这使得能够将等式10最小化,成本与输入网格的分辨率无关。
然后,风格化的网格形变***可以根据对q中的选择顶点的位置的用户规定的约束来优化(即最小化)等式10。对于每个句柄,这个约束通过将单个顶点ph与句柄相关联并且强制来建模,其中是顶点在已修改网格中的期望位置。
总之,完全优化T和B(同时保持R固定)由下式给出:
使得
为了最小化等式20,观察Ed(T,B,R,P)是vec(T,B)的二次方,其中vec是将T和B的标量分量堆叠成长度为的单个向量的向量化算子。因此,求解等式20以得到T和B减小为使二次形式的平方根和经受一组线性约束的线性函数之和最小化。这说明了等式5保留凸度的事实之一,因为这个问题是二阶锥体程序(SOCP)的实例,其可以被快速地全局最小化。这种形式的问题可以用现成的圆锥优化器来轻松地解决。在一个或多个实施例中,风格化的网格形变***利用一般的非线性优化器来求解以提高效率。特别地,在一个或多个实施例中,风格化的网格形变***利用SNOPT,如在Gill,P.E.,Murray,W.,&Saunders,M.A.,SNOPT:An SQP Algorithm for Large-Scale ConstrainedOptimization,SIAM Journal On Optimization 12,979-1006(1997)中描述的,其全部内容通过引用并入本文。
如上所述,在一个或多个实施例中,风格化的网格形变***还执行优化等式10中的第二阶段,其求解R,同时保持T和B固定(例如,动作406)。然而,如上所述,直接最小化等式10以得到R可导致显著的伪像。与标准ARAP能量相比,等式8采用每对边缘组的局部旋转矩阵和基本形状,而不是简单地为每个边缘组的旋转矩阵。这使得能够将不同的基本形状自动地局部旋转对准,但是具有在能量最小化中直接包括Rgs旋转的缺点,导致高度非刚性变换,因为不同形状的旋转矩阵可以相互抵消。
在一个或多个实施例中,通过直接对准q而没有不同形状之间的任何插值,风格化的网格形变***通过针对每个输入形状独立地求解本地旋转来解决这个问题。这通过将Rgs定义为阵列R的第g、s元素以仅针对单个基本形状ps使等式10最小化来实现。
Rgs=[argminR E(q,B,R,ps)]gs 等式(21)
s.t.Rgs∈SO(k)
类似于等式8,符号[X]gs用于表示矩阵X中的单个元素。当求解T和B时,可以解决这个问题,而不需要明确地表示q,而是在T和B方面表示最小化。
其中是k×k矩阵的阵列,表示T和B的收缩:
注意,项不在等式22中,因为当对于单个形状ps计算时,等式18中的R的示例取消,以独立于R来渲染通过求解Procustes对准问题作为Rgs=VUT,可以独立地针对每个g、s求出使等式22在SO(k)上最大化的矩阵Rgs,其中Rgs=UDVT是的奇异值分解。
因此,在一个或多个实施例中,风格化的网格形变***通过在求解T和B与求解R之间交替来优化等式10。在技术上,该交替最小化不能保证收敛。也就是说,研究并没有认为这在实践中是一个严重问题。
也就是说,为了保证优化,风格化的网格形变***也可以利用不同的优化算法。如上所述,为了保证收敛,由求解R引入的非线性可以被并入到T和B的求解中。这为优化器增加了不寻常的附加的复杂性,以覆盖相对罕见的故障情况。当T和B被更新时,R的值根据等式22改变。为了解释这一点,风格化的网格形变***可以线性化R对E(T,B,R,P)的影响并且通过信任区域方法使等式20最小化。该线性化将在R≈R0附近的E近似为:
其中是在T和B变化时R对E的影响的线性化并且可以简化为:
其中最后的等式是由于观察到Ed1与R无关,并且经由等式22的R的定义意味着令x表示T的单个参数,并且使用等式18给出:
其中
其中根据由CITE描述地来计算:
其中U和V来自的奇异值分解,并且Ω是k×k矩阵,使得:
该等式中的项表示关于x的偏导数,并且可以通过微分等式23来直接计算。
为了完成求解T和B的算法,风格化的网格形变***可以以初始猜测T0,B0开始,并且使受到等式20中的约束和附加约束||vec(T,B)-vec(T0,B0)||≤r的等式24最小化。标量r是确保优化收敛的信任半径,并且r的足够小的值保证优化目标函数的减小。这个优化是另一SOCP,它可以用与等式20相同的技术来求解。
在一个或多个实施例中,信任半径r从r=1开始并且在优化过程中动态地变化。如果求解T和B,则重新计算R产生E的减小,则风格化的网格形变***更新r′=max(ρr,1)并且继续进行。否则,风格化的网格形变***设置r′=max(ρ-1r,1)并且重新求解。在一个或多个实施例中,风格化的网格形变***利用相对激进的值ρ=10作为经验观察的反映,即信任区域很少是必需的,但是当它通常需要r相对较小以确保E的减小。
此外,如上所述,在一个或多个实施例中,风格化的网格形变***还可以基于T和B来优化等式20,而不对R进行优化。不优化旋转,风格化的网格形变***可以求解等式20以一次获得T和B。此外,计算D中涉及的每个次优化减少为求解单个线性***。这使得风格化的网格形变***能够通过求解一系列线性***以及单个SOCP来有效地确定全局最佳已形变网格q。由于风格化网格形变***的一个或多个实施例不依赖于目标函数中的非线性来在形状之间可靠地插值,所以在适用的情况下,该技术可以提供良好的结果以及全局最优性的保证。研究人员发现,面部表情操纵是一个这种技术特别适用的领域。
尽管关于图3-5讨论的很多示例实施例示出了ARAP组合的形状空间形变插值度量的形式的尽可能刚性形变度量的实现,但是风格化的网格形变***还可以利用不同的形式的尽可能刚性形形变度量(即,不使用组合的形状空间形变插值度量)。实际上,在一个或多个实施例中,风格化的网格形变***利用不同的ARAP度量来从多个输入网格生成已修改网格(和/或确定输入网格的空间局部组合)。
例如,在一个或多个实施例中,不是生成ARAP组合形状空间形变插值度量,风格化的网格形变***利用ARAP输入网格形变插值度量或ARAP形状空间形变度量来生成已修改网格。例如,风格化的网格形变***可以隔离地使用ARAP输入网格形变插值度量(例如,ARAP输入网格形变插值度量322)来生成已修改网格。实际上,风格化的网格形变***可以利用ARAP输入网格形变插值度量来标识由于生成已修改网格的权重。此外,风格化的网格形变***可以利用ARAP输入网格形变插值度量来生成边缘特定和形状特定的权重,使得已修改网格反映不同输入网格的空间局部组合。
类似地,风格化的网格形变***可以利用ARAP形状空间形变度量(例如,ARAP形状空间形变度量324)来生成已形变网格。例如,风格化的网格形变***可以利用ARAP形状空间形变度量来标识由于生成已修改网格的权重。此外,风格化的网格形变***可以利用ARAP形状空间形变度量来生成边缘特定和形状特定的权重,使得已修改网格反映不同输入网格的空间局部组合。
此外,尽管关于图3-5描述的很多实施例讨论了不同输入形状的空间局部化组合,但是风格化的网格形变***也可以在不进行空间局部化组合的情况下操作。例如,风格化的网格形变***可以利用ARAP组合的形状空间形变插值能量,其不关于特定输入网格中的不同边缘组来改变权重。实际上,虽然风格化的网格形变***可以提供输入形状的空间局部组合作为附加益处,但是在所有实施例中,风格化的网格形变***不需要提供这样的特征。
如上所述,风格化的网格形变***的实现可以产生与传统***相比提供多个优点的结果。研究人员进行了很多实验来说明风格化的网格形变***的各种实施例的有效性。例如,图5示出了在用于基于网格的逆运动学的交互式***的上下文中使用ARAP组合的形状空间形变插值度量的多个基于示例的形变。具体地,图5示出了第一多个已修改网格502-506(即,马的不同配置)、第二多个已修改网格512-516(即,面部的不同配置)和第三多个已修改网格522-526(即海星的不同配置)。风格化的网格形变***基于指示控制点的移动的用户交互来生成已修改网格502-506、512-516、522-526。
在加载一组示例形状并且规定这些形状上的控制点的位置(通过选择网格之一上的顶点)之后,用户可以交互地点击并拖动控制点(或另外提供用户输入),同时结果网格相应地形变。如图5所示,风格化的网格形变***可以在二维或三维网格(即诸如马等三维模型或诸如海星等二维模型)上操作。此外,如图5所示,研究人员已经发现风格化的网格形变***适用于各种各样的不同情况,包括风格化的生物的点击拖动动画、摆放表达角色和面部表情操纵。
此外,如图6A-6B所示,风格化的网格形变***可以以直观的方式可靠地在输入形状之间插值,同时避免了现有配方中存在的伪像。具体地,图6A示出了由风格化的网格形变***的至少一个实施例生成的第一多个已修改网格602a-602n。具体地,图6A示出了利用ARAP组合的形状空间形变插值度量生成的第一多个已修改网格602a-602n。如图所示,响应于控制点604(和/或控制点606)的移动,风格化的网格形变***生成多个已修改网格602a-602n,其平滑地卷入和移出以基于输入网格(例如,输入网格102a-102e)生成蛇的栩栩如生的表示。此外,图6A所示的风格化的网格形变***在输入形状之间平滑地插值。这样的可靠性确保所有艺术家提供的输入形状在最终结果中以直观的方式实际地使用。
相比之下,图6B示出了如在Schumacher 2012中所描述的利用传统的形状空间方法生成的第二多个已修改网格610a-610n。如图所示,尽管相对于控制点604、606具有相同的输入网格和相同的移动,但是第二多个已修改网格610a-610n不包含所有输入形状(例如,第二多个已修改网格610a-610n不能合并输入网格102c)。此外,第二多个已修改网格610a-610n不提供经由风格化的网格形变***产生的各种表现组合。
类似地,风格化的网格形变***还可以避免与传统***相关联的很多伪像。例如,图7A示出了第一组已修改网格702、第二组已修改网格704和第三组已修改网格706。风格化的网格形变***利用ARAP组合的形状空间形变插值度量来生成第一组已修改网格702,并且风格化的网格形变***仅利用ARAP形状空间形变度量来生成第二组已修改网格704。如Schumacher 2012所述,第三组已修改网格706利用传统的形状空间***来生成。
如图7A所示,第三组已修改网格706包括各种伪像。例如,在已修改网格706b-706n中描绘的狮子腿以尴尬的不相交的方向摆脱。相比之下,第一组已修改网格702和第二组已修改网格704不会有同样的缺陷。
值得注意的是,第一组已修改网格702(利用ARAP组合的形状空间形变插值度量生成)以输入形状的更现实的表达组合卷起。这是利用ARAP组合的形状空间形变插值度量的结果,其使得风格化的网格形变***能够基于来自每个输入形状的所需形变并且基于组合输入形状的形变来更精确地组合输入形状。
类似地,图7B示出了第一组已修改网格712和第二组已修改网格714。通过利用ARAP组合的形状空间形变插值度量的实施例,风格化的网格形变***生成第一组已修改网格712。如Schumacher 2012所述,利用传统的形状空间***来生成所得到的第二组已修改网格714。
如图所示,在第二组已修改网格714中,变色龙不能打开其嘴(尽管变色龙的输入网格打开其嘴)。相反,传统的形状空间***省略了输入网格,其指示当控制点处于特定位置时,变色龙打开其嘴,这有利于其他输入网格的组合。相比之下,在第一组已修改网格712中,变色龙按预期(基于输入网格)打开和关闭其嘴。
如上所述,风格化的网格形变***还可以在生成已修改网格时生成输入形状的空间可变的混合。这允许附加的表现力,诸如不同的肢体基于从不同输入网格绘制而不同地执行。因此,例如,风格化的网格形变***可以在一个输入网格上绘制以提高马的腿部,并且在另一输入网格上绘制以降低单独的腿部。如果没有这个能力,则风格化的网格形变***在用户尝试引入跨越输入网格在空间上不同的组合时,会引入伪像。
例如,图8示出了两个已修改网格802、804。风格化的网格形变***利用包括输入形状的空间局部混合(即,利用具有空间上变化的混合的ARAP组合的空间形状形变插值度量)的实施例来生成第一已修改网格802。风格化的网格形变***利用不包括输入形状的空间局部混合(即,利用没有空间上变化的混合的ARAP组合的空间形状形变插值度量)的实施例来生成第二已修改网格802。
如图所示,在图8中,通过利用空间上变化的混合,第一已修改网格802可以描绘马腿的新的配置,其中不同的腿在输入网格的不同组合上绘制以保持其完整性。然而,没有空间上变化的混合,第二已修改网格804包括马的前腿中的不自然的混合部806。这是尝试将输入网格全局组合到不会在输入网格的任何单一组合中反映的配置的结果。因此,去除空间上变化的混合具有在人物肢体如何形变方面引入伪像的效果,并且消除了用户自由地操纵个体肢体而没有问题的能力。
如上所述,风格化的网格形变***还可以生成已修改网格,而不需要显著的处理能力或计算时间。表1列出了利用在2.4GHzE5-2630上运行的非优化单线程C++实现上度量的多个示例上的ARAP组合的形状空间形变插值度量的风格化的网格形变***的运行时性能。大部分运行时间计算花费在非线性优化器求解等式20中。表中所示的时间是交替优化的单次迭代(即上述两步优化)。根据模型,预先计算时间的一半到90%用于计算每个句柄的蒙皮权重。
表1
总之,研究人员已经发现风格化的网格形变***为基于示例的网格形变提供了简单直观和表达的选择。形变可靠地从输入形状中抽出,并且当它们存在时它们之间也不会过度混合,也不会忽略合适的输入形状。此外,插值在空间上定位的这一事实避免了由全局混合产生的很多反直觉伪像,并且还使得风格化的网格形变***能够提供比否则必要的更小的一组输入形状。
现在转到图9,提供了关于风格化的网格形变***的一个实施例的部件和能力的附加细节。具体地,图9示出了示例性风格化的网格形变***900的实施例(例如,上面引用的风格化的网格形变***)。如图所示,风格化的网格形变***900可以包括但不限于用户输入检测器902、用户界面管理器904、输入网格管理器906、形变优化设备908、网格生成器910、动画引擎912和存储管理器914(包括输入网格914a、控制点914b、已形变网格914c和动画914d)。
如上所述,并且如图9所示,风格化的网格形变***900可以包括用户输入检测器902。用户输入检测器902可以检测、标识、监测、接收、处理、捕获和/或记录各种类型的用户输入。例如,用户输入检测器902可以关于用户界面和/或控制点检测一个或多个用户交互。特别地,用户输入检测器902可以关于经由用户界面描绘的控制点来检测点击、选择、拖动和/或释放事件的用户输入。
用户输入检测器902可以与任何数目的用户输入设备或计算设备(隔离或组合)一起操作,包括个人计算机、膝上型计算机、智能电话、智能手表、平板计算机、触摸屏设备、电视机、个人数字助手、鼠标设备、键盘、轨迹板或触笔设备。用户输入检测器902检测并且标识与用户输入设备的各种类型的用户交互,诸如按压事件、拖动事件、滚动事件、释放事件等。例如,在与风格化的网格形变***900相对应的客户端设备包括触摸屏的情况下,用户输入检测器902检测形成用户交互的来自用户的一个或多个触摸手势(例如,滑动手势、轻敲手势、捏合手势或反向捏合手势)。
如上所述,并且如图9所示,风格化的网格形变***900还包括用户界面管理器904。用户界面管理器904提供、管理和/或控制图形用户界面(或简称为“用户界面”)用于与风格化的网格形变***900一起使用。特别地,用户界面管理器904可以通过客户端设备(例如,计算设备104)的外部部件来促进信息的呈现。例如,用户界面管理器904可以通过与客户端设备相关联的显示屏幕来显示用户界面。用户界面可以由使得用户能够执行功能的多个图形部件、对象和/或元素组成。用户界面管理器904经由客户端设备呈现各种类型的信息,包括文本、图像、视频、音频、字符或其他信息。此外,用户界面管理器904提供特定于任何各种功能、程序、应用、插件、设备、操作***和/或客户端设备的部件的各种用户界面(例如,用户界面120)。此外,用户界面管理器904可以提供各种元素用于显示,包括输入网格、已修改网格和动画。
如图9所示,风格化的网格形变***900还包括输入网格管理器906。输入网格管理器906可以标识、接收、确定和/或生成一个或多个输入网格。特别地,输入网格管理器906可以标识反映具有一组公共顶点的公共数字网格的不同配置的输入网格。此外,输入网格管理器906可以关于一个或多个输入网格标识一个或多个控制点。例如,输入网格管理器906可以接收顶点的选择并且生成对应于顶点的控制点。此外,在一个或多个实施例中,风格化的网格形变***可以利用由风格化的网格形变***900生成的已修改网格作为未来的时间点的输入网格(例如,利用来自第一项目的已修改网格914c作为第二项目的输入网格914a)。
如图9所示,风格化的网格形变***900还包括形变优化设备908。形变优化设备908可以减少、最小化、优化和/或修改一个或多个度量来使输入网格发生形变。特别地,形变优化设备908可以优化组合的空间形状形变插值度量;尽可能刚性形变度量;ARAP组合的空间形状形变插值度量;ARAP形状空间形变度量;和/或ARAP输入网格形变插值度量。例如,形变优化设备908可以修改适用于输入网格的权重以优化一个或多个度量。此外,形变优化设备908可以跨越网格的不同部分可变地修改权重,以关于网格的特定部分优化一个或多个度量。此外,形变优化设备908可以如上所述同时或以不同的动作修改权重、平移和/或旋转。
如图9所示,风格化的网格形变***900还包括网格生成器910。网格生成器910可以创建、确定、提供和/或生成已修改网格。特别地,网格生成器910可以创建反映由形变优化设备908确定的优化度量的已修改网格。此外,网格生成器910可以提供已修改网格用于显示。
除了网格生成器910,如图9所示,风格化的网格形变***900还包括动画引擎912。特别地,动画引擎912可以创建、生成、确定和/或识别一个或多个动画。例如,动画引擎912可以基于多个已修改网格(例如,经由网格生成器910提供的已修改网格)来生成动画。特别地,动画引擎912可以基于对控制点的改变(例如,基于经由用户输入检测器902接收的指示由输入网格管理器906生成的控制点的移动的用户输入)来生成反映已修改网格的动画。
此外,如图9所示,风格化的网格形变***900还包括存储管理器914。存储管理器914维持用于执行风格化的网格形变***900的功能的数据。如图所示,存储管理器914包括输入网格914a、控制点914b、已修改网格914c和动画914d。
风格化的网格形变***900(如图9所示)的每个部件902-914可以使用任何合适的通信技术彼此通信。将会认识到,尽管风格化的网格形变***900的部件902-914在图9中被示出为分离,但是部件902-914中的任何部件可以组合成更少的部件,诸如组合成单个设备或模块,分成多个部件,或者配置成不同的部件,这可以用于特定实施例。
风格化的网格形变***900的部件902-914可以包括软件、硬件或两者。例如,部件902-914可以包括存储在计算机可读存储介质上并且由一个或多个计算设备的处理器可执行的一个或多个指令。在由一个或多个处理器执行时,风格化的网格形变***900的计算机可执行指令可以引起客户端设备和/或服务器设备执行本文中描述的方法。或者,部件902-914及其相应的元件可以包括硬件,诸如用于执行某个功能或功能组的专用处理设备。另外,部件902-914可以包括计算机可执行指令和硬件的组合。
此外,部件902-914可以例如被实现为一个或多个操作***,实现为一个或多个独立应用,实现为应用的一个或多个模块,实现为一个或多个插件,实现为可以被其他应用调用的一个或多个库函数或函数,和/或实现为云计算模型。因此,部件902-914可以被实现为独立应用,诸如桌面或移动应用。此外,部件902-914可以被实现为被托管在远程服务器上的一个或多个基于web的应用。部件902-914还可以以移动设备应用或“app”的形式来实现。为了说明,部件902-914可以在应用中实现,包括但不限于CHARACTER软件或ADOBE软件。“ADOBE”、“CHARACTER ANIMATOR”和“PHOTOSHOP”是在美国和/或其他国家的Adobe Systems Incorporated的注册商标或商标。
图10示出了风格化的网格形变***900可以在其中操作的示例性环境1000的一个实施例的示意图。在一个或多个实施例中,示例性环境1000包括一个或多个客户端设备1002a、1002b、…、1002n、网络1004和服务器1006。网络1004可以是计算设备可以通过其通信的任何合适的网络。下面关于图13更详细地讨论示例网络。
如图10所示,环境1000可以包括客户端设备1002a-1002n。客户端设备1002a-1002n可以包括任何计算设备。例如,在一个或多个实施例中,客户端设备1002a-1002n中的一个或多个包括下面关于图13描述的一个或多个计算设备。
此外,环境1000还可以包括服务器1006。服务器1006可以生成、存储、接收和传输任何类型的数据,包括输入网格914a、控制点914b、已修改网格914c和动画914d。例如,服务器1006可以向诸如客户端设备1002a等客户端设备传输数据。服务器1006还可以在环境1000的一个或多个用户之间传输电子消息。在一个示例实施例中,服务器1006包括内容服务器。服务器1006还可以包括通信服务器或网络托管服务器。下面关于图13讨论服务器1006的附加细节。
如图所示,在一个或多个实施例中,服务器1006可以包括风格化的网格形变***900的全部或部分。特别地,风格化的网格形变***900可以包括在服务器1006上运行的应用或者可以从服务器1006下载的软件应用的部分。例如,风格化的网格形变***900可以包括使得客户端设备1002a-1002n能够与被托管在服务器1006处的内容交互的web托管应用。为了说明,在示例性环境1000的一个或多个实施例中,一个或多个客户端设备1002a-1002n可以访问由服务器1006支持的网页。具体地,客户端设备1002a可以运行应用以允许用户访问、查看和/或与被托管在服务器1006处的网页或网站交互。
尽管图10示出了客户端设备1002a-1002n、网络1004和服务器1006的特定布置,但是各种附加布置是可能的。例如,虽然图10示出了经由网络1004与服务器1006通信的多个单独的客户端设备1002a-1002n,但是在一个或多个实施例中,单个客户端设备可以绕过网络1004直接与服务器1006通信。
类似地,尽管图10的环境1000被描绘为具有各种部件,环境1000可以具有附加的或替代的部件。例如,风格化的网格形变***900可以在单个计算设备上实现。特别地,风格化的网格形变***900可以由客户端设备1002a整体实现,或者风格化的网格形变***900可以由服务器1006整体实现。或者,风格化的网格形变***900可以跨越多个设备或部件实现(例如,利用客户端设备1002a-1002n和服务器1006)。
作为示例,在一个或多个实施例中,客户端设备1002a可以向服务器1006发送对于存储在服务器1006上的输入网格的请求。服务器1006可以提供多个网格(例如,经由输入网格管理器906和输入网格914a),以显示给客户端设备1002a(例如,经由用户界面管理器904)。客户端设备1002a可以提供(例如,经由用户输入检测器902)用于选择(例如,经由输入网格管理器906)用于生成已修改网格的输入网格的用户输入。此外,客户端设备1002a可以提供指示与输入网格相对应的一个或多个控制点的用户输入(例如,经由输入网格管理器906)。服务器1006可以提供具有控制点的初始网格(例如,所选择的输入网格之一)以显示给客户端设备1002a(例如,经由用户界面管理器904)。此外,客户端设备1002a可以提供指示一个或多个控制点的移动的用户输入(例如,经由用户输入检测器902)。作为响应,服务器1006可以生成已修改网格(例如,经由形变优化设备908和网格生成器910)。具体地,服务器1006可以优化ARAP组合形状空间形变插值度量并且确定用于组合所选择的输入网格的权重(例如,经由形变优化设备908)。此外,服务器1006可以基于ARAP组合的形状空间形变插值度量组合所选择的输入网格来生成已修改网格(例如,经由网格生成器910)。此外,服务器1006可以提供已修改网格以显示给客户端设备1002a(例如,经由动画引擎912)。
此外,服务器1006还可以存储已修改网格和/或利用已修改网格作为未来的输入网格(例如,经由存储管理器914和输入网格管理器906)。例如,风格化的网格形变***可以从客户端设备1002b接收对于存储在服务器1006上的输入网格的请求。作为响应,服务器1006可以向客户端设备1002b提供输入网格,包括由客户端设备1002a生成的已修改网格。
参考图1A-10、相应的文本和示例,提供了用于利用全路径空间学习来渲染虚拟环境的数字图像的很多不同的***和设备。除了上述之外,还可以在包括用于实现特定结果的方法中的动作和步骤的流程图方面来描述实施例。例如,图11-12示出了根据一个或多个实施例的示例性方法的流程图。关于图11-12描述的方法可以用更少或更多的步骤/动作来执行,或者步骤/动作可以以不同的顺序来执行。另外,本文中描述的步骤/动作可以彼此并行地或与相同或相似的步骤/动作的不同实例并行地重复或执行。
图11示出了根据一个或多个实施例的基于输入网格来生成已修改网格的方法1100中的一系列动作的流程图。在一个或多个实施例中,方法900在包括风格化的网格形变***900的数字媒体环境中执行。方法900旨在说明根据本公开的一种或多种方法,而非旨在限制潜在的实施例。替代实施例可以包括与图11-12中所示的那些相比的附加的、更少的或不同的步骤。
如图11所示,方法1100包括接收用于操纵数字模型的输入的动作1110。特别地,动作1110可以包括接收用于操纵由顶点网格定义的数字模型的输入,该输入包括数字模型的控制点向新的位置的移动的指示。
如图11所示,方法1100还包括标识多个输入网格的动作1120。特别地,动作1120可以包括标识数字模型的多个输入网格,每个输入网格包括按照不同配置的顶点网格
另外,如图11所示,方法1100还包括确定与多个输入网格相对应的尽可能刚性形变度量的动作1130。特别地,动作1130可以包括基于控制点到新的位置的移动来确定与多个输入网格相对应的尽可能刚性形变度量,其中尽可能刚性形变度量基于多个输入网格的平移和旋转量和用于组合多个输入网格的权重。例如,动作1130可以包括基于ARAP输入网格形变插值度量和ARAP形状空间形变度量来确定与将与控制点相对应的顶点移动到新的位置相关联的ARAP组合的形状空间形变插值度量。
为了说明,在一个或多个实施例中,动作1130包括基于用于将控制点移动到新的位置的每个输入网格的第一尽可能刚性形变度量与权重的乘积来确定ARAP输入网格形变插值度量;以及基于通过根据权重混合多个输入网格而生成的混合网格的第二尽可能刚性形变度量来确定ARAP形状空间形变度量。
此外,在一个或多个实施例中,动作1130包括基于顶点的第一子集从多个输入网格的第一转变集合、顶点的第一子集从多个输入网格的第一旋转集合、以及应用于多个输入网格的第一权重集合来确定顶点的第一子集的第一尽可能刚性形变度量;以及基于顶点的第二子集从多个输入网格的第二平移集合、公共顶点的第二子集从多个输入网格的第二旋转集合、以及应用于多个输入网格的第二权重集合来确定顶点的第二子集的第二尽可能刚性形变度量。
此外,如图11所示,方法1100还包括通过减少尽可能刚性形变度量基于多个输入网格来生成已修改网格的动作1140。特别地,动作1140可以包括通过修改多个输入网格的平移和旋转并且修改权重以减少尽可能刚性形变度量基于多个输入网格来生成已修改网格。例如,动作1140可以包括使与将与控制点相对应的顶点移动到新的位置相关联的ARAP组合的形状空间形变插值度量最小化。
为了说明,在一个或多个实施例中,动作1140包括基于多个输入网格的第一组合来生成已修改网格的第一已修改顶点;以及基于多个输入网格的第二组合来生成已修改网格的第二已修改顶点,其中第一组合不同于第二组合。例如,在一个或多个实施例中,第一组合基于应用于多个输入网格的第一权重集合;并且第二组合基于应用了多个输入网格的第二权重集合。
此外,在一个或多个实施例中,动作1140还包括在保持多个输入网格的旋转恒定的同时,修改多个输入网格的平移以及用于组合多个输入网格的权重以减少尽可能刚性形变度量;并且在保持多个输入网格的平移和用于组合多个输入网格的权重恒定的同时,修改多个输入网格的旋转以减少尽可能刚性形变度量。
此外,在一个或多个实施例中,已修改网格使组合的形状空间形变插值度量最小化。此外,在一个或多个实施例中,已修改网格反映多个输入网格与与位于新的位置处的控制点相对应的顶点的子集的组合。
此外,在一个或多个实施例中,已修改网格的第一顶点反映多个输入网格的第一组合,并且已修改网格的第二顶点反映多个输入网格的第二组合,其中第一组合和第二组合不同。例如,在一个或多个实施例中,多个输入网格的第一组合包括来自多个输入网格的第一输入网格集合;并且其中第二组合包括来自多个输入网格的第二输入网格集合,其中第一输入网格集合不同于第二输入网格集合。在其他实施例中,第一组合基于应用于来自多个输入网格的每个输入网格的第一权重;并且其中第二组合基于应用于来自多个输入网格的每个输入网格的第二权重。
此外,在一个或多个实施例中,方法1100还包括当控制点移动到新的位置时实时地生成动画,其中动画包括已修改网格。
实施例还可以在计算机实现的方法或***方面来描述。例如,一个或多个实施例包括一种在用于数字对象的基于计算机的操纵的数字媒体环境中的组合输入形状以生成已形变形状的计算机实现的方法,包括:
接收用于操纵由顶点网格定义的数字模型的输入,所述输入包括所述数字模型的控制点到新的位置的移动的指示;
标识所述数字模型的多个输入网格,每个输入网格包括按照不同配置的所述顶点网格;以及
基于组合的形状空间形变插值度量根据具有在所述新的位置的所述控制点的所述多个输入网格来生成已修改网格以操纵所述数字模型。
此外,所述方法还可以包括,其中所述已修改网格使所述组合形状空间形变插值度量最小化。
此外,所述方法还可以包括,其中所述已修改网格反映所述多个输入网格与与位于所述新的位置处的所述控制点相对应的所述顶点的子集的组合。
所述方法还可以包括,其中所述组合形状空间形变插值度量包括尽可能刚性形变度量,其中所述尽可能刚性形变度量基于所述多个输入网格的一个或多个顶点相对于所述多个输入网格的一个或多个相邻顶点的平移和旋转量来反映与刚性的局部偏离以生成所述已修改网格。
另外,所述方法还可以包括,其中所述已修改网格的第一顶点反映所述多个输入网格的第一组合,并且所述已修改网格的第二顶点反映所述多个输入网格的第二组合,其中所述第一组合和所述第二组合不同。
此外,所述方法还可以包括,其中所述多个输入网格的第一组合包括来自所述多个输入网格的第一输入网格集合;并且其中所述第二组合包括来自所述多个输入网格的第二输入网格集合,其中所述第一输入网格集合不同于所述第二输入网格集合。
所述方法还可以包括,其中所述第一组合基于应用于来自所述多个输入网格的每个输入网格的第一权重;并且其中所述第二组合基于应用于来自所述多个输入网格的每个输入网格的第二权重。
所述方法还可以包括当所述控制点移动到所述新的位置时实时地生成动画,其中所述动画包括所述已修改网格。
另外,一个或多个实施例包括一种在用于数字对象的基于计算机的操纵的数字介质环境中的操纵数字模型的计算机实现的方法,包括:
接收用于操纵由顶点网格定义的数字模型的输入,所述输入包括所述数字模型的控制点到新的位置的移动的指示;
标识所述数字模型的多个输入网格,每个输入网格包括按照不同配置的所述顶点网格;
基于所述控制点到所述新的位置的移动来确定与所述多个输入网格相对应的尽可能刚性形变度量,其中所述尽可能刚性形变度量基于所述多个输入网格的平移和旋转量以及用于组合所述多个输入网格的权重;以及
通过修改所述多个输入网格的平移和旋转并且修改所述权重以减小所述尽可能刚性形变度量基于所述多个输入网格来生成已修改网格。
所述方法还可以包括,其中确定所述尽可能刚性形变度量包括基于ARAP输入网格形变插值度量和ARAP形状空间形变度量二者来确定与将与所述控制点相对应的顶点移动到所述新的位置相关联的ARAP组合形状空间形变插值度量。
所述方法还可以包括:
基于用于将所述控制点移动到所述新的位置的每个输入网格的第一尽可能刚性形变度量与所述权重的乘积来确定所述ARAP输入网格形变插值度量;以及
基于通过根据所述权重混合所述多个输入网格而生成的第二尽可能刚性形变度量来确定所述ARAP形状空间形变度量。
所述方法还可以包括,其中生成所述已修改网格还包括使与将与所述控制点相对应的顶点移动到所述新的位置相关联的所述ARAP组合形状空间形变插值度量最小化。
所述方法还可以包括,其中确定所述尽可能刚性形变度量还包括:
基于所述顶点的第一子集从所述多个输入网格的第一平移集合、所述顶点的第一子集从所述多个输入网格的第一旋转集合、和应用于所述多个输入网格的第一权重集合来确定所述顶点的第一子集的第一尽可能刚性形变度量;以及
基于所述顶点的第二子集从所述多个输入网格的第二平移集合、公共顶点的第二子集从所述多个输入网格的第二旋转集合、和应用于所述多个输入网格的第二权重集合来确定所述顶点的第二子集的第二尽可能刚性形变度量。
此外,所述方法还可以包括,其中生成所述已修改网格还包括:
基于所述多个输入网格的第一组合来生成所述已修改网格的第一已修改顶点;以及
基于所述多个输入网格的第二组合来生成所述已修改网格的第二已修改顶点,其中所述第一组合不同于所述第二组合。
此外,所述方法还可以包括,其中所述第一组合基于应用于所述多个输入网格的第一权重集合;并且其中所述第二组合基于应用于所述多个输入网格的第二权重集合。
另外,所述方法还可以包括,修改所述多个输入网格的平移和旋转并且修改所述权重还包括:
在保持所述多个输入网格的旋转恒定的同时,修改所述多个输入网格的平移和用于组合所述多个输入网格的所述权重以减小所述尽可能刚性形变度量;以及
在保持所述多个输入网格的平移和用于组合所述多个输入网格的所述权重恒定的同时,修改所述多个输入网格的旋转以减小所述尽可能刚性形变度量。
另外,一个或多个实施例还包括一种用于根据现有的数字网格来有效地生成已修改数字网格的***,包括:
一个或多个存储器,包括:
由顶点网格定义的数字模型;
多个输入网格,其中每个输入网格包括按照不同配置的所述顶点网格;以及
与所述网格的至少一个顶点相对应的控制点;
存储有指令的至少一个服务器,所述指令在由所述至少一个服务器执行时引起所述***:
接收用于操纵所述数字模型的输入,所述输入包括所述数字模型的所述控制点到新的位置的移动的指示;
通过执行包括以下各项的步骤来确定与所述控制点到所述新的位置的移动相关联的组合形状空间形变插值度量:
基于用于将所述控制点移动到所述新的位置的每个输入网格的形变的度量与应用于每个输入网格的权重的乘积来确定输入网格形变插值度量;以及
基于通过根据所述权重混合所述多个输入网格而生成的混合网格的形变的度量来确定形状空间形变度量;以及
通过修改所述权重以减小所述组合形状空间形变插值度量来生成已修改数字网格。
所述***可以包括,其中所述组合形状空间形变插值度量包括尽可能刚性形变度量,其中所述尽可能刚性形变度量基于所述多个输入网格的一个或多个顶点相对于所述多个输入网格的一个或多个相邻顶点的平移和旋转量来反映与刚性的局部偏离。
另外,所述***还可以包括,其中:
所述输入网格形变插值度量包括:
所述顶点的第一子集的第一尽可能刚性形变度量与第一权重的第一乘积;
所述顶点的第二子集的第二尽可能刚性形变度量与第二权重的第二乘积;
通过根据所述第一权重从所述多个输入形状混合所述顶点的第一子集而生成的第一混合网格的第三尽可能刚性形变度量;以及
通过根据所述第二权重混合所述顶点的第二子集而生成的第二混合网格的第四尽可能刚性形变度量。
此外,所述***还可以包括在由所述至少一个服务器执行时引起所述***通过执行包括以下各项的步骤来生成增强的数字网格的指令:
基于所述多个输入网格的第一组合来生成所述已修改网格的第一已修改顶点;以及
基于所述多个输入网格的第二组合来生成所述已修改网格的第二已修改顶点,其中所述第一组合不同于所述第二组合。
图12示出了根据一个或多个实施例的基于输入网格来生成已修改网格的方法1200中的一系列动作的流程图。方法1200包括接收输入的动作1210,输入包括控制点的移动指示。特别地,动作1210包括接收用于操纵数字模型的输入,输入包括数字模型的控制点到新的位置的移动的指示。
如图12所示,方法1200还包括确定与控制点的移动相关联的组合的形状空间形变插值度量的动作1220。特别地,动作1220可以包括:通过以下方式来确定与控制点移动到新的位置相关联的组合的形状空间形变插值度量:基于用于将控制点移动到新的位置的每个输入网格的第一尽可能刚性形变度量与权重的乘积来确定输入网格形变插值度量;以及基于通过根据权重混合多个输入网格而生成的第二尽可能刚性形变度量来确定形状空间形变度量。
为了说明,在一个或多个实施例中,组合的形状空间形变插值度量包括尽可能刚性形变。特别地,组合的形状空间形变插值度量可以基于多个输入网格的一个或多个顶点相对于多个输入网格的一个或多个相邻顶点的平移和旋转量来反映与刚性的局部偏离以生成已修改网格。
此外,在一个或多个实施例中,输入网格形变插值度量包括顶点的第一子集的第一尽可能刚性形变度量和第一权重的第一乘积;以及顶点的第二子集的第二尽可能刚性形变量度和第二权重的第二乘积。另外,在一个或多个实施例中,形状空间形变度量包括通过根据第一权重混合来自多个输入形状的顶点的第一子集而生成的第一混合网格的第三尽可能刚性形变度量;以及通过根据第二权重混合顶点的第二子集而生成的第二混合网格的第四尽可能刚性形变度量。
此外,如图12所示,方法1200还包括通过减小组合的形状空间形变插值度量来生成已修改网格的动作1230。特别地,动作1230可以包括通过修改权重以减少组合的形状空间形变插值度量来生成已修改数字网格。例如,动作1230可以包括修改权重以使组合的形状空间形变插值度量最小化。
本公开的实施例可以包括或利用包括计算机硬件的专用或通用计算机,诸如例如一个或多个处理器和***存储器,如下面更详细地讨论的。在本公开的范围内的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。特别地,本文中描述的一个或多个过程可以至少部分地作为在非状态计算机可读介质中实施并且由一个或多个计算设备(例如,本文中描述的任何媒体内容访问设备)可执行的指令来实现。通常,处理器(例如,微处理器)从非状态计算机可读介质(例如,存储器等)接收指令,并且执行这些指令,由此执行一个或多个处理,包括本文所述的处理中的一个或多个。
计算机可读介质可以是可以由通用或专用计算机***访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非暂态计算机可读存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施例可以包括至少两种明显不同种类的计算机可读介质:非暂态计算机可读存储介质(设备)和传输介质。
非暂态计算机可读存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(“SSD”)(例如,基于RAM)、闪存、相变存储器(“PCM“)、其他类型的存储器、其他光盘存储器、磁盘存储器或其他磁存储设备、或者可以用于以计算机可执行指令或数据结构的形式存储所需程序代码装置并且可以由通用或专用计算机访问的任何其他介质。
此外,在到达各种计算机***部件时,计算机可执行指令或数据结构形式的程序代码装置可以自动地从传输介质转移到非暂态计算机可读存储介质(设备)(或反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓冲在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终被传送到计算机***RAM和/或计算机***中的更少易失性计算机存储介质(设备)。因此,应当理解,也(甚至主要地)利用传输介质的计算机***部件中可以包括非暂态计算机可读存储介质(设备)。
计算机可执行指令包括例如当在处理器处执行时引起通用计算机、专用计算机或专用处理设备执行某些功能或功能组的指令和数据。在一些实施例中,在通用计算机上执行计算机可执行指令以将通用计算机转变成实现本公开内容的元素的专用计算机。计算机可执行指令可以是例如二进制文件、诸如汇编语言等中间格式指令、或者甚至源代码。尽管已经以结构特征和/或方法动作特定的语言描述了主题,但是应当理解,所附权利要求中限定的主题不一定限于易失描述的特征或动作。相反,所描述的特征和动作被公开作为实现权利要求的示例形式。
本领域技术人员将理解,本公开可以在具有很多类型的计算机***配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器***、基于微处理器或可编程消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、平板计算机、寻呼机、路由器、交换机等。本公开还可以在分布式***环境中实践,其中通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)的本地和远程计算机***都执行任务。在分布式***环境中,程序模块可以位于本地和远程存储器存储设备中。
本公开的实施例还可以在云计算环境中实现。在本说明书中,“云计算”被定义为用于启用对可配置计算资源的共享池的按需网络访问的模型。例如,云计算可以在市场中使用,以为共享的可配置计算资源池提供无处不在且方便的按需访问。共享的可配置计算资源池可以经由虚拟化来快速地提供,并且以较低的管理工作量或服务提供商交互被发布,并且然后被相应地缩放。
云计算模型可以由各种特征组成,诸如例如按需自助服务、广泛的网络访问、资源池、快速弹性、所测量的服务等。云计算模型还可以公开各种服务模型,诸如例如软件即服务(SaaS)、平台即服务(PaaS)以及基础架构即服务(“IaaS”)。还可以使用不同的部署模式(诸如私有云、社区云、公共云、混合云等)来部署云计算模型。在本说明书和权利要求书中,“云计算环境”是其中采用云计算的环境。
图13以框图形式示出了可以被配置为执行上述过程中的一个或多个的示例性计算设备1300。将会理解,风格化的网格形变***900可以包括计算设备1300的实现。如图13所示,计算设备可以包括处理器1302、存储器1304、存储设备1306、I/O接口1308和通信接口1310。在某些实施例中,计算设备1300可以包括与图13所示的相比更少或更多的部件。现在将更加详细地描述图13所示的计算设备1300的部件。
在特定实施例中,处理器1302包括用于执行指令的硬件,诸如构成计算机程序的指令。作为示例而非限制,为了执行指令,处理器1302可以从内部寄存器、内部高速缓存、存储器1304或存储设备1306检索(或获取)指令,并且对其进行解码和执行。
计算设备1300包括耦合到处理器1302的存储器1304。存储器1304可以用于存储由处理器执行的数据、元数据和程序。存储器1304可以包括易失性和非易失性存储器中的一个或多个,诸如随机存取存储器(“RAM”)、只读存储器(“ROM”)、固态盘(“SSD”)、闪存、相位变化内存(“PCM”)或其他类型的数据存储装置。存储器1304可以是内部或分布式存储器。
计算设备1300包括存储设备1306,存储设备1306包括用于存储数据或指令的存储装置。作为示例而非限制,存储设备1306可以包括上述的非暂态存储介质。存储设备1306可以包括硬盘驱动器(HDD)、闪存、通用串行总线(USB)驱动器、或者这些或其他存储设备的组合。
计算设备1300还包括一个或多个输入或输出(“I/O”)设备/接口1308,其被提供以使得用户能够向计算设备1300提供输入(例如用户笔画),从计算设备1300接收输出,并且以其他方式向和从计算设备1300传送数据。这些I/O设备/接口1308可以包括鼠标、小键盘或键盘、触摸屏、相机、光学扫描器、网络接口、调制解调器、其他已知的I/O设备、或者这样的I/O设备/接口1308的组合。触摸屏可以用触笔或手指来激活。
I/O设备/接口1308可以包括用于向用户呈现输出的一个或多个设备,包括但不限于图形引擎、显示器(例如,显示屏幕)、一个或多个输出驱动器(例如,显示器驱动器)、一个或多个音频扬声器以及一个或多个音频驱动器。在某些实施例中,设备/接口1308被配置为向显示器提供图形数据以呈现给用户。图形数据可以代表可以用于特定实现的一个或多个图形用户界面和/或任何其他图形内容。
计算设备1300还可以包括通信接口1310。通信接口1310可以包括硬件、软件或两者。通信接口1310可以在计算设备与一个或多个其他计算设备1300或一个或多个网络之间提供用于通信(例如,基于分组的通信)的一个或多个接口。作为示例而非限制,通信接口1310可以包括用于与以太网或其他有线网络通信的网络接口控制器(NIC)或网络适配器、或者用于与无线网络通信的无线NIC(WNIC)或无线适配器,诸如WI-FI。计算设备1300还可以包括总线1312。总线1312可以包括将计算设备1300的部件彼此耦合的硬件、软件或二者。
在前面的说明书中,已经参考本发明的具体示例性实施例描述了本发明。本发明的各种实施例和方面参考本文中讨论的细节来描述,并且附图示出了各种实施例。上面的描述和附图是对本发明的说明,而不应当被解释为限制本发明。描述了很多具体细节以提供对本发明的各种实施例的透彻理解。
在不脱离本发明的精神或基本特征的情况下,本发明可以以其他具体形式来实施。所描述的实施例仅在所有方面被认为是说明性的而非限制性的。例如,本文中描述的方法可以用较少或更多的步骤/动作来执行,或者步骤/动作可以以不同的顺序执行。另外,本文中描述的步骤/动作可以彼此并行地或与相同或相似的步骤/动作的不同实例并行地重复或执行。因此,本发明的范围由所附权利要求而不是前面的描述来指示。在权利要求的等同方案的含义和范围内的所有变化将被包括在其范围内。
Claims (20)
1.一种在用于数字对象的基于计算机的操纵的数字介质环境中的组合输入形状以生成已形变形状的计算机实现的方法,包括:
接收用于操纵由顶点网格定义的数字模型的输入,所述输入包括所述数字模型的控制点到新的位置的移动的指示;
标识所述数字模型的多个输入网格,每个输入网格包括按照不同配置的所述顶点网格;以及
用于基于组合形状空间形变插值度量从具有在所述新的位置的所述控制点的所述多个输入网格中生成已修改网格以操纵所述数字模型的步骤。
2.根据权利要求1所述的方法,其中所述已修改网格使所述组合形状空间形变插值度量最小化。
3.根据权利要求1所述的方法,其中所述已修改网格反映所述多个输入网格和与位于所述新的位置处的所述控制点相对应的所述顶点的子集的组合。
4.根据权利要求1所述的方法,其中所述组合形状空间形变插值度量包括尽可能刚性形变度量,其中所述尽可能刚性形变度量基于所述多个输入网格的一个或多个顶点相对于所述多个输入网格的一个或多个相邻顶点的平移和旋转量来反映从刚性的局部偏离以生成所述已修改网格。
5.根据权利要求1所述的方法,其中所述已修改网格的第一顶点反映所述多个输入网格的第一组合,并且所述已修改网格的第二顶点反映所述多个输入网格的第二组合,其中所述第一组合和所述第二组合不同。
6.根据权利要求5所述的方法,其中所述多个输入网格的所述第一组合包括来自所述多个输入网格的第一输入网格集合;并且其中所述第二组合包括来自所述多个输入网格的第二输入网格集合,其中所述第一输入网格集合不同于所述第二输入网格集合。
7.根据权利要求5所述的方法,其中所述第一组合基于应用于来自所述多个输入网格的每个输入网格的第一权重;并且其中所述第二组合基于应用于来自所述多个输入网格的每个输入网格的第二权重。
8.根据权利要求1所述的方法,还包括当所述控制点移动到所述新的位置时实时地生成动画,其中所述动画包括所述已修改网格。
9.一种在用于数字对象的基于计算机的操纵的数字介质环境中的操纵数字模型的计算机实现的方法,包括:
接收用于操纵由顶点网格定义的数字模型的输入,所述输入包括所述数字模型的控制点到新的位置的移动的指示;
标识所述数字模型的多个输入网格,每个输入网格包括按照不同配置的所述顶点网格;
基于所述控制点到所述新的位置的所述移动来确定与所述多个输入网格相对应的尽可能刚性形变度量,其中所述尽可能刚性形变度量基于所述多个输入网格的平移和旋转量以及用于组合所述多个输入网格的权重;以及
通过修改所述多个输入网格的所述平移和所述旋转并且修改所述权重以减小所述尽可能刚性形变度量、基于所述多个输入网格来生成已修改网格。
10.根据权利要求9所述的方法,其中确定所述尽可能刚性形变度量包括基于ARAP输入网格形变插值度量和ARAP形状空间形变度量二者来确定与将与所述控制点相对应的所述顶点移动到所述新的位置相关联的ARAP组合形状空间形变插值度量。
11.根据权利要求10所述的方法,还包括:
基于用于将所述控制点移动到所述新的位置的每个输入网格的第一尽可能刚性形变度量与所述权重的乘积来确定所述ARAP输入网格形变插值度量;以及
基于通过根据所述权重混合所述多个输入网格而生成的混合网格的第二尽可能刚性形变度量来确定所述ARAP形状空间形变度量。
12.根据权利要求11所述的方法,其中生成所述已修改网格还包括使所述ARAP组合形状空间形变插值度量最小化,所述ARAP组合形状空间形变插值度量与将与所述控制点相对应的所述顶点移动到所述新的位置相关联。
13.根据权利要求9所述的方法,其中确定所述尽可能刚性形变度量还包括:
基于所述顶点的第一子集从所述多个输入网格的第一平移集合、所述顶点的所述第一子集从所述多个输入网格的第一旋转集合、和应用于所述多个输入网格的第一权重集合来确定针对所述顶点的所述第一子集的第一尽可能刚性形变度量;以及
基于所述顶点的第二子集从所述多个输入网格的第二平移集合、公共顶点的第二子集从所述多个输入网格的第二旋转集合、和应用于所述多个输入网格的第二权重集合来确定针对所述顶点的所述第二子集的第二尽可能刚性形变度量。
14.根据权利要求13所述的方法,其中生成所述已修改网格还包括:
基于所述多个输入网格的第一组合来生成所述已修改网格的第一已修改顶点;以及
基于所述多个输入网格的第二组合来生成所述已修改网格的第二已修改顶点,其中所述第一组合不同于所述第二组合。
15.根据权利要求14所述的方法,其中所述第一组合基于应用于所述多个输入网格的第一权重集合;并且其中所述第二组合基于应用于所述多个输入网格的第二权重集合。
16.根据权利要求9所述的方法,其中修改所述多个输入网格的平移和旋转并且修改所述权重还包括:
在保持所述多个输入网格的所述旋转恒定的同时,修改所述多个输入网格的所述平移和用于组合所述多个输入网格的所述权重以减小所述尽可能刚性形变度量;以及
在保持所述多个输入网格的所述平移和用于组合所述多个输入网格的所述权重恒定的同时,修改所述多个输入网格的所述旋转以减小所述尽可能刚性形变度量。
17.一种用于根据现有的数字网格来有效地生成已修改数字网格的***,包括:
一个或多个存储器,包括:
由顶点网格定义的数字模型;
多个输入网格,其中每个输入网格包括按照不同配置的所述顶点网格;以及
与所述网格的至少一个顶点相对应的控制点;
存储有指令的至少一个服务器,所述指令在由所述至少一个服务器执行时引起所述***:
接收用于操纵所述数字模型的输入,所述输入包括所述数字模型的所述控制点到新的位置的移动的指示;
通过执行包括以下各项的步骤来确定与所述控制点到所述新的位置的移动相关联的组合形状空间形变插值度量:
基于用于将所述控制点移动到所述新的位置的每个输入网格的形变的度量与应用于每个输入网格的权重的乘积来确定输入网格形变插值度量;以及
基于通过根据所述权重混合所述多个输入网格而生成的混合网格的形变的度量来确定形状空间形变度量;以及
通过修改所述权重以减小所述组合形状空间形变插值度量来生成已修改数字网格。
18.根据权利要求17所述的***,其中所述组合形状空间形变插值度量包括尽可能刚性形变度量,其中所述尽可能刚性形变度量基于所述多个输入网格的一个或多个顶点相对于所述多个输入网格的一个或多个相邻顶点的平移和旋转量来反映从刚性的局部偏离。
19.根据权利要求17所述的***,其中:
所述输入网格形变插值度量包括:
所述顶点的第一子集的第一尽可能刚性形变度量与第一权重的第一乘积;
以及所述顶点的第二子集的第二尽可能刚性形变度量与第二权重的第二乘积;以及
所述形状空间形变度量包括:
通过根据所述第一权重混合来自所述多个输入形状的所述顶点的所述第一子集而生成的第一混合网格的第三尽可能刚性形变度量;以及
通过根据所述第二权重混合所述顶点的所述第二子集而生成的第二混合网格的第四尽可能刚性形变度量。
20.根据权利要求17所述的***,还包括在由所述至少一个服务器执行时引起所述***通过执行包括以下各项的步骤来生成增强的数字网格的指令:
基于所述多个输入网格的第一组合来生成所述已修改网格的第一已修改顶点;以及
基于所述多个输入网格的第二组合来生成所述已修改网格的第二已修改顶点,其中所述第一组合不同于所述第二组合。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662420163P | 2016-11-10 | 2016-11-10 | |
US62/420,163 | 2016-11-10 | ||
US15/439,736 | 2017-02-22 | ||
US15/439,736 US10140764B2 (en) | 2016-11-10 | 2017-02-22 | Generating efficient, stylized mesh deformations using a plurality of input meshes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108074284A true CN108074284A (zh) | 2018-05-25 |
CN108074284B CN108074284B (zh) | 2023-10-13 |
Family
ID=62064039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710819189.0A Active CN108074284B (zh) | 2016-11-10 | 2017-09-12 | 使用多个输入网格生成有效的风格化的网格形变 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10140764B2 (zh) |
CN (1) | CN108074284B (zh) |
AU (1) | AU2017225016B2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110766607A (zh) * | 2018-07-25 | 2020-02-07 | 北京市商汤科技开发有限公司 | 一种图像处理方法、装置和计算机存储介质 |
CN112037290A (zh) * | 2020-08-28 | 2020-12-04 | 中科三清科技有限公司 | 数据处理方法、装置及设备 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017040905A1 (en) * | 2015-09-03 | 2017-03-09 | Stc.Unm | Accelerated precomputation of reduced deformable models |
US10140764B2 (en) | 2016-11-10 | 2018-11-27 | Adobe Systems Incorporated | Generating efficient, stylized mesh deformations using a plurality of input meshes |
US20180357819A1 (en) * | 2017-06-13 | 2018-12-13 | Fotonation Limited | Method for generating a set of annotated images |
US11393168B2 (en) * | 2017-11-14 | 2022-07-19 | Ziva Dynamics Inc. | Generating an anatomy based on weights of selected template anatomies |
US20190370422A1 (en) * | 2018-06-05 | 2019-12-05 | Ziva Dynamics Inc. | Method and system for simulating deformation of a thin-shell material |
US10628918B2 (en) * | 2018-09-25 | 2020-04-21 | Adobe Inc. | Generating enhanced digital content using piecewise parametric patch deformations |
US10706500B2 (en) * | 2018-09-25 | 2020-07-07 | Adobe Inc. | Generating enhanced digital content using piecewise parametric patch deformations |
US10832376B2 (en) | 2018-09-25 | 2020-11-10 | Adobe Inc. | Generating enhanced digital content using piecewise parametric patch deformations |
JP2022509916A (ja) * | 2018-10-31 | 2022-01-25 | ソウル マシーンズ リミティド | モーフターゲットアニメーション |
KR20210096285A (ko) * | 2018-12-13 | 2021-08-04 | 삼성전자주식회사 | 3차원 메쉬 컨텐트를 압축하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 |
US10878610B1 (en) * | 2019-09-27 | 2020-12-29 | Big Fish Games, Inc. | Generating an animation feature from line deformations |
CN111159954B (zh) * | 2020-01-02 | 2023-04-14 | 株洲时代新材料科技股份有限公司 | 用于弹性元件的自由型面网格布局及有限元分析方法、***及介质 |
EP4111420A4 (en) * | 2020-02-26 | 2024-04-24 | Soul Machines Limited | FACE MESH NETWORK DEFORMATION WITH DETAILED WRINKLES |
KR102272569B1 (ko) * | 2020-05-26 | 2021-07-05 | 한국과학기술원 | 웨이블릿 기반 변형된 거대 메쉬 데이터의 점진적 고속 재압축 방법 및 그 시스템 |
US11593979B2 (en) | 2021-04-28 | 2023-02-28 | Adobe Inc. | Editing raster images utilizing part-level semantic aware transformations |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071514A (zh) * | 2006-05-12 | 2007-11-14 | 中国科学院自动化研究所 | 一种直接传递三维模型姿态的方法 |
US20090002376A1 (en) * | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Gradient Domain Editing of Animated Meshes |
US20090284529A1 (en) * | 2008-05-13 | 2009-11-19 | Edilson De Aguiar | Systems, methods and devices for motion capture using video imaging |
US20100033488A1 (en) * | 2008-08-11 | 2010-02-11 | Microsoft Corporation | Example-Based Motion Detail Enrichment in Real-Time |
CN101794462A (zh) * | 2010-03-12 | 2010-08-04 | 中山大学 | 一种基于纹理的三维网格模型变形方法及*** |
CN101916454A (zh) * | 2010-04-08 | 2010-12-15 | 董洪伟 | 基于网格变形和连续优化的高分辨率人脸重建方法 |
US20110292034A1 (en) * | 2008-11-24 | 2011-12-01 | Mixamo, Inc. | Real time concurrent design of shape, texture, and motion for 3d character animation |
US20120092340A1 (en) * | 2010-10-19 | 2012-04-19 | Apple Inc. | Systems, methods, and computer-readable media for manipulating graphical objects |
CN102447901A (zh) * | 2010-09-01 | 2012-05-09 | 微软公司 | 用于改进的高速缓存和图像分类的自适应网格生成 |
KR20120072128A (ko) * | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | 디지털 클론 생성 장치 및 방법 |
CN102903138A (zh) * | 2012-08-30 | 2013-01-30 | 浙江工商大学 | 一种考虑形状的二维数字角色骨架操作方法 |
US20130120457A1 (en) * | 2010-02-26 | 2013-05-16 | Jovan Popovic | Methods and Apparatus for Manipulating Images and Objects Within Images |
US20140267306A1 (en) * | 2013-03-15 | 2014-09-18 | Disney Enterprises, Inc. | Content aware texture mapping on deformable surfaces |
CN104077798A (zh) * | 2014-07-01 | 2014-10-01 | 中国科学技术大学 | 一种可形变物体的高真实感动画合成方法 |
US20150029198A1 (en) * | 2013-07-29 | 2015-01-29 | Pixar | Motion control of active deformable objects |
US8970628B1 (en) * | 2009-03-02 | 2015-03-03 | Pixar | Graphical user interface for performing deformations |
CN104508709A (zh) * | 2012-07-31 | 2015-04-08 | 微软公司 | 使用人体对对象进行动画化 |
US20150206344A1 (en) * | 2014-01-21 | 2015-07-23 | Adobe Systems Incorporated | 3D Model Enhancement |
CN104915921A (zh) * | 2015-05-25 | 2015-09-16 | 浙江大学 | 基于三角网格变形的内容保持的几何边界图像映射方法 |
CN105427364A (zh) * | 2015-11-06 | 2016-03-23 | 厦门大学 | 一种多点触控二维动画的制作方法 |
US20170140574A1 (en) * | 2015-03-20 | 2017-05-18 | Kabushiki Kaisha Toshiba | Image processing device and image processing method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140764B2 (en) | 2016-11-10 | 2018-11-27 | Adobe Systems Incorporated | Generating efficient, stylized mesh deformations using a plurality of input meshes |
-
2017
- 2017-02-22 US US15/439,736 patent/US10140764B2/en active Active
- 2017-09-05 AU AU2017225016A patent/AU2017225016B2/en active Active
- 2017-09-12 CN CN201710819189.0A patent/CN108074284B/zh active Active
-
2018
- 2018-10-03 US US16/150,687 patent/US10600243B2/en active Active
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071514A (zh) * | 2006-05-12 | 2007-11-14 | 中国科学院自动化研究所 | 一种直接传递三维模型姿态的方法 |
US20090002376A1 (en) * | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Gradient Domain Editing of Animated Meshes |
US20090284529A1 (en) * | 2008-05-13 | 2009-11-19 | Edilson De Aguiar | Systems, methods and devices for motion capture using video imaging |
US20100033488A1 (en) * | 2008-08-11 | 2010-02-11 | Microsoft Corporation | Example-Based Motion Detail Enrichment in Real-Time |
US20110292034A1 (en) * | 2008-11-24 | 2011-12-01 | Mixamo, Inc. | Real time concurrent design of shape, texture, and motion for 3d character animation |
US8970628B1 (en) * | 2009-03-02 | 2015-03-03 | Pixar | Graphical user interface for performing deformations |
US20130120457A1 (en) * | 2010-02-26 | 2013-05-16 | Jovan Popovic | Methods and Apparatus for Manipulating Images and Objects Within Images |
CN101794462A (zh) * | 2010-03-12 | 2010-08-04 | 中山大学 | 一种基于纹理的三维网格模型变形方法及*** |
CN101916454A (zh) * | 2010-04-08 | 2010-12-15 | 董洪伟 | 基于网格变形和连续优化的高分辨率人脸重建方法 |
CN102447901A (zh) * | 2010-09-01 | 2012-05-09 | 微软公司 | 用于改进的高速缓存和图像分类的自适应网格生成 |
US20120092340A1 (en) * | 2010-10-19 | 2012-04-19 | Apple Inc. | Systems, methods, and computer-readable media for manipulating graphical objects |
KR20120072128A (ko) * | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | 디지털 클론 생성 장치 및 방법 |
CN104508709A (zh) * | 2012-07-31 | 2015-04-08 | 微软公司 | 使用人体对对象进行动画化 |
CN102903138A (zh) * | 2012-08-30 | 2013-01-30 | 浙江工商大学 | 一种考虑形状的二维数字角色骨架操作方法 |
US20140267306A1 (en) * | 2013-03-15 | 2014-09-18 | Disney Enterprises, Inc. | Content aware texture mapping on deformable surfaces |
US20150029198A1 (en) * | 2013-07-29 | 2015-01-29 | Pixar | Motion control of active deformable objects |
US20150206344A1 (en) * | 2014-01-21 | 2015-07-23 | Adobe Systems Incorporated | 3D Model Enhancement |
CN104077798A (zh) * | 2014-07-01 | 2014-10-01 | 中国科学技术大学 | 一种可形变物体的高真实感动画合成方法 |
US20170140574A1 (en) * | 2015-03-20 | 2017-05-18 | Kabushiki Kaisha Toshiba | Image processing device and image processing method |
CN104915921A (zh) * | 2015-05-25 | 2015-09-16 | 浙江大学 | 基于三角网格变形的内容保持的几何边界图像映射方法 |
CN105427364A (zh) * | 2015-11-06 | 2016-03-23 | 厦门大学 | 一种多点触控二维动画的制作方法 |
Non-Patent Citations (12)
Title |
---|
WEI PENG等: "As-rigid-as-possible mesh deformation and its application in hexahedral mesh generation", 《ENGINEERING》 * |
WEI PENG等: "As-rigid-as-possible mesh deformation and its application in hexahedral mesh generation", 《ENGINEERING》, 1 November 2013 (2013-11-01) * |
何艳丽,吴其永,杨宏林: "形式代数在空间网格结构中的应用", 《计算机工程与应用》 * |
何艳丽,吴其永,杨宏林: "形式代数在空间网格结构中的应用", 《计算机工程与应用》, no. 03, 9 March 1999 (1999-03-09) * |
徐寅;刘利刚;: "基于自适应细分的保刚性变形算法", 计算机辅助设计与图形学学报, no. 06, pages 57 - 64 * |
杜正君等: "体积图控制的近似刚性的网格变形", 《计算机辅助设计与图形学学报》 * |
杜正君等: "体积图控制的近似刚性的网格变形", 《计算机辅助设计与图形学学报》, no. 02, 15 February 2016 (2016-02-15) * |
蒋莉等: "骨架驱动的MLS卡通角色变形", 《计算机辅助设计与图形学学报》 * |
蒋莉等: "骨架驱动的MLS卡通角色变形", 《计算机辅助设计与图形学学报》, no. 05, 15 May 2011 (2011-05-15) * |
赵勇;刘新国;彭群生;: "基于四面体控制网格的模型变形算法", 计算机辅助设计与图形学学报, no. 09, pages 38 - 45 * |
赵勇等: "基于四面体控制网格的模型变形算法", 《计算机辅助设计与图形学学报》 * |
赵勇等: "基于四面体控制网格的模型变形算法", 《计算机辅助设计与图形学学报》, no. 09, 15 September 2008 (2008-09-15) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110766607A (zh) * | 2018-07-25 | 2020-02-07 | 北京市商汤科技开发有限公司 | 一种图像处理方法、装置和计算机存储介质 |
CN112037290A (zh) * | 2020-08-28 | 2020-12-04 | 中科三清科技有限公司 | 数据处理方法、装置及设备 |
CN112037290B (zh) * | 2020-08-28 | 2021-05-11 | 中科三清科技有限公司 | 数据处理方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
US20180130256A1 (en) | 2018-05-10 |
US20190035151A1 (en) | 2019-01-31 |
CN108074284B (zh) | 2023-10-13 |
AU2017225016A1 (en) | 2018-05-24 |
US10600243B2 (en) | 2020-03-24 |
US10140764B2 (en) | 2018-11-27 |
AU2017225016B2 (en) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108074284A (zh) | 使用多个输入网格生成有效的风格化的网格形变 | |
US11328523B2 (en) | Image composites using a generative neural network | |
Frishman et al. | Multi-level graph layout on the GPU | |
Dwyer | Scalable, versatile and simple constrained graph layout | |
US7570264B2 (en) | Rig baking | |
CN110009721A (zh) | 生成由曲线表示的图像的三角网格 | |
WO2006106863A1 (ja) | 画像処理システムおよび画像処理プログラム | |
US20120039503A1 (en) | System and method for constructing a three dimensional operational graphic from a two dimensional building control subsystem drawing | |
CN106471551B (zh) | 用于将现有3d模型转换成图形数据的方法和*** | |
KR100809523B1 (ko) | 3차원 비사실적 렌더링을 위한 확장성이 있는 스타일 기반의 통합 프레임워크 및 이러한 프레임워크의 구성 시스템 및 방법 | |
Gao et al. | Data‐driven shape interpolation and morphing editing | |
WO2013055914A2 (en) | Systems and methods for creating texture exemplars | |
Chen et al. | Rigidity controllable as-rigid-as-possible shape deformation | |
Zhu et al. | High-quality tree structures modelling using local convolution surface approximation | |
Nobel-Jørgensen et al. | 3D interactive topology optimization on hand-held devices | |
Angelidis et al. | Sweepers: Swept user-defined tools for modeling by deformation | |
Baxter et al. | Latent doodle space | |
Chen et al. | Skeleton-driven surface deformation through lattices for real-time character animation | |
Draper et al. | A Gestural Interface to Free-Form Deformation. | |
Alhashim et al. | Detail-replicating shape stretching | |
Yang et al. | Deep 3d modeling of human bodies from freehand sketching | |
Han et al. | Efficient paper mosaic rendering on mobile devices based on position-based tiling | |
GB2556412B (en) | Generating efficient, stylized mesh deformations using a plurality of input meshes | |
Angelidis et al. | Sweepers: Swept deformation defined by gesture | |
US20240169672A1 (en) | Modeling interfaces with progressive cloth simulation |
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 |