用于使用曲面法向约束的曲面膨胀的方法和装置的制作方法

文档序号:6578148阅读:306来源:国知局
专利名称:用于使用曲面法向约束的曲面膨胀的方法和装置的制作方法
技术领域
相关纟支术描述
在计算机辅助图像设计中,基于草图(sketch)的接口已经成为用于快速三维(3D)形状建模的流行方法。随着建模特征集合不断增加,功能强大的3D草图绘制接口可以构造从直线工业对象到平滑有组织形状的形状。通常,这些形状草图绘制接口的应用是3D形状设计。用户绘制的二维(2D)曲线仅是获得3D形状这一最终结果的手段。
当前,在容易获得的2D艺术设计软件中,存在几种3D形状建模工具。 一种通常使用的建模原语是形状挤压,其中封闭2D曲线沿着直线(或曲线)进行扫掠(sweep)以创建棱柱形状。与挤压类似的是曲线旋转,其中曲线绕轴旋转,以构造旋转对称的形状。另一种常用的原语是倒角(beveling),其中对输入的2D曲线进行偏移和提升,以提供具有厚度和尖锐边缘的3D形状的外观。这些3D建模原语受到其能够支持的曲面特征类型的限制。例如,传统的图像设计应用不支持在经过倒角的图像内部添加尖锐褶皱。一种当前的研究努力是改进2D设计工具中可能的曲面编辑的范围。研究领域包括虛拟浮雕,以及更一般地,基于功能的曲面建模系统。这两者使用隐式曲面表示来对其曲面进行建模(出于绘制目的,曲面被交互地多边形化)。

发明内容
描述了用于利用三维(3D)几何学对二维(2D)艺术作品进行交互式增强的方法和装置的各种实施例。曲面膨胀工具的实施例可以用来通过对插值曲面的输入边界的曲面进行膨胀来创建3D形状。曲面膨胀工具的一个实施例例如可以获得封闭的2D曲线(或边界)作为输入;对该边界内的区域进行细化(例如,三角剖分),以生成初始曲面;以及在保持固定边界的同时对该曲面进行膨胀。使用针对边界顶点而指定的约束或者存储在边界顶点处的约束,实施例可以使用单个线性系统来有效地控制经膨胀的曲面。 一个实施例可以使用曲面法向约束作为边界条件。 一个实施例可以^吏用平均曲率约束或曲面法向约束作为边界约束。在一个实施例中,可以使用平均曲率约束和曲面法向约束作为边界约束;例如,可以在外边界的一部分上使用平均曲率约束,并且可以在相同外边界的另一部分上或内边界上使用曲面法向约束。因此,可以在将要膨胀的对象上对内边界或外边界应用平均曲率约束和/或曲面法向约束。实施例处理平滑位置约束和尖锐位置约束两者。位置约束顶点还可以具有曲率约束,以用于控制局部曲面的膨胀。
曲面膨胀工具的实施例可以使用膨胀隐喻(metaphor),并且可以允许平滑内边界和尖锐内边界二者作为直接描绘在已膨胀曲面上以修改该曲面的约束曲线。实施例可以使用曲面法向和/或平均曲率约束来控制膨胀量,不同于传统方法,这允许将问题公式化为单个线性系统。使用膨胀隐喻,实施例可以构造插值封闭输入边界的3D曲面。实施例允许设计者利用3D形状建模特征(诸如尖锐褶皱)、平滑插值曲线和局部曲率控制或曲面法向控制来修改膨胀的曲面。
10实施例证明可以有效地使用可在3D形状建模工具中找到的其它成
熟几何建模技术来设计感兴趣的视图。
在一个实施例中,对于曲面法向约束,可以在边界上并沿着尖
锐曲线引入虚像顶点(ghost vertex )。在一个实施例中,还引入有助于基于图像建模领域的约束,尤其是像素位置约束,其规定顶点可以沿着矢量(例如,来自相机视点的矢量)自由地靠近或者远离,只要其总是投影到同一个像素。 一个实施例可以允许用户指定这些像素上的曲面法向约束,从而实现目标曲面定向而不需要显式地指定深度。
由于实施例在开放边界上满足曲面法向约束,实施例还可以用作基于面片(patch)的建模系统,其中每个面片都是独立求解的线性系统,其中曲面法向约束保证了面片边界处的连续性。
曲面膨胀工具的实施例可以通过对插值给定的输入边界集合的曲面进行膨胀,从而创建3D形状。曲面膨胀工具可被一见为3D "边面片表示,可以围绕其建立更大的建模系统。例如,实施例可^皮用于膨胀包括字体边界的2D矢量艺术作品。实施例还可以在基于图像的建模应用(诸如2D图像的膨胀)中用作基本原语。


图1示出了使用曲面膨胀工具的一个实施例的曲面膨胀结果的例子。
图2a到图2c示出了根据一个实施例的曲面膨胀工具中的工作流程。
图3是根据一个实施例的曲面膨胀方法的流程图。图4示出了根据一个实施例的网格顶点和单环邻居。图5示出了根据一个实施例的位置^的网格顶点和单环邻居yi。图6是根据实施例的用于重新初始化和求解线性系统的方法的一般流程图。
图7a到图7d示出了根据一个实施例的用于添加约束的步骤。图8a到图8c示出了根据一个实施例的定向位置约束。图9示出了根据一个实施例的像素位置约束。图10a到图10e示出了根据一个实施例的3D字体i殳计的例子。图lla到图lld示出了根据一个实施例的笔划设计的例子。图12a和图12b示出了根据一个实施例的照片膨胀的例子。图13a到图13h图示了根据一个实施例的自由形式3D形状设计。图14a到图14b根据一个实施例示出了利用平滑位置约束以及使用曲面法向约束指定的边界处的凹角而生成的示例曲面。
图15a和图15b根据一个实施例示出了利用平滑位置约束以及使用曲面法向约束指定的边界处的平面角而生成的示例曲面。
图16a和图16b根据一个实施例示出了利用平滑位置约束以及使用曲面法向约束指定的边界处的凸角而生成的示例曲面。
图17a到图17c根据某些实施例示出了使用曲面法向约束来修改示例曲面的内边界处的角。
图18示出了曲面膨胀工具的示例实施例。图19示出了可以在实施例中使用的计算机系统的例子。虽然以若干实施例和示范'性附图的例子描述了本发明,本领域的技术人员将认识到本发明不限于描述的实施例或附图。应当理解,附图和其详细描述不旨在将本发明局限为公开的特定形式,而是相反,本发明覆盖落在本发明的精神和范围内的所有修改、等同物和替换。此处使用的标题仅是出于组织目的,并且不意味着用于限制说明的范围。在本申请中,单词"可以,,用于允许含义(即,意口未着具有可能),而不是强制含义(即,意味着必需)。类似地,单词"包括"("include", "including",和"includes")的含义是包含而非限制。
具体实施例方式
在下面的详细描述中,记载了若干具体细节,以提供对要求保护的主题内容的透彻理解。然而,本领域的技术人员应当理解,可以实现所要求的主题内容而不使用这些具体细节。在其他情况下,未详细描述本领域的技术人员了解的方法、装置或系统,以免使得
所要求的主题内容不明确。
下文详细描述中的某些部分是按照存储在特定装置或专用计算 设备或平台的存储器内的二进制数字信号的操作的算法或符号表示 给出的。在本特定说明书的上下文中,术语"特定装置"等包括通用 计算机,其之前被编程以便按照程序软件中的指令执行特定功能。 算法描述或符号表示是信号处理或相关领域的技术人员用于将其工
法 一般被认为是获取所希望结果的操作或类似信号处理的自给序 列。在这个上下文中,操作或处理涉及物理量的物理操作。通常, 虽然不必要,这些量可以采用能够被存储、传输、组合、比较或操 作的电子或磁信号的形式。已经证实,有时,主要出于公共使用的 原因,将这种信号称为位、数据、值、元素、符号、字符、项、数 字、数值等是方便的。然而应当理解,所有这些或类似的术语与适 当的物理量相关联,并且仅是方便的标记。除非特定说明,从下面 讨论中可以明了,应当理解在整个说明书的讨论中,使用术语诸如
"处理","计算"("computing", "calculating"),"确定"等指示特定装 置诸如专用计算机或类似的专用电子计算设备的活动或处理。因此 在本说明书的上下文中,专用计算机或类似的专用电子计算设备能 够操纵或传输通常被表示为专用计算机或类似的专用电子计算设备 的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的 物理的电或磁量值信号。
描述了用于利用三维(3D)几何学对二维(2D)艺术作品进行 交互式增强的方法和装置的各种实施例。可以使用曲面膨胀方法的 实施例(其实现为或实现在工具、模块、插件、独立应用等中)通 过对插值输入边界的曲面进行膨胀来创建和修改3D形状。为了简单 起见,此处描述的曲面膨胀方法的实施例的实现将被总称为曲面膨 胀工具。实施例可以在以下一个或多个中使用,但不限于此字体 设计,笔划设计,照片增强和自由形式3D形状设计。各种实施例可以使用平均曲率约束、曲面法向约束、或平均曲 率约束和曲面法向约束的组合作为控制膨胀的边界条件。曲面的平 均曲率是曲率的外在测量,其局部地描述曲面的曲率。因此,平均 曲率约束是特定边界位置处(即,外边界或内边界上的特定点或顶
的曲面法向(或简称法向)是垂直于该曲面的一个矢量。类似地, 非平坦曲面的曲面法向是垂直于该曲面上某点处的切平面的矢量。
因此,曲面法向约束规定在曲面上的这一点处(即,曲面外边界
或内边界上的某点处),曲面法向指向指定的方向。作为例子,用
户可能希望在边界上的某点处,曲面法向朝向面外45度,以生成 45度的倒角,并且因此可以将该点处曲面法向约束设置为45度。可 以在特定边界位置处(即,外边界或内边界上的特定点或顶点)或 者针对外边界或内边界的特定段来指定曲面法向约束值。
一个实施例可以使用平均曲率约束作为边界条件。 一个实施例 可以使用曲面法向约束作为边界条件。 一个实施例可以^:用平均曲 率约束或曲面法向约束作为边界条件。在一个实施例中,可以使用 平均曲率约束和曲面法向约束两者作为边界条件;例如,可在边界 的一部分上使用平均曲率约束,而在同一边界的另一个部分上或在 其他边界上使用曲面法向约束。可将平均曲率约束和/或曲面法向约 束应用于将要膨胀的曲面的内边界或外边界。在实施例中,可以针 对边界上不同位置处的曲率约束而指定不同的值。实施例可以提供 一个或多个用户接口元件,通过该元件用户可以指定或修改边界位 置处的约束值。实施例可以提供一个或多个用户接口元件,通过该 元件用户可以添加、删除或修改外边界或内边界。
外边界和内边界的例子例如参见图13a和图13b。图13a和图13b 中阴影曲面的外部边界是外边界的例子。图13b中"眼睛"上的两条 白线是内边界的例子。注意,内边界可以是单个点、开放的线或曲 线或者封闭边界。由于在膨胀过程中边界的位置是固定的,外边界 和内边界两者可被认为是对曲面的一类"约束"。因此,此处内边界
14和外边界可总称为位置约束。
除了位置约束(外边界和内边界)、平均曲率约束和曲面法向 约束之外,某些实施例可以允许指定其他类型的约束。例如, 一个 实施例可以允许在曲面上的点或者区域处指定像素位置约束;像素 位置约束可用于限制沿着矢量的膨胀。例如,像素位置约束可被用 于将膨胀限制于Z轴,并且因此防止曲面沿^和7轴发生不希望的移 动。作为另一个例子, 一个实施例可以允纟午为曲面法向约束添加定 向的位置约束。某些实施例还可以允许针对曲面的区域或部分指定 任意流向,或是针对整个曲面来指定。 一个例子是导致曲面"向下" 流动的重力操作。
不论是使用平均曲率约束、曲面法向约束或是两者,实施例可 以利用线性变分曲面编辑技术的特性来执行实际的膨胀。线性变分 曲面编辑技术使用某阶的拉普拉斯算子来求解平滑曲面,其可以提 供简单性和高效性,但是由于某些局限性而尚未针对基于草图的建
模接口进行完整探究。然而,如此处所示,实施例中可以利用这些
局限性来获得附加的艺术自由度。对于3D建模的某些领域,特别是 对于2D建模(例如,3D字体设计)和基于面片的建模,实施例可 以通过利用线性变分曲面编辑技术的特性来提供效率、稳定性和附 加的控制。
与使用隐式曲面表示进行曲面建模的传统方法相反,实施例可 以使用多边形(例如,三角形)网格对给定的曲线进行膨胀。实施 例可以使用膨胀隐喻而不使用弦轴。实施例可以允许直接描绘在经 膨胀的曲面上的平滑内边界和尖锐内边界两者对该曲面进行修改。 与传统方法相反,实施例实现一种线性系统并且逐步解决其缺陷, 而不是使用无法确保收敛的、较慢的迭代非线性求解器。另外,实 施例可以提供比传统方法更大范围的建模操作。尽管这种方法可能 不允许将整个网格作为统 一 系统来进行求解,但实施例仍提供了 一 种可能对于用户来说更为直观的备选的基于面片的方法,这是因为 传统方法中的全局解可能导致曲面编辑趋于具有失败的全局效果。虽然通常将实施例描述为使用三角网格,但是也可以使用其他多边
形网格。
通过将存储在边界顶点处或针对边界顶点而指定的平均曲率值 或曲面法向值用作自由度,实施例能够使用单个线性系统来有效地 控制曲面的膨胀。实施例可以处理平滑位置约束和尖锐位置约束两 者。位置约束顶点也可以具有曲率约束,以用于控制局部曲面的膨胀。
通常,形状草图绘制接口的应用是在3D形状设计中。传统上, 用户绘制的二维(2D)边界仅意味着3D形状这一最终结果的开始。 不同于使用2D边界来设计3D形状,实施例可以使用作为结果得到 的插值的3D形状来增强已有的2D边界。即,实施例可以将形状草 图绘制接口应用于另 一个感兴趣的应用2D艺术作品的创作和设计。
使用膨胀隐喻,实施例可以构造插值封闭输入边界的3D曲面。 实施例允许设计者利用3D形状建模特征(诸如尖锐褶皱)、平滑插 值曲线和局部曲率控制来^f奮改膨胀的曲面。实施例i正明,可以有效 地使用可在3D形状建模工具中找到的其它成熟的几何建模技术来 设计感兴趣的视图。图1示出了使用此处描述的曲面膨胀工具的一 个实施例的曲面膨胀的结果的例子。在这个例子中,输入单词 "Hello!"作为字体轮廓(边界,位置约束),添加了边界条件(平 均曲率和/或曲面法向约束),并且使用曲面膨胀方法的一个实施例
来按照该约束对字符的曲面进行膨胀。
曲面膨胀工具的实施例构造插值 一 个或多个输入边界的二维流 形曲面。可以将曲面作为变分问题的解进行计算。可以对曲面膨胀 工具所实施的曲面膨胀方法进行公式化,以便在单个稀疏线性等式 中对最终曲面进行求解,在一个实施例中,这不需要边界处的额外 三角形条带。在采用平均曲率约束的实施例中,边界上的顶点的平 均曲率是自由度;可以通过增加这些平均曲率值来对该曲面进行膨 胀。在采用曲面法向约束的实施例中,可以使用附加的虛像顶点来 控制内部以及曲面边界处的曲面法向;在这个实施例中,可以通过调整曲面法向约束、并由此使边界的虚顶点围绕边界旋转来对曲面 进行膨胀。由于变分设置,除了位置约束附近之外,膨胀的曲面是 平滑的。设计者可以在设计阶段的任意时间添加、删除或修改内边 界和约束,并且这些内边界和约束可以是平滑的或尖锐的。在一个 实施例中,内边界还可以具有曲率控制或曲面法向控制(类似于外 边界),从而允许设计者对内边界附近的曲面进行局部膨胀或收缩。 在一个实施例中,外边界和/或内边界可以具有拉伸控制,这允许设 计者扩展符合目标曲率约束或曲面法向约束的区域。在 一 个实施例 中,约束可被指定为像素位置约束,这意味着这些约束将其顶点约 束为从某个原始照相机视角看,总是投影到相同像素。
曲面膨胀工具的实施例可以使用膨胀隐喻,并且允许用于直接 描绘在膨胀的曲面上的平滑位置约束和尖锐位置约束二者对曲面进 行修改。实施例可以使用平均曲率约束和/或曲面法向约束来控制膨 胀量,与传统方法不同,这允许将问题公式化为单个线性系统。
曲面膨胀工具的应用可以包括但不限于以下一个或多个字体 设计、笔划设计、增强照片或其他图像、以及从头开始建立3D形状 模型,在各个附图中示出了其例子。曲面膨胀工具的某些实施例例 如可实现为2D艺术作品设计工具(诸如八(10&6@111118&&10^和GNU Gimp)的插件,或实现为其他类型的图像处理应用的插件。其他实 施例例如可以实现为独立的程序或工具,或实现为库函tt。曲面膨 胀工具的各种实施例可以获得、操纵和输出按照各种数字图像格式 中任意一种的数字图像。
工作棘
图2a到图2c示出了根据一个实施例的曲面膨胀工具中的工作流 程的例子。如图2a所示,输入外边界曲线。对输入边界(图2a)所 限定的平坦区域进行细化。在一个实施例中,使用三角形来细化。 增加边界约束(平均曲率约束和/或曲面法向约束),并且对得到的 曲面(图2b)进行膨胀(图2c)。在这个例子中,例如可以在诸如八(1(^£@1111^^化^的艺术作品设计工具中创作2D边界,并且将其作 为简单的折线逼近来读取。在各种实施例中,可以使用获得输入2D 边界的其他方法。
图3是根据一个实施例的曲面膨胀方法的流程图。如100所示, 曲面膨胀工具以封闭2D边界作为输入。如102所示,曲面膨胀工具 对外边界内的区域进行细化(例如,三角剖分),以生成初始曲面。 如104所示,可以为输入边界添加边界约束(平均曲率约束和/或曲 面法向约束)。还可以针对将要膨胀的曲面指定或应用其他约束和/ 或选项,诸如像素位置约束和任意流选项。如106所示,曲面膨胀 工具根据指定的约束和选项对曲面进行膨胀,同时保持所膨胀对象 的固定边界。
三角剖分
如图3的102所示,曲面膨胀工具对外边界内的区域进行细化, 以生成初始曲面。在执行细化时,曲面膨胀工具的某些实施例可将 曲面表示限制为三角网格,该三角网格是通过对外边界内的曲面进 行三角剖分而获得的。可以使用各种三角剖分方法中的任意一种来 生成高质量的三角剖分。某些实施例可以对三角形保持最大面积约 束(这可以作为三角剖分方法中的可配置选项而提供)以防止由于 非常大的三角形而出现的绘制赝像。
由于网格自适应性,使用三角网格(与规则网格相反)来对膨 胀的曲面进行求解的优点是网格适应性效率高可以将三角网格指 定为仅在复杂约束附近具有高度的细节,而在没有很多约束处是粗 糙的。在一个实施例中,在对曲面进行膨胀时,不对网格连接关系 进行更新。在其他实施例中,在具有高曲率的膨胀形状的部分中, 可以动态地加密网格,这可以更为高效,并且使绘制更为平滑。
曲面膨月长
如图3的106所示,曲面膨胀工具根据指定的约束对曲面进行膨胀,同时保持固定的边界。在曲面膨胀方法的一个实施例中,可 以通过求解保持曲面平滑的变分系统来获得曲面的未约束部分。可 以保持平滑度,这是因为它为膨胀的曲面提供了有机的外观,并且 从曲面中去除了任何不自然和不必要的隆起和褶皱。
在一个实施例中,变分公式可以根据基于偏微分方程(PDE)的 边界约束建模的原理,其中,对某些美学能量泛函的欧拉-拉格朗 日方程进行求解,以生成平滑的曲面。 一个实施例可以使用"薄板样
条"作为期望的曲面;相应的欧拉-拉格朗日方程是双调和方程。在
这个实施例中,对于位置x处的所有自由顶点,求解PDEA2(;c)=
0。该PDE的解产生各处C2连续的曲面,只有位置约束处例外(曲 面在此可能是C、戈C。连续)。 一个实施例可以使用拉普拉斯算子 A(x)的基于余切权重的离散化。
交互地求解四阶PDE (A2 ( x ) =0)可能太'隄。因此, 一个实 施方式假设在求解过程中曲面的参数化不改变,从而将非线性问题 转换为线性问题。在实践中,这意味着用于拉普拉斯公式的余切 权重仅计算一次(使用平坦的未膨胀曲面),并且随后在对曲面进 行膨胀时不发生改变。这种近似已被广泛地用于构造平滑形状形变, 但是在某些情况下它可能明显不同于正确的解。不同于利用较慢的、 有时发散的、迭代的非线性求解器对其进行修正,实施例可以设置 该线性解的特征,并且使用其突然弯曲(quirk)来提供艺术作品控 制的额外维度。
在求解器中使用线性系统的优点是线性系统具有唯 一 解。相反, 非线性系统可能产生多个解(例如,全局和局部最小值)。因此, 使用非线性系统,求解器可能陷入局部最小值,这可能产生不希望 的解(即,可能未找到全局最优值)。不同的非线性求解器可能获 得不同的局部最小值。因此,使用线性系统可以提供一致性和效率。 对使用线性系统的 一种权衡是得到的曲面可能不像非线性系统的 全局最优解那样平滑。然而对于艺术作品而言,线性系统产生的解 就足够了 。线性系统
平均曲率约束实施例
下面描述根据使用平均曲率约束的实施例的变分线性系统的公 式表述。在这些实施例中,可以实现线性系统^ = ^,其中矩阵^是 稀疏的nX"矩阵(其中"是自由顶点数目的3倍),其表示顶点及其 邻居之间的局部几何关系。长度为"的矢量i表示自由顶点的位置, 并且长度为"的矢量f表示已知的量。对于每个自由顶点的所有三个 坐标,以公式表示对于顶点的邻居而言是线性的方程。在一个实施 例中,该公式表示可以主要基于离散几何建模方法。本领域中已经 描述了一种方法用于对可以处理平滑或尖锐内部约束的线性系统进
行公式化;不幸的是,该公式表示需要三角形的条带,以便使边界
顶点的单环邻域是完整的。生成这个三角形条带并不简单,尤其是 当边界曲线具有较大凹度时。另外,本领域中已经描述了一种曲面 建模系统,其采用(^边界约束并且不需要边界上的特殊三角形条
带。然而,该曲面建模系统需要两个线性解 一个针对平均曲率标 量场,而另一个针对满足所计算的平均曲率场的位置。曲面膨胀方 法的实施例结合了这两种方法的益处。在这种结合中,使用平均曲 率约束的曲面膨胀方法的实施例不需要边界上的三角形条带来执行 膨胀,并且仅求解一个线性系统。这是可行的,因为该曲面膨胀方 法将边界顶点处的平均曲率视为自由度,其可以用来对该曲面进行 膨胀。
一个实施例可以使用共轭梯度实现来求解线性系统^ = ^ 。由于 矩阵j是稀疏的、对称的和正定的,其他实施例可以对该矩阵进行 因式分解,这可以减少迭代更新次数。例如,在一个实施例中,可 以执行矩阵j的Cholesky分解,并且在一个实施例中,可以使用直 接求解器来求解该线性系统。在其他实施例中,可以使用其他求解 器来求解该线性系统。例如,可以使用稀疏Cholesky求解器或共辄 梯度求解器。还可以使用其他技术诸如多重网格求解器。图4示出了根据一个实施例的位置x的网格顶点和单环邻居y,。 图4示出了下面的方程中使用的各个变量。顶点x具有位于边界上的
邻居y。和jM (受约束的平均曲率)和具有完整单环邻域的内部邻居
n,",少4 (未约束的平均曲率)。通过对在所有顶点处具有如下 等于0的双重拉普拉斯算子的平面进行求解,可以获得所需要的c2
平滑的曲面
△2O) = A(Ax) = 0 (1)
网格顶点处的拉普拉斯算子由其单环邻域给出。可以使用离散
拉普拉斯算子,例如可以使用针对网格而定义的Laplace-Beltrami算 子
其中w,是正则化的余切权重,并且l是一个标量项,其包括改进
拉普拉斯算子逼近的、顶点x周围的加权面积^。注意,在各种实施
例中,可以使用用于网格的其他拉普拉斯算子。代入方程(1):
/f 、
zfx =-Zl x-=0 (2)
、 , 乂
由于A是线性算子
△2x = Ax - Z w,Ay, =0 ( 3 )
考虑图4的情况,其中某些单环邻居在网格内部,并且某些在
边界上。假设给出边界顶点的平均曲率作为约束。假设".表示平
均曲率、已知的单环顶点。对于这些顶点,可以-使用表达式
A少,(、 )/2来简单地计算拉普拉斯算子。将这些已知的拉普拉斯算
子移到方程(3)的右侧,获得以下方程
△2x = 0H J>,A_y,. ( 4 )
注意,项(、 )/2实质上表示由相邻顶点"施加于顶点x的力,
其方向 ,大小为0.5、。在某些实施例中,力施加于初始顶点法向
少/ 少,z
的方向上(平坦配置中的法向-Z轴)。 一个实施例不使用膨胀状态 中的顶点法向,这是由于可能产生路径相关的、不直观的非线性顶点运动。
因此,通过增加、的值,增加顶点x上力的大小,有效地将其提升。
最后,展开公式(3)中具有未知平均曲率的顶点的拉普拉斯算 子,以便得到自由顶点x的线性方程
少,'
/ y/ 、
(5)
针对每个自由顶点构造这种方程将产生线性系统^=^,该线性 系统的解提供膨胀的曲面。
曲面法向约束实施例
下面描述根据使用曲面法向约束的实施例的变分线性系统的公 式表述。在这些实施例中,可以实现线性系统^ ="其中矩阵J是 稀疏的mx"矩降(其中"是自由顶点数目的3倍),其表示顶点及其 邻居之间的局部几何关系。长度为"的矢量^表示自由顶点的位置, 并且长度为"的矢量f表示已知的量。对于每个自由顶点的所有三个 坐标,以公式表示对于顶点的邻居而言是线性的方程。在这个实施 例中,公式表示可以主要基于离散几何建模方法,其中添加了约束 类型。在本领域中已经描述了一种方法,用于对可以处理平滑或尖 锐内部约束的线性系统进行公式化,;不幸的是,该公式表示需要 三角形条带,以便使边界顶点的单环邻域是完整的。生成这个三角 形带并不容易,尤其是当边界曲线具有较大凹度时。因此,使用曲 面法向约束的曲面膨胀工具的实施例提供了 一种利用局部修正的 "虚像"顶点来"伪造"这些三角形的方法。
图5示出了根据一个实施例的位置x的网格顶点和单环邻居y,。
图5示出了下面方程中使用的各个变量。顶点;c具有位于边界上的邻
居^0和JM,以及具有完整单环邻域的内部邻居少2, ", JM。每个边 界顶点都具有自己的虛像顶点以及两个相应的虚像三角形(例如,
具有虚像顶点g),以便人为地提供所需要的单环邻域。
考虑如图5所示的位置;c的网格顶点和单环邻居;;i。通过对在所有顶点处具有如下等于0的双重拉普拉斯算子的平面进行求解,可 以获得所需要的C^平滑曲面 A2(x) = A(Ax) = 0 (6)
网格顶点处的拉普拉斯算子由其单环邻域给出
其中w,是以顶点面积的倒数进行了缩放的非正则化余切权重。代入
等式(6):
<formula>formula see original document page 23</formula>由于A是线性算子
<formula>formula see original document page 23</formula>
其最终展开为
<formula>formula see original document page 23</formula>其中^是指使单环完整所需的虛像顶点。在一个实施例中,受约束 的顶点可以视为绝对约束,因此其位置被移动到系统的右侧。由于
对系统进行过度约束(over-constrain )并且在最小平方的意义上满足 其他类型的约束可能是方便的,因此在一个实施例中,通过以下的 的倒数来缩放整个方程
, 、
从而使得误差量将与位置差成比例,并且不会以任何面积或平均曲 率值来缩放。针对每个自由顶点构造这种方程将给出线性系统 ^ = 5,该线性系统的解提供了膨胀的曲面。由于构造不是对称的, 并且可以是过度约束的,因此可以使用常规的方程来对其求解。
虚像顶点的放置
在一个实施例中,对于网^"曲面的每个面片,可以布l/没标准 视角(canonical view )方向是已知的;其例如可以是拍摄原始照片 的方向,或是描绘原始边界约束的方向。可以得到"向上"矢量,其指向该标准视角的相机。然后可将虛像顶点放置在垂直于该"向上" 矢量的平面内,并且其法向指向其父顶点的约束曲线。在一个实施 例中,每个虚像顶点可被放置在距离该曲线相同的固定距离d处。例
如,在图5中,假设一个从纸面"向外的矢量,虚像顶点g被定位在
然后可以围绕约束曲线(边界)的切线旋转虚像顶点,以便改 变法向方向。
注意,可以针对外边界和内边界两者增加虛像顶点。 内部约束
在实施例中,用户可以在膨胀的曲面上的任意位置描绘内边界 作为内部位置约束,以便自动地获得在适当位置具有新的内边界的 新膨胀曲面。用户还可以为内边界指定边界约束(平均曲率约束和/ 或曲面法向约束)。在增加了新的内边界之后,需要重新初始化以
及求解线性系统^ 图6是根据这些实施例的重新初始化和求解
线性系统的方法的 一 般流程图。针对具有平均曲率约束的内边界而
执行的重新求解可以不同于针对具有曲面法向约束的内边界而执行
的重新求解。
如200所示,将边界顶点平均曲率改变为0,并且将所有内部位 置约束移动到其2D位置,从而将现有曲面展平(没有新的内边界)。 如202所示,通过使用展平的三角网格内的重心坐标,来计算新的 内边界顶点的2D位置。如204所示,在内边界的2D位置的制约下, 对外边界所限定的区域进行细化(例如,三角剖分)。如206所示, 对得到的曲面进行重新膨胀。在一个实施例中,对于平均曲率约束, 上述过程可以这样来执行将边界顶点平均曲率设置为初始值,并 且将位置约束曲线移动到其原来的位置。在一个实施例中,对于曲 面法向约束,可以这样来对得到的曲面进行重新膨胀将位置约束 曲线移动到其原来位置,并且针对自由顶点的位置重新求解该系统。
图7a到图7d示出的例子显示了根据实施例的上述用于增加内边界的方法。假设用户希望得到尖锐的内边界。如图7a所示,用户 可以在膨胀的曲面上描绘内边界。用户可以针对新的内边界添加平 均曲率约束和/或曲面法向约束。如果需要,用户还可以针对外边界 来增加、去除或修改平均曲率约束和/或曲面法向约束。还可以针对 曲面来增加、去除或修改其他约束,诸如像素位置约束。如图7b所 示,曲面膨胀工具将膨胀的曲面展平,并且计算内边界的2D位置。 然后,如图7c所示,曲面膨胀工具在新内边界的制约下重新细化该 区域,重新膨胀曲面,并且在一个实施例中,将内边界移动到其原 始位置,以便生成如图7d所示的新的膨胀曲面。在一个实施例中, 可以对用户透明地执行图7b和图7c所示的操作。
位置约束的平滑度
在一个实施例中,可以指定平滑(C1)或尖锐(CQ)的位置约 束。可以通过为方程(5)或方程(9)中的受约束顶点指派权重来 改变平滑度值。在一个实施例中,控制位置约束平滑度的权重可以 取0 ( C。连续)到1 ( c'连续)之间的任意浮点值。然而,在一个
实施例中,仅具有两个选项(平滑/尖锐)、并且对于所有顶点描绘 具有固定的平滑度的位置约束可能是有用的。其它实施例可以允许
在各个位置约束之间改变平滑度。图14a到图17c示出了平滑/尖锐
位置约束的某些例子。
曲率约束
在一个实施例中,曲率约束可以与位置约束一起指定。当修改 曲率约束的值时,曲面被修改,使得约束点处的平均曲率的近似与 曲率约束的值相匹配。可以使用曲率约束来对受到位置约束的顶点 周围的曲面进行局部地膨胀或收缩。由此,实施例可以提供基于草 图的建模姿态。在一个实施例中,曲率约束的初始值被设置为0,但 是在其它实施例中,初始值可被设置为任何任意值。
25约束选项
为顶点设定平均曲率约束或曲面法向约束是沿着与初始的平坦 曲面相垂直的方向给其单环邻居施加力的一种间4妻方法。然而,在 某些实施例中,可以修改默认行为,并且可以在任意方向上施加附 加的力。作为例子,在一个实施例中,可以给曲率约束增加"重力" 选项,其中在略微向下的方向上施加另一个力(方程(5)的右侧), 使得整个曲面向下弯曲。这例如可以用于创建位于垂直面上的粘性
材料的图示。例如,参见图llb和图13h。在某些实施例中,可以指 定"向下"之外的其它方向,以便使得曲面在指定的方向上流动。
定向位置约束
在 一 个实施例中,针对曲面法向约束而描述的虚 <象顶点这 一 才既 念可以扩展到内边界,其可用于控制曲面沿着该内边界的朝向。在 一个实施例中,为了这么做,如图8a到图8c所示,可以修改计算 受约束顶点处的拉普拉斯算子的方式。如从图8a到图8c中可见, 除了开放的内边界的端点之外,虚像拉普拉斯算子自然地扩展到内 边界;此处,不再有曲线的良定义侧(尤其对于仅是单个点的内边 界),并且因此需要不同的方法来计算拉普拉斯算子。在一个实施 例中,可以仅使用其双重拉普拉斯算子正被计算的发起顶点x以及相 对的虛像顶点g作为受约束顶点的"单环",这样来定义这种退化情况 中的拉普拉斯算子。由于顶点面积和余切权重的计量没有扩展到这 种情况,可以使用来自发起顶点的、经过面积正则化的余切斥又重的 和。该方法继而令两个顶点同等地共享该权重和。因此,拉普拉斯 算子可定义为
<formula>formula see original document page 26</formula>
图8a到图8c示出了根据一个实施例的定向位置约束。图8a中 示出了内部定向位置约束。在计算顶点;c的双重拉普拉斯算子时,一 个实施例可以通过创建虚像g来计算;;处的拉普拉斯算子,因此如图 8b所示,顶点y的单环是( X , ", g" , W 2 )。〉主 意,^位于约束线的末端,因此,为了计算其拉普拉斯算子,取而代之将g沿着从x到"! 的矢量放置,并且仅使用顶点x、 ^和g来计算M处的拉普拉斯算子。
像素位置约束
图9示出了根据一个实施例的像素位置约束。参考图9,像素位 置约束允许顶点^沿着矢量d自由地移动。用户可能希望这样来约束 曲面上的顶点(或区域)从给定的视角看,其总是投影到屏幕空 间中的相同位置,而并非完全约束该顶点或区域的位置。在一个实 施例中,为了这样做,可以通过称为像素位置约束的附加约束来对 线性系统进行过度约束。可以将这些约束作为针对与照相机光线d _ 01和02正交的两个任意单位矢量的两个线性约束而写入矩阵。对于 具有初始位置p,的点p,约束方程是。,.(/ -;/)=(),并且对于。2也是如 此。
注意,在没有像素位置约束的情况下,可以针对x, j;和z单独 书写线性系统,但是对于任意像素位置约束,x、 y和z可以任意耦
合。这可能具有性能代价,因为矩阵将大9倍。因此,对于形式较
不自由的应用,通过仅针对轴对齐的正交视角实施像素位置约束来 保持系统去耦合可能是有用的。在这些情况下,可以这样来简单地
实现约束在两个维度中固定顶点坐标,而使其在第三维度中是自 由的。
像素位置约束可与平均曲率约束、曲面法向约束、或平均曲率 约束和曲面法向约束的组合一起使用。
混合像素位置和定向约束
在许多情况下,定向和像素位置是已知的,但是艺术家可能不 希望完全固定位置,例如,在对脸进行建模时,鼻子处可能存在某 个角度,但是艺术家可能仍然希望在对人物的脸颊进行膨胀时允许 平滑地移动鼻子。为了允许这样, 一个实施例可以混合像素位置和 定向约束。顶点失去其双调和平滑度约束,并且获得虚像顶点和像素位置约束。虚像顶点是相对于像素位置约束的自由顶点而指定的, 不是绝对地指定的。然而,对于其增加的每两个像素位置行,这去 除了矩阵中的三个双调和约束行(假i殳耦合系统),这4吏得系统约 束过少。因此,可能需要附加的约束。在一个实施例中,对于第一
附加约束,可以观察到当用户描绘像素位置约束线条时,他们很 可能希望该线条保持一定的平滑度或初始形状。因此,对于约束线 上的相邻顶点A、化(其分别被允许沿着矢量力和^移动), 一个 实施例可以将顶点约束为满足
(Pl-p2).W+4)/2 = 0
由于该系统仍然缺少一个约束, 一个实施例可以增加附加约束,
该附加约束规定约束线末端处的拉普拉斯算子(不使用任何虚像 顶点计算)应当与所期望的值(通过虛像顶点相对于约束曲线的定 位可知)相匹配。缩放这些拉普拉斯算子约束将调整受约束顶点移 动的程度,以便满足法向约束。
使用线性化
在此描述的系统是线性系统,因为正如在某些原始配置中计算 的,已经使得非线性区域和余切项成为常量。可以这样来理解线性 化除了实际曲率之外,允许将三角形的"拉伸(stretch)"视作曲率; 因此,三角形拉伸+曲率而非仅仅是曲率中,变分得以最小化。在 某些实施例中,可以通过有意地拉伸三角形来对此加以利用例如, 通过有意地移动虚像顶点,可以增加其效果区域。这类似于沿着曲 线的切线移动贝塞尔(Bezier)控制点。
如果所有控制顶点是共面的,线性化还可以使解向着一个平面 折叠(collapse)。当边界处的虚像顶点被旋转为共面并且位于形状 内部时,从而导致平坦的对折形状时,可以在系统中看到这种情况。 然而,在一个实施例中,可以通过允许将系统用作基于面片的建模 系统,其中虚像顶点强制面片边界之间的C^连续性,从而避免利用 单个线性系统来建模这种形状的需要。实施例的应用
下面描述曲面膨胀工具的实施例的应用的某些例子,这并非旨 在限制。
3D字体设计
曲面膨胀工具的实施例的应用可以为字体设计。可以对字体字 符的轮廓进行膨胀,以提供字体深度。另外,可以通过增加平滑位 置约束或尖锐位置约束以及边界约束(平均曲率约束或曲面法向约 束或两者)来控制和增强膨胀字符的形状。
图10a到图10e示出了根据一个实施例的3D字体设计的例子。 如图10a所示,读入字母"A"作为一对封闭边界曲线(外边界)。如 图10b所示,提高受约束的边界顶点处的平均曲率,从而对输入曲 线所限定的曲面进行膨胀。接着,如图10c所示,读入内部偏移曲 线作为曲率和尖锐位置约束。如图10d所示,提升内部曲线以给出 倒角的效果,并且继而如图10e所示,通过提高曲线顶点处的曲率 来4吏其更加尖锐。
笔划设计
除了对已经完整输入的2D曲线(诸如字体轮廓)进行膨胀之外, 还可以使用曲面膨胀工具的实施例作为在生成2D元素时对2D元素 进行膨胀的工具。 一个例子是笔划。当前,诸如Adobe Illustrator 的艺术作品工具支持具有各种画笔形状、厚度和入射角度的笔划。 实施例可以允许增加笔划的另一种选项深度。通过改变笔划边界 处的平均曲率或曲面法向,可以在实施例中实现变化的笔划深度。 另外,在一个实施例中,可以提供笔划的中轴作为约束曲线,这进 一步增加了可能的笔划形状的范围。
图lla到图lld示出了根据一个实施例的笔划设计的例子。如 图lla所示,使用曲面膨胀工具对画笔笔划轮廓进行膨胀。如图lib
29所示,可以选择重力选项,以产生颜料滴落的效果。如图llc所示, 增加笔划的轴作为尖锐位置约束。如图lld所示,通过对曲面的其 余部分进行膨胀来产生具有凹槽的笔划。
照片膨胀
曲面膨胀工具的实施例的另 一 个应用可以是照片膨胀,或更一 般地,数字图像膨胀。例如,使用曲面膨胀工具,通过在图像上描 绘和操纵位置约束,用户可以交互地为输入的照片或其他数字图像 增加深度。作为另一个例子,可以使用工具(诸如边界追踪或对象 定位工具)来自动地定位图像(例如数字照片)上的边界,并且可 将该边界输入曲面膨胀工具,以作为位置约束。位置约束可以是平 滑的(对于包含圆边的图像)、尖锐的(矩形的图像)或其组合。 可以针对图像上的边界指定平均曲率约束、曲面法向约束或这两种 类型的边界约束。
图12a和图12b示出了根据一个实施例的照片膨胀的例子。在 这个例子中,使用曲面膨胀工具对泰姬陵(Taj Mahal)的数字照片 进行膨胀。如图12a中的白线所示,指定不同类型的位置约束曲线 (例如,平滑的、尖锐的以及曲率约束的),以定义膨胀的形状。在 图12a中,白色实线表示尖锐位置约束,而黑的虛线表示平滑位置 约束。尖锐位置约束是曲面满足位置约束曲线、但是越过位置约束 曲线上而没有保持几何平滑度之处。平滑位置约束是曲面满足位置 约束曲线、同时越过位置约束曲线而保持平滑度之处。与虚线相关 联的方块表示已被选择来指定位置约束的位置。例如,线段末端的 两个方块表示被选择用来指定这两个方块之间的线段的位置。在一 个实施例中,可以通过该位置处进行鼠标点击来选4,由方块表示的 位置。作为例子,在泰姬陵最上部的f顶中,具有不同深度级别的 平滑曲线(虚线)的四个不同的点产生膨胀的常顶形状。围绕着f 顶的尖锐位置约束曲线(白色实线)防止膨胀传播到弯顶之外。在 指定所希望的约束之后,使用在此描述的曲面膨胀方法来膨胀图像以生成如图12b所示的膨胀的图像。 3D形状建模
曲面膨胀工具的实施例可被用于任意3D形状的自由形式设计。 通过添加平滑和/或尖锐位置约束和边界约束,可以修改膨胀的形状。 可以1吏用平均曲率约束、曲面法向约束或这两种约束。
图13a到图13h图示了根据一个实施例的自由形式3D形状设 计。给定卡通脸部轮廓(图13a),对内部进行膨胀,并且在眉毛附 近添加两个平滑位置约束(图13b)。将一个眉毛上拉而将另一个下 拉(图13c)。在嘴附近添加尖锐位置约束(图13d),并且通过修 改平均曲率约束或曲面法向约束来膨胀附近的曲面(图13e)。在鼻 梁附近添加平滑位置约束(图13f),以得到最终曲面(图13g)。 可以可选4奪地为这个3D形状添加重力或其他方向流动(见上面的讨 论),以创建方向流动效果(图13h)。
曲面法向约束示例
图14a到图16b示出了根据某些实施例的曲面法向约束的应用 的例子,并且还示出了曲面法向约束的效果。这些例子示出曲面 法向约束可被用于(被旋转)在边界处生成凹陷的、平坦的或凸出
的角度。
图14a和14b示出了根据一个实施例的示例曲面,该曲面是利 用"+ "所表示的位置处的平滑位置约束、以及使用曲面法向约束而 指定的边界处的凹角而生成的。图14b中的箭头表示曲面外边界处 的曲面法向方向。
图15a和15b示出了根据一个实施例的示例曲面,该曲面是利 用"+ ,,所表示的位置处的平滑位置约束、以及使用曲面法向约束而 指定的边界处的平坦角而生成的。图15b中的箭头表示曲面外边界 处的曲面法向方向。
图16a和16b示出了4艮据一个实施例的示例曲面,该曲面是利用"+ ,,所表示的位置处的平滑位置约束、以及使用曲面法向约束而
指定的边界处的一个凸角而生成的。图16b中的箭头表示曲面外边 界处的曲面法向方向。
图17a到17c示出了根据某些实施例的使用曲面法向约束来修 改示例曲面内边界处的角度。图像中的内边界以黑白虚线表示。图 17a示出了内边界上的平坦角。图17b示出了内边界上的尖锐角。图 17c示出了曲面通过内边界处的不同角度而被局部膨胀。
实现
图18示出了实现此处描述的曲面膨胀方法的曲面膨胀工具的示 例实施例。如上所述,曲面膨胀工具300的应用可以包括4旦不限于 以下一个或多个字体设计、笔划设计、增强照片、从头开始对3D 形状建模。曲面膨胀工具300的某些实施例可以例如实现为2D艺术 作品设计工具(诸如Adobe^、llustrato^和GNU Gimp )的插件。其他 实施例例如可纟皮实现为独立的程序或工具。
曲面膨胀工具300可以提供用户接口 302,用户接口 302提供一 个或多个文本和/或图形用户接口元件、模式或技术,用户可以通过 其来输入、修改、指示或选择将要膨胀的图像或图像区域(以输入 图像310表示);输入、修改或选择位置约束;选择重力选项或类 似的任意方向流动选项;在形状、图像或数字图像区域中输入或描 绘笔划;指定或修改包括平均曲率约束和曲面法向约束在内的平滑 或尖锐的位置约束和边界约束;指定像素位置约束;以及一般地为 使用在此描述的曲面膨胀工具300的实施例的曲面膨胀提供输入和/ 或控制其各个方面。在一个实施例中,曲面膨胀工具300可以通过 显示设备上的动态显示将按照通过用户接口 302的用户输入而做出 的对目标图像310的修改实时地或近似实时地反馈给用户。因此, 如中间图320所示,用户可以使用曲面膨胀工具300进行附加输入 或者操纵图像或形状。结果作为最终图像322而输出。最终图像322 (以及中间图像320 )可被显示在显示设备上,打印和/或写入或存储
32在各种存储器介质诸如存储介质或存储设备中的任意一种上。 示例系统
可以在可以与各种其他设备交互的 一 个或多个计算机系统上执
行此处描述的曲面膨胀工具的实施例的各种组件。图19示出了一个 这种计算机系统。在示出的实施例中,计算机系统700包括一个或 多个处理器710,其通过输入/输出(I/O)接口 730而连接到系统存 储器720。计算机系统700还包括耦合到1/0接口 730的网络接口 740,以及一个或多个输入/输出设备750,诸如光标控制设备760、 键盘770和显示器780。在某些实施例中,可以想到可以使用计算 才几系统700的单个实例来实现实施例,而在其他实施例中,多个这 种系统或构成计算机系统700的多个节点可被配置用于主控实施例 的不同部分或者实例。例如,在一个实施例中,某些元件可以一皮通 过计算机系统700的与实现其他元件的那些节点不同的一个或多个 节点实现。
在各种实施例中,计算机系统700可以是包括一个处理器710 的单处理器系统,或包括若干处理器710的多处理器系统(例如, 两个,四个,八个或另一个适合的数目)。处理器710可以是能够 执行指令的任意适合的处理器。例如,在各个实施例中,处理器710 可以是实现各种指令集体系结构(ISA)诸如x86, PowerPC, SPARC 或MIPS ISA或任意其他适合的ISA中的任意一种的通用或嵌入式处 理器。在多处理器系统中,处理器710中的每一个可以共同4旦不必 然实现相同的ISA。
在某些实施例中,至少一个处理器710可以是图形处理单元。 图形处理单元或GPU可被认为是用于个人计算机、工作站、游戏台 或其他计算机系统的专用图形呈现设备。现代GPU在操纵和显示计 算机图形时可以非常高效,并且它们高度并行的结构可以使其对于 一系列复杂的图形算法比通常的CPU更有效。例如,图形处理器可 以按照以下方式来实现多个图形原语操作,即执行这些原语的操作远远快于利用主中央处理单元(CPU)直接在屏幕上进行描绘。在 各种实施例中,可由程序指令实现此处针对曲面膨胀公开的方法, 这些程序指令被配置为在这种GPU中的一个上执行,或在这种GPU
中的两个或多个上并行执行。GPU可以实现允许程序员调用GPU的 功能的一个或多个应用程序员接口 (API)。可以从诸如NVIDIA公 司,ATI科技以及其他公司的供应商处在商业上获得适合的GPU。 系统存储器720可被配置为存储可由处理器710访问的程序指 令和/或数据。在各个实施例中,可以使用适合的存储器技术诸如静 态随机访问存储器(SRAM),异步动态RAM ( SDRAM),非易失 /闪存类存储器或任意其他类型的存储器实现系统存储器720。在示 出的实施例中,实现诸如上面针对曲面膨胀工具所述的那些的所希 望的功能的程序指令和数据被分别示出为作为程序指令725和数据 存储735存储在系统存储器720中。在其他实施例中,程序指令和/ 或数据可被接收,发送或存储在不同类型的计算机可访问的介质上, 或与系统存储器720或计算机系统700分离的类似介质上。 一般地 说,计算机可访问介质可以包括存储介质或存储器介质,诸如磁或 光介质,例如通过I/0接口 730耦合至计算^/L系统700的盘或 CD/DVD - ROM。通过计算机可访问介质存储的程序指令和数据可 被以传输介质或信号诸如电、电磁或数字信号传输,可以通过通信 介质诸如网络和/或诸如可以通过网络接口 740实现的无线《连接传递 这些信号。
在一个实施例中,1/0接口 730可被配置为协调处理器710,系 统存储器720和设备中的任意外围设备,包括网络接口 740或其他 外围接口诸如输入/输出设备750之间的I/O流量。在某些实施例中, 1/0接口 730可以执行任意必需的协议,定时或其他数据转变,以侵_ 将一种组件(例如,系统存储器720 )的数据信号转换为适用于另一 种组件(例如,处理器710)的格式。在某些实施例中,1/0接口 730 可以包括对通过各种类型的外围总线诸如例如各种外围组件互连 (PCI)总线标准或通用串行总线(USB)标准附加的设备的支持。在某些实施例中,1/0接口 730的功能可被划分为两个或多个单独组 件,诸如例如北桥和南桥。另外,在某些实施例中,1/O接口 730的 某些或全部功能,诸如到系统存储器720的接口可被直接结合到处 理器710内。
网络接口 740可被配置为允许在计算机系统700和附接至网络 的其他设备(诸如其他计算机系统之间)、或是在计算机系统700 的节点之间交换数据。在各种实施例中,网络接口 740可以通过有 线或无线通用数据网络诸如例如任意适合的以太网网络,通过电信/ 电话网络诸如模拟语音网络或数字光纤通信网络,通过存储区域网 络诸如Fibre Channel SAN,或通过任意其他适合的网络和/或协议类 型支持通信。
在某些实施例中输入/输出设备750可以包括一个或多个显示终 端,键盘,小键盘,触摸板,扫描设备,语音或光学识别设备,或 适用于以一个或多个计算机系统700输入或检索数据的任意其他设 备。多个输入/输出设备750可存在于计算机系统700中,或可以分 布在计算机系统700的各个节点上。在某些实施例中,类似的输入/ 输出设备可被与计算机系统700分开,并且可以通过有线或无线连 接诸如通过网络接口 740来与计算机系统700的一个或多个节点交 互。
如图19所示,存储器720可以包括配置为实现此处描述的曲面 膨胀工具的实施例的程序指令725,以及包括可由程序指令725访问 的各种数据的数据存储735。在一个实施例中,程序指令725可以包 括上图中示出的曲面膨胀工具的软件元件。数据存储735可以包括 可用于这些实施例的数据。在其他实施例中,可以包括其他或不同 的软件元件和数据。
本领域的技术人员应当理解,计算机系统700仅是说明性的, 而并非旨在将曲面膨胀工具的范围限制为此处的公开。具体地,计 算机系统和设备可以包括可以执行指出的功能的硬件或软件的任意 组合,包括计算机,网络设备,Internet应用,PDA,无线电话,寻
35呼机等。计算机系统700还可以连接未示出的其他设备,或取而代 之作为独立的系统操作。另外,在某些实施例中,由示出的组件提 供的功能可被组合在更少的组件内或分布在附加组件上。类似地, 在某些实施例中,可以不提供示出的实施例中的某一些的功能,和/ 或可以获得其他附加的功能。
本领域的技术人员应当理解,虽然各种项目被示出为在使用时 被存储在存储器或存储设备上,可以出于存储器管理和数据完整性 的目的,在存储器和其他存储设备之间传递这些项目或它们的部分。 可替换地,在其他实施例中,可以在存储器或另一设备上执行软件 组件中的某 一 些或全部,并且通过计算机间通信与示出的计算机系 统通信。系统组件或数据结构中的某一些或全部还可以被存储(例 如,作为指令或结构化数据)在计算机可访问的介质上或以适当驱 动器读取的便携产品上,上面已经描述了它们的各种例子。在某些
实施例中,存储在与计算机系统700分离的计算机可访问介质上的 指令可被通过传输介质或信号诸如通过通信介质诸如网络和/或无线 链路传递的电,电磁或数字信号传输到计算机系统700。各种实施例 还包括在计算机可访问介质上接收,发送或存储根据前面所述执行 的指令和/或数据。因此,可以其它计算机系统配置实施本发明。
结论
各种实施例还可以包括在计算机可访问介质上接收、发送或存 储根据前面所述执行的指令和/或数据。 一般而言,计算机可访问介 质可以包括存储介质或存储器介质,诸如磁或光学介质,例如,盘 或DVD/CD - ROM,易失或非易失介质,诸如RAM(例如,SDRAM, DDR, RDRAM, SRAM等),ROM等,以及传输介质或诸如通过 通信介质诸如网络和/或无线链路传递的电,电磁或数字信号的信号。
图中示出并且在此处描述的各个方法表示这些方法的实施例的 例子。可以软件、硬件或其组合实现这些方法。方法的顺序可^皮改 变,并且各个元件可被增加,重新排列,组合,忽略,修改等。在本公开的教益下,对于本领域的技术人员很明显可以做出各 种修改和改变。本发明旨在包括所有这些修改和改变,并且因此上 述描述被认为是说明性的而不是限制意义的。
权利要求
1.一种计算机实现的方法,包括对由封闭二维边界限定的曲面进行细化,以生成初始细化曲面,其中所述初始细化曲面由所述边界来限定;指定所述初始细化曲面的一个或多个边界顶点处的曲面法向约束值;在保持所述边界的同时,按照所述一个或多个边界顶点处的指定曲面法向约束值来对所述初始细化曲面进行膨胀,以生成提供三维几何效果的经膨胀曲面;以及将所述边界以及所述三维几何效果显示为膨胀的三维对象。
2. 如权利要求1的计算机实现的方法,其中所述细化包括对 由所述封闭二维边界限定的曲面进行三角剖分,并且其中所述初始 细化曲面是三角形网才各。
3. 如权利要求l的方法,其中所述细化包括生成虚像顶点, 从而使所述初始细化曲面的边界顶点的单环邻域完整。
4. 如权利要求3的方法,其中所述对初始细化曲面进行膨胀包 括按照与虚像顶点相对应的、指定的曲面法向值来围绕边界旋转便对初始细化曲面进行膨胀。
5. 如权利要求1的计算4几实现的方法,还包括 指定经膨胀曲面上的内边界;以及按照所述内边界以及 一 个或多个边界顶点处的、指定的曲面法向 约束值,生成提供不同三维几何效果的新的经膨胀曲面。
6. 如权利要求5的计算机实现的方法,其中所述生成新的经膨 胀曲面包括展平初始的经膨胀曲面; 计算内边界的2D位置;在内边界的制约下,对曲面进4亍细化以生成新的细化曲面;指定所述新的细化曲面的位于内边界处的 一个或多个顶点处的曲面法向约束值;以及按照一个或多个边界顶点处的、指定的曲面法向约束值以及所述 新的细化曲面的位于所述内边界处的一个或多个顶点处的曲面法向 约束值,来对所述新的细化曲面进行膨胀。
7. 如权利要求6的计算机实现的方法,还包括将内边界移动到 其原始2D位置。
8. 如权利要求5的计算机实现的方法,其中所述指定经膨胀曲 面上的内边界包括通过用户接口来接收用户输入,其中所述用户 输入指示所显示的膨胀三维对象上的内边界。
9. 如权利要求1的计算机实现的方法,其中所述指定初始细化 曲面的 一个或多个边界顶点处的曲面法向约束值还包括接收指示 所述一个或多个边界顶点处的曲面法向约束值的用户输入。
10. 如权利要求1的计算机实现的方法,还包括针对由封闭二维边界限定的曲面来指定流动方向;以及 在保持边界的同时,按照一个或多个边界顶点处的、指定的曲面 法向约束值以及曲面的流动方向来对初始细化曲面进行膨胀,以生 成提供三维几何效果的经膨胀曲面,其中所述三维几何效果在所述 指定的流动方向上流动。
11. 如权利要求1的计算机实现的方法,其中所述对初始细化曲 面进行膨胀是按照线性系统来执行的。
12. 如权利要求11的计算机实现的方法,其中所述线性系统不 需要将细化扩展到边界之外。
13. 如权利要求1的计算4几实现的方法,其中所述对初始细化曲 面进行膨胀是通过求解单个线性系统来执行的。
14. 如权利要求1的计算机实现的方法,还包括 指定所述初始细化曲面的一个或多个其他边界顶点处的平均曲率约束值;以及在保持边界的同时,按照一个或多个边界顶点处的、指定的曲面法向约束值以及 一 个或多个其他边界顶点处的、指定的平均曲率约 束值来对初始细化曲面进行膨胀,以生成经膨胀曲面。
15. 如权利要求1的计算机实现的方法,还包括指定初始细化 曲面上的顶点处的 <象素位置约束,其中所述对初始细〗匕曲面进^f亍膨 胀包括沿着由所述像素位置约束指示的一个或多个矢量来限制所 述顶点处的膨胀。
16. 如权利要求1的计算机实现的方法,还包括 在经膨胀曲面上指定位置约束;指定所述位置约束的平滑度值,其中所述平滑度值指示尖锐位置 约束或平滑位置约束;以及按照所述位置约束和指定的平滑度值来生成提供不同三维几何 效果的新的经膨胀曲面,其中如果所述平滑度值指示尖锐位置约束, 则新的经膨胀曲面满足所述位置约束,但是越过位置约束曲线而没 有保持几何平滑度,并且其中如果所述平滑度值指示平滑位置约束, 则新的经膨胀曲面满足所述位置约束,同时越过位置约束曲线上而 保持平滑度。
17. —种系统,包括 至少一个处理器; 显示设备;以及包括程序指令的存储器,其中所述程序指令可由所述至少一个处 理器来执行,以实现曲面膨胀工具,所述曲面膨胀工具配置用于 对由封闭二维边界限定的曲面进4亍细化,以生成初始细化曲面,指定所述初始细化曲面的 一 个或多个边界顶点处的曲面法向约 束值;在保持所述边界的同时,按照一个或多个边界顶点处的、指定的 曲面法向约束值对所述初始细化曲面进行膨胀,以生成提供三维几 何效果的经膨胀曲面;以及在所述显示设备上将所述边界和所述三维几何效果显示为膨胀的三维对象。
18. 如权利要求17的系统,其中为了进行细化,所述曲面膨胀 工具配置用于对由封闭二维边界限定的曲面进行三角剖分,并且 其中所述初始细化曲面是三角形网# 。
19. 如权利要求17的系统,其中为了进行细化,所述曲面膨胀 工具配置用于生成虚像顶点,从而使初始细化曲面的边界顶点的 单环邻域完整。
20. 如权利要求19的系统,其中为了对初始细化曲面进行膨胀, 所述曲面膨胀工具配置用于根据与虛像顶点相对应的、指定的曲 面法向值来围绕边界旋转虛像顶点,其中所述旋转相应地旋转初始 细化曲面的顶点,以便对初始细化曲面进行膨胀。
21. 如权利要求17的系统,其中所述曲面膨胀工具配置用于 指定经膨胀曲面上的内边界;以及按照所述内边界以及 一 个或多个边界顶点处的、指定的曲面法向 约束值,生成提供不同三维几何效果的新的经膨胀曲面。
22. 如权利要求21的系统,其中为了生成所述新的经膨胀曲面, 所述曲面膨胀工具配置用于展平初始经膨胀曲面; 计算内边界的2D位置;在内边界的制约下,对曲面进行细化以生成新的细化曲面; 指定所述新的细化曲面在内边界处的一个或多个顶点处的曲面法向约束值;以及按照一个或多个边界顶点处的、指定的曲面法向约束值以及所述新的细化曲面在内边界处的一个或多个顶点处的曲面法向约束值,来对所述新的细化曲面进行膨胀。
23. 如权利要求22的系统,其中所述曲面膨胀工具还配置用于 将内边界移动到其原始2D位置。
24. 如权利要求21的系统,其中为了指定经膨胀曲面上的内边 界,所述曲面膨胀工具配置用于通过用户接口来接收用户输入,其中用户输入指示所显示的膨胀三维对象上的内边界。
25. 如权利要求17的系统,其中为了指定初始细化曲面的一个 或多个边界顶点处的曲面法向约束值,所述曲面膨胀工具配置用于 接收指示一个或多个边界顶点处的曲面法向约束值的用户输入。
26. 如权利要求17的系统,其中所述曲面膨胀工具配置用于 针对由封闭二维边界限定的曲面来指定流动方向;以及 在保持边界的同时,按照一个或多个边界顶点处的、指定的曲面法向约束值以及曲面的流动方向来对初始细化曲面进行膨胀,以生 成提供三维几何效果的经膨胀曲面,其中所述三维几何效果在所述 指定的流动方向上流动。
27. 如权利要求17的系统,其中为了对初始细化曲面进行膨胀, 所述曲面膨胀工具配置用于按照线'性系统来执行所述膨胀,其中所 述线性系统不需要将细化扩展到边界之外。
28. 如权利要求17的系统,其中为了对初始细化曲面进行膨胀, 所述曲面膨胀工具配置用于通过求解单个线性系统来执行所述膨 胀。
29. 如权利要求17的系统,其中所述曲面膨胀工具还配置用于 指定初始细化曲面的 一个或多个其他边界顶点处的平均曲率约束值;以及在保持边界的同时,按照一个或多个边界顶点处的、指定的曲面 法向约束值以及一个或多个其他边界顶点处的、指定的平均曲率约 束值来对初始细化曲面进行膨胀,以生成经膨胀曲面。
30. 如权利要求17的系统,其中所述曲面膨胀工具还配置用于 指定初始细化曲面上的顶点处的像素位置约束,其中,为了对初始 细化曲面进行膨胀,所述曲面膨胀工具还配置用于沿着由所述像素 位置约束指示的一个或多个矢量来限制所述顶点处的膨胀。
31. 如权利要求17的系统,其中所述曲面膨胀工具配置用于 在经膨胀曲面上指定位置约束;指定所述位置约束的平滑度值,其中所述平滑度值指示尖锐位置约束或平滑位置约束;以及按照所述位置约束和指定的平滑度值来生成提供不同三维几何 效果的新的经膨胀曲面,其中如果所述平滑度值指示尖锐位置约束, 则新的经膨胀曲面满足所述位置约束,但是越过位置约束曲线而没 有保持几何平滑度,并且其中如果所述平滑值指示平滑位置约束, 则新的经膨胀曲面满足所述位置约束,同时越过位置约束曲线而保 持平滑度。
32. —种计算机实现的方法,包括在计算平台上执行指令,从而使二进制数字电子信号表示对由 封闭二维边界限定的曲面进行细化,以生成初始细化曲面,其中所 述初始细化曲面是由所述边界限定的;在计算平台上执行指令,从而使二进制数字电子信号表示指定 所述初始细化曲面的 一个或多个顶点处的曲面法向约束值;在计算平台上执行指令,从而使二进制数字电子信号表示在保 持所述边界的同时,按照一个或多个边界顶点处的、指定的曲面法 向约束值来对所述初始细化曲面进行膨胀,以生成提供三维几何效 果的经膨胀曲面;以及将所述边界和所述经膨胀曲面作为膨胀的三维对象存储在计算 平台的存储器位置中。
33. —种系统,包括 至少一个处理器; 显示设备;以及包括程序指令的存储器,其中所述程序指令可由所述至少一个处 理器来执行,以实现曲面膨胀工具,所述曲面膨胀工具配置用于对由封闭二维边界限定的曲面进行细化,以生成初始细化曲面, 其中所述初始细化曲面由所述边界限定;指定所述初始细化曲面的一个或多个边界顶点处的平均曲率约 束值;指定所述初始细化曲面上的顶点处的像素位置约束;在保持边界的同时,按照一个或多个边界顶点处的、指定的平均 曲率约束值来对所述初始细化曲面进行膨胀,以生成提供三维几何 效果的经膨胀曲面,其中顶点处的膨胀沿着由所述像素位置约束指示的一个或多个矢量而受到限制;以及在所述显示设备上将所述边界和所述三维几何效果显示为膨胀 的三维对象。
34. 如权利要求33的系统,其中为了进行细化,所述曲面膨胀 工具配置用于对由封闭二维边界限定的曲面进行三角剖分,并且 其中初始细化曲面是三角形网格。
35. 如权利要求33的系统,其中为了对初始细化曲面进行膨胀, 所述曲面膨胀工具配置用于按照线性系统来执行膨胀,其中所述 线性系统不需要将细化扩展到边界之外。
全文摘要
用于利用3D几何学来对2D艺术作品进行交互式增强的方法和装置。通过对插值输入边界的曲面进行膨胀,曲面膨胀工具可以用来创建3D形状。曲面膨胀工具例如可以获取封闭的2D边界作为输入,对边界内部的区域进行细化以生成初始曲面,在保持固定边界的同时对曲面进行膨胀。使用边界顶点处的指定的曲面法向值和/或平均曲率值作为约束,该工具可以使用单个线性系统来有效地控制经膨胀的曲面。实施例处理平滑位置约束和尖锐位置约束两者。位置约束顶点还可以具有为了控制局部曲面的膨胀而指定的约束。
文档编号G06T15/00GK101685547SQ200910138728
公开日2010年3月31日 申请日期2009年3月17日 优先权日2008年3月17日
发明者J·L·安德鲁斯, N·A·卡尔, P·P·乔西 申请人:奥多比公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1