在细分曲面上雕刻2d图像的制作方法

文档序号:10489817阅读:348来源:国知局
在细分曲面上雕刻2d图像的制作方法
【专利摘要】一种方法,包括以下步骤:由用户定义(S10)与细分曲面以及相应的预定的网格到NURBS曲面转换算法(PCCM(·))相关的基网格(B0),所述细分曲面表征所述3D建模对象;由所述用户定义(S20)2D图像和用于在所述细分曲面上雕刻所述2D图像的位置;以及确定(S30)与将形变映射应用(S36)在对所述基网格执行(S34)所述网格到NURBS曲面转换算法所得的结果(S0=PCCM(B0))上对应的NURBS曲面(S1),所述形变映射包括针对对所述基网格执行(S34)所述网格到NURBS曲面转换算法所得的结果的位置提供的位移向量,所述位置与雕刻所述2D图像的位置对应,所述位移向量是基于所述2D图像的对应像素值来计算(S32)的。该方法改善了3D建模对象的设计。
【专利说明】
在细分曲面上雕刻2D图像
技术领域
[0001] 本发明主要涉及计算机辅助设计(CAD)领域,尤其是一种用于通过图形用户交互 借助基于2D图像的数据处理来设计3D建模对象的方法、程序和系统,。
【背景技术】
[0002] 在市场中针对对象的设计、工程和制造提供有多个系统和程序。CAD是计算机辅助 设计的首字母缩写,举例来说,它涉及用于设计对象的软件解决方案。CAE是计算机辅助工 程的首字母缩写,举例来说,它涉及用于仿真未来产品的物理行为的软件解决方案。CAM是 计算机辅助制造的首字母缩写,举例来说,它涉及定义制造过程和操作的软件解决方案。在 这些计算机辅助设计系统中,图形用户界面扮演着与技术效率相关的重要角色。这些技术 可嵌入在产品生命周期管理(PLM)系统中。PLM指的是一种商业策略,围绕"延伸性企业"的 概念,其帮助公司共享产品数据、应用通用的过程,并且提升用于产品从概念到该产品生命 结束的开发的企业知识。
[0003] 由DASSAULT SYSTEMES(商标为CATIA、EN0VIA和DELMIA)提供的PLM解决方案提供 了:工程中心,其对产品工程知识进行组织;制造中心,其对制造工程知识进行管理;以及企 业中心,其使得能够将企业整合并结合到工程中心和制造中心二者中。总之,该系统提供了 一种开放的对象模型,将产品、过程、资源联系起来,以实现动态的、基于知识的产品创新和 决策支持,这推动了对产品定义、制造准备、生产和服务的优化。
[0004] CAD解决方案广泛使用两项主要的众所周知的曲面(surface)建模技术:非均匀有 理B样条曲面(下称NURBS)以及细分曲面。
[0005] NURBS技术基于的是通过被称为"控制点"的3D点的矩形栅格(grid)进行处理的多 项式参数化或有理参数化。通过移动控制点来执行对NURBS曲面的编辑。以多项式的次数不 取决于控制点的数量的方式来设计该技术。进一步地,控制点的影响被限制在相邻区域。因 此,用户能够局部修改表面的形状,而不用触及所述相邻区域之外的区域。该领域经典的参 考资料是课本《The NURBS book》,L· Piegl和T ·Wayne,Springer,第2版,2013年。
[0006] 另一方面,细分曲面是通过由点和线段构成的三维"基网格"定义的。基网格由用 户定义,其特定可以是任意的拓扑结构,这与NURBS的控制点的矩形栅格相反。基网格控制 了细分曲面的整体形状,并且可以由用户编辑。基网格的改变会影响整个细分曲面。与 NURBS曲面相反,细分曲面是细分过程中的始于基网格的限定对象。图1示出了三孔闭合基 网格11和第一细分步骤。限定曲面是光滑三孔环状对象13。主要在如下参考中解释了基本 原理:"Recursively generated B-Spline surfaces on arbitrary topological meshes",E·Catmull,J.Clark,Computer Aided Design,第 10卷第6期,1978年11 月。值得注 意的是,如文献US 7595799 B2(对应于EP 1750229B1)和US 7400323 B2中所解释的,通过 将基网格转换为NURBS曲面,经由配置NURBS曲面来趋近细分曲面是可能的。
[0007] 简而言之,NURBS技术的特点在于局部修改能力和网格定义的拓扑结构,细分技术 的特点在于任意拓扑结构和非局部编辑能力。显然,由于其处理局部修改的能力,因此 NURBS技术能够良好地支持在保存曲面的整体形状的同时在其上进行的小细节的创建。相 反,细分曲面技术则不支持该能力。另一方面,与自身拓扑结构被限制为矩形的控制点栅格 的NURBS曲面相反,细分曲面技术能支持任意拓扑结构。
[0008] 显然,现有技术中缺乏在具有任意拓扑结构的曲面上作出局部改变的能力。在这 种环境下,仍然需要一种用以设计3D建模对象的改进的解决方案。

【发明内容】

[0009] 由此,提供了一种计算机实现的设计3D建模对象的方法。该方法包括以下步骤:由 用户定义与细分曲面以及相应的预定的网格到NURBS曲面转换算法相关的基网格。该细分 曲面代表该3D建模对象。该方法还包括以下步骤:由用户定义2D图像和在该细分曲面上雕 刻该2D图像的位置。该方法还包括以下步骤:确定与将形变映射应用在对基网格执行网格 到NURBS曲面转换算法所得的结果上对应的NURBS曲面。该形变映射包括针对对基网格执行 网格到NURBS曲面转换算法所得的结果的位置提供的位移向量。该位置对应于雕刻该2D图 像的位置。该位移向量是基于该2D图像的对应像素值计算的。
[0010] 该方法可包括以下项目的一项或多项:
[0011] -该方法包括计算位移向量,包括:从基网格确定与雕刻该2D图像的位置对应的第 一 3D网格;通过基于2D图像的对应像素值在第一 3D网格的法线方向上位移第一 3D网格的顶 点,来从第一3D网格确定第二3D网格;以及针对对基网格执行网格到NURBS曲面转换算法所 得的结果的位置,计算一位移向量,该位移向量等于对第二3D网格执行网格到NURBS曲面转 换算法所得的结果的对应控制点与对第一 3D网格执行网格到NURBS曲面转换算法所得的结 果的对应控制点之间的3D位置差;
[0012] -确定第一 3D网格包括提取基网格的与雕刻2D图像的位置对应的子网格,然后将 该子网格细分预定的倍数;
[0013] -该预定的倍数是由用户定义的和/或基于与2D图像的细节水平有关的预定标准 而递增;
[0014] -2D图像的对应像素值是像素灰度值;
[0015] -位移向量的幅度基于对应的灰度值而递增;和/或
[0016] -用户进一步从预定的二元表(binary list)中选择雕刻方向。
[0017]进一步提供了一种由该方法设计而成的3D建模对象。
[0018]进一步提供了一种包括该3D建模对象的设计规格的计算机文件。
[0019] 进一步提供了一种包括执行该方法的指令的计算机程序。
[0020] 进一步提供了一种其上存储有该计算机程序的计算机可读数据存储介质。
[0021] 进一步提供了一种包括耦合到存储器和图形用户界面的处理器的CAD系统,该存 储器上存储有该计算机程序。
[0022] 进一步提供了一种制造工业产品的方法,包括以下步骤:根据以上设计方法设计 代表工业产品的三维对象,然后基于所设计的三维对象制造该工业产品。
【附图说明】
[0023]现在将以非限制性例子的形式,参考附图,描述本发明的实施例,其中:
[0024] -图1示出了细分曲面;
[0025] -图2是方法的例子的流程图;
[0026]-图3不出了系统的图形用户界面的例子;
[0027]-图4不出了系统的例子;以及 [0028]-图5至图26阐释了方法。
【具体实施方式】
[0029] 参考图2的流程图,提出了一种计算机实现的设计3D建模对象的方法。该方法包括 以下步骤:由用户定义(SlO)与细分曲面以及相应的预定的网格到NURBS曲面转换算法相关 的基网格。该细分曲面代表该3D建模对象。该方法还包括由用户定义(S20) 2D图像和在该细 分曲面上雕刻该2D图像的位置。该方法然后包括确定(S30)与将形变映射应用在对基网格 执行网格到NURBS曲面转换算法所得的结果上对应(即,所谓"对应",意味着获取NURBS曲面 的特定方式是个实施细节,只要能够通过以下步骤获得结果(至少大约地获得结果,例如, 一会儿提到的"近似值"的意思),即使这些特定步骤没有被实施)的NURBS曲面。该形变映射 包括包括针对对基网格执行网格到NURBS曲面转换算法所得的结果的位置提供的位移向 量。这些位置对应于雕刻2D图像的位置。这些位移向量是基于2D图像的对应像素值来计算 的。该方法改善了 3D建模对象的设计。
[0030] 值得注意的是,该方法允许在与细分曲面以及相应的预定的网格到NURBS曲面转 换算法相关的基网格的环境下对3D建模对象进行设计修改,带来的优势是这样的设计环境 对CAD领域来说是及其熟悉的。事实上,贯穿整个方法保留了基网格结构以及有关曲面设计 的相关用户意图,这只是相当于对CAD设计者所习惯的基网格框架增加了设计规格 (specification)。不同于现有技术在基网格上实施的修改方案(例如,增加多分辨率信息 和/或在细分后增加细节),该方法不打算在基网格随后的转换(通过在S30的预定的网格到 NURBS曲面转换算法)之前对该基网格作细分,从而使得所述随后的转换可以容易地(在计 算成本方面)实现,而不会抑制控制点的数量。换句话说,随后将要输入到转换算法的网格 的面数不会由于该方法而过度增长。不同于现有技术在NURBS上实施的修改方案,该方法允 许对被提供为具有细分曲面的基网格的模型进行修改,从而得益于该环境(优势在于在该 框架内可能的任意拓扑结构,以及相对于复杂NURBS而言,基网格所占用的小存储空间),用 户随后可以以相对简单的方法执行其它修改。事实上,如CAD领域众所周知的,花式设计由 于这些原因而更适合在细分曲面上而不是在NURBS上执行。因此,即使增加了在S20所定义 的设计规格之后,用户也可以执行对3D建模对象的基网格编辑。同样,既然定义步骤S20执 行在基网格层面上,那么该方法确保了 NURBS面片(patch)之间的连续性不会被过度地破 坏。
[0031]因此该方法向用户提供了简单的、交互式的并且直观的方式,通过在S20以在细分 曲面上具有位置的2D图像的形式定义设计规格,从而在3D建模对象上增加局部细节。该编 辑仿真了真实的雕刻,同时也考虑到了用户的工业需求,包括基于(利用基网格的)曲面细 分技术来保持一项设计的前后环境,此外在这里,最终的曲面的连续性也很重要。
[0032]该方法是计算机实现的。该方法的步骤实际上在计算机系统上由该计算机系统单 独执行,或者由图形用户交互(即,由用户通过计算机系统的GUI进行交互)执行。因此,特定 由计算机系统执行的步骤可以完全自动地执行。例如,对该方法的至少一些步骤的触发可 以是通过用户-计算机交互而执行的。尤其是,定义步骤SlO和S20由在计算机上工作的用户 在相同工作会话或不同工作会话中执行。确定步骤S30可以由用户在相同的工作会话中 (S10和S20二者的工作会话,或者仅S20的工作会话)或者在不同的工作会话中触发。所需的 用户-计算机交互水平可以取决于所预见的自动化水平,并且与实现用户愿望的需求保持 平衡。例如,该水平可以由用户定义和/或预定义。
[0033]本方法的计算机实现方式的典型示例将通过适配于本目的的系统来执行该方法。 该系统可包括耦合到存储器和图形用户界面(GUI)的处理器,该存储器在其上记录有计算 机程序,该计算机程序包括用于执行该方法的指令。存储器还可存储数据库。该存储器是任 意适用于这种存储的硬件,可能包括若干不同的物理部分(例如,一个用于程序,可能还有 一个用于数据库)。
[0034]该方法通常处理建模对象。建模对象是由数据库中存储的数据定义的任意对象。 扩展开来,"建模对象"这一表述指的是数据本身。"设计3D建模对象"指的是任意一个或系 列动作,这些动作是加工3D建模对象的过程的至少一部分。因此,该方法可包括从头开始创 建3D建模对象。可替代地,该方法可包括提供先前创建的3D建模对象,然后修改该3D建模对 象,尤其是通过由该方法所完成的雕刻来实现。
[0035] 根据系统的类型,建模对象可由不同种类的数据来定义。系统实际上可以是CAD系 统、CAE系统、CAM系统、PDM系统和/或PLM系统的任意组合。在这些不同系统中,建模对象由 对应的数据来定义。人们可以因此提到CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD 数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统之间互相并不排除,因为建模对 象可以由与这些系统的任意组合相对应的数据来定义。因此,系统也可以既是CAD也是PLM 系统,正如在以下提供的这种系统的定义中将变得显而易见的那样。
[0036] 所谓CAD系统,是指至少适用于基于建模对象的图形化表征而设计建模对象的任 意系统,例如CATIA。在这种情况下,定义建模对象的数据包括能够实现建模对象的表征的 数据。CAD系统例如可以使用边沿或线条(在某些情况下通过面或曲面)来提供对CAD建模对 象的表征。线条、边沿或曲面可由各种方式来表征,例如,非均匀有理B样条(NURBS)。特别 地,CAD文件包含了生成几何图形所可以依据的设计规格,而该设计规格转而使得能够生成 表征。建模对象的设计规格可存储在单个或多个CAD文件中。表征CAD系统中的建模对象的 文件的典型大小在每个部件IMB的范围之内。建模对象典型地可以是数以千计个部件的组 合。
[0037]在CAD系统的环境中,建模对象通常可以是3D建模对象,例如,表征一件产品,诸如 部件或是部件的组合,或可能表示产品的组合。所谓"3D建模对象",是指通过实现任意对象 的3D表征的数据所建模的该对象。3D表征允许从所有角度查看该部件。例如,3D建模对象当 被3D展示时,可围绕其任意轴、或围绕显示该表征的屏幕中的任意轴对其进行处理和旋转。 这尤其不包括2D图符(icon),其并不是3D建模的。3d表征的显示有助于设计(即,提高了设 计者数据式地完成任务的速度)。这加快了行业中的制造过程,因为产品的设计是生产或建 模过程的一部分。3D建模对象还具有的特性是不仅由SlO的基网格定义、而且还由在S20定 义的数据来定义,在S20定义的数据构成了对传统3D建模对象的附加的设计规格。
[0038] 3D建模对象可表征在通过例如CAD软件方案或CAD系统对产品的虚拟设计完成之 后将在实际世界中制造的产品的几何图形,诸如一个(例如,机械的)部件或部件的组合,或 更常规地,任意刚性体的组合(例如,移动机构)XAD软件方案允许设计各种非限制性行业 领域中的产品,这些行业领域包括:航空航天、建筑、建设、生活消费品、高科技装置、工业设 备、运输、海运、和/或离岸业务(offshore)或运输。因此,由该方法设计的3D建模对象表征 工业产品,其可以是陆地交通工具的一部分(包括,例如,汽车和轻型卡车设备、赛车、摩托 车、卡车和摩托设备、卡车和公共汽车、火车)、航空工具的一部分(包括,例如,机身设备、航 空航天设备、推进设备、防御产品、航线设备、空间设备)、船舶工具的一部分(包括,例如,海 军设备、商业船只、离岸设备、游艇和施工船、海运设备)、机械部件(包括,例如,工业制造机 械、重移动机械或设备、安装设备、工业设备产品、装配金属产品、轮胎制造产品)、电动机械 或电子部件(包括,例如,消费类电子设备、安保和/或控制和/或仪器产品、计算和通信设 备、半导体、医用装置和设备)、生活消费品(包括,例如,家具、家居和园艺产品、休闲品、时 尚产品、耐用商品零售商的产品、软商品零售商的产品)、包装(包括,例如,食品和饮料以及 烟草、美容和个人护理、家庭产品包装)。在3D建模对象的美学方面很重要时,该方法尤其有 用。尤其是当3D建模对象表征车辆或飞机的机械部件(例如可视部件)、或生活消费品(例如 电子商品,如摄像机)时尤为有用。
[0039]所谓PLM系统,是指适配于管理表征物理制造的产品的建模对象的任意系统。在 PLM系统中,建模对象因此由适合于制造物理对象的数据来定义。这些典型地可以是维度值 和/或容限值。为了正确地制造对象,确实最好能有这些数值。
[0040] CAM代表计算机辅助制造。所谓CAM解决方案,是指适用于管理产品的制造数据的 任何(软件或硬件)解决方案。制造数据通常包括与要制造的产品、制造进程和所需资源相 关的数据。CAM解决方案用于计划和优化产品的整个制造过程。例如,可以向CAM用户提供可 行性、制造过程的持续时间或可被用于制造过程的特定步骤的资源数等信息,例如特定自 动设备;并因此使得能够对管理或所需投资进行决策决策。CAM是CAD进程和潜在的CAE进程 之后的后续进程。这些CAM解决方案由Dassault Systgmes在商标DELMIA?下提供。
[0041] CAE代表计算机辅助工程。所谓CAE解决方案,是指适用于分析建模对象的物理行 为的任何(软件或硬件)解决方案,。一种公知并广泛使用的CAE技术是有限元法(FEM),其典 型地包括将建模对象划分成可以通过方程式计算和仿真其物理行为的元件。这些CAE解决 方案由Dassault Systgmes在商标SIMULIA?下提供。另一种新兴的CAE技术涉及在无需 CAD几何数据的情况下对由来自不同物理领域的多个分量组成的复杂系统的建模和分析。 CAE解决方案允许对待制造的产品进行仿真,并且由此允许对其进行优化,改进和验证。这 些CAE解决方案由Dassault Systgmes在商标DYMOLA?下提供。
[0042] PDM代表产品数据管理。所谓PDM方案,是指适用于管理与特定产品相关的所有种 类的数据的任何(软件或硬件)解决方案。PDM解决方案可由参与到产品生命周期中的所有 参与者使用:主要是工程师,但也包括项目经理、财务人员、销售人员和购买者。PDM解决方 案通常是基于面向产品的数据库的。其允许用户共享他们产品的一致数据,并且由此防止 了参与者使用有差异的数据。这些I 3DM解决方案由Dassault Systgmes在商标ENOVIA? 下提供。
[0043]图3示出了系统的GUI例子,其中该系统是CAD系统。
[0044] GUI 2100可以是典型的类CAD的界面,具有标准菜单条2110、2120、以及底部和侧 边工具条2140、2150。这些菜单条和工具条包括用户可选图标的集合,如技术中已知的,每 个图标与一个或多个操作或功能相关。这些图标中的某些与软件工具相关,适用于在GUI 2100所显示的3D建模对象2000上进行编辑和/或工作,所显示的3D建模对象2000例如是执 行该方法所得的结果。软件工具可分组为工作台。每个工作台包括软件工具的子集。特别 地,工作台中的一个是编辑工作台,适合于编辑该建模对象2000的几何特征。操作中,设计 者例如可以预选择对象2000的一个部件,然后发起一项操作(例如,改变大小、颜色、等等) 或者通过选择一个合适的图标,编辑几何约束条件。例如,典型的CAD操作是对屏幕上所显 示的3D建模对象的冲压或折叠进行建模。该GUI例如可以显示与所示的产品2000相关的数 据2500。在图2的例子中,数据2500被显示为"特征树",它们的3d表征2000有关于包括制动 钳和制动盘的制动组件。GUI还可显示例如用于简化对象的3D方位、用于触发对被编辑产品 的操作的仿真、或用于呈现所显示产品2000的各种属性的各种类型的图形工具2130、2070、 2080。指针2060可由触觉装置控制,以允许用户与图形工具交互。
[0045]图4示出了该系统的例子,其中该系统是客户端计算机系统,例如用户的工作站。 [0046]该例子中的客户端计算机包括:中央处理单元(CPU) 1010,其与内部通信BUS 1000 连接;随机存取存储器(RAM)1070,其也与BUS连接。该客户端计算机还配备有图形处理单元 (GPU) 1110,其与连接到BUS的视频随机存取存储器1100相关联。视频RAM 1100作为帧缓冲 器是在本领域技术中公知的。大容量存储装置控制器1020管理对大容量存储装置的存取, 如硬盘驱动器1030。适合有形体现计算机程序指令和数据的大容量存储装置包括所有形式 的非易失存储器,例如包括:半导体存储装置,诸如EPR0M、EEPR0M、闪存装置;磁盘,诸如内 部硬盘和可移除盘;磁性光盘;以及⑶-ROM盘1040。前述的任意一个可以由专门设计的ASIC (专用集成电路)补充,或并入专门设计的ASIC(专用集成电路)中。网络适配器1050管理对 网络1060的接入。客户端计算机还可包括触摸装置1090,如指针控制装置、键盘等等。指针 控制装置用于客户端计算机,使用户可以选择性地将指针定位于显示器1080上任意期望的 位置。此外,指针控制装置允许用户选择各种命令和输入控制信号。指针控制装置包括用于 向系统输入控制信号的多个信号产生装置。典型地,指针控制装置可以是鼠标,鼠标的按键 用于生成信号。可替换地或是附加地,客户端计算机系统可包括感应/触摸板、和/或感应/ 触摸屏。
[0047]计算机程序可以包括可由计算机执行的指令,指令包括使得上述系统执行该方法 的单元。程序可以是可被记录在任何数据存储介质上的,包括该系统的存储器在内。程序例 如可以实现在数字电子电路中、或计算机硬件、固件、软件或它们的组合中。程序可以被实 现为设备,例如在机器可读存储装置中有形体现的用于由可编程处理器执行的产品。方法 步骤可以由可编程处理器执行,可编程处理器执行程序指令以通过操作输入数据和产生输 出来实施该方法的功能。处理器因此可以是可编程的,并且耦合以从数据存储系统、至少一 个输入装置、和至少一个输出装置处接收数据和指令,以及向数据存储系统、至少一个输入 装置、和至少一个输出装置发送数据和指令。应用程序可以被实现为高级程序或对象导向 的编程语言,或者被实现为汇编语言或机器语言(如果需要的话)。在任意情况下,语言可以 是已编译的或已解译的语言。程序可以是完整的安装程序或更新程序。将程序应用于系统 的在任何情况下得到的都是用于执行该方法的指令。
[0048] 现在来讨论定义SlO。
[0049] 如CAD领域所公知的,用户常常会定义(即,设计)网格,称为与细分曲面相关联的 "基网格"。这就是本方法中SlO所做的事。网格表示具有顶点(3D位置)和边沿(例如,段)的 任何图形结构,边沿将顶点两两连接并形成网格的所谓的面(即,边沿的最小的环)。网格可 以是不同类型中的一个,包括四方网格(主要或完全由四边沿面组成)和三角形网格(主要 或完全由三边沿面组成)。定义SlO可以以任意方式实现,包括依据US 7893937 B2中的对称 操作进行的快速复制。
[0050] CAD中的基网格关联于细分曲面和对应的预定的网格到曲面转换算法。事实上,基 网格在定义3D建模对象几何图形的数据中是基础网格。换句话说,对象的几何图形由网格 来表示。更特别地也是公知地,基网格在概念上与细分算法相关联。依据所述细分算法对基 网格作无限细分将得到一个曲面,称为"细分曲面",其代表了所设计的3D建模对象的包络/ 边界,从而对该3D建模对象进行建模。因此说基网格"控制"细分曲面。细分算法可以是任意 已知的细分算法,例如四方网格情况下的Catmull-Clark细分算法,或三角形网格情况下的 循环细分算法。
[0051] 众所周知,出于实用的目的,细分曲面实际上不由系统确定。作为替代,系统以参 数面片(典型的是NURBS(例如,Bgzier)曲面面片)的集合的形式确定细分曲面的近似值。例 如,系统存储有用于执行将网格转换成与细分曲面近似的参数面片集合的方案的程序。从 这个意义上说,该方案对应于基础细分算法。在本方法的上下文中,这都意味着该方法运行 于支持细分曲面技术的系统上,被配置为/适应于针对用户来定义基网格(如SlO处),以及 依据预定的细分方案(例如,Catmul I-Clark用于四方网格,或循环法用于三角形网格),基 于预定的转换算法,自动输出/计算/确定与真实的和理论的细分曲面近似的曲面,例如用 于CAD中已知的对曲面进行显示/编辑/仿真或任何其它处理。所谓"近似",是指所定义(一 个正标量函数的积分)的在理论细分曲面与网格到曲面转换算法的输出之间的标量体积是 小于包络该细分曲面的最小平行六面体边沿框的体积的10%或5%的。
[0052]在本方法的情况下,系统的预定转换算法是网格到NURBS曲面转换算法,意味着该 基网格被转换成与关联于基网格的细分曲面近似的NURBS基本曲面/面片的集合(在随后延 展性示出的例子中,该基网格是四方网格,细分方案是Catmu 11 -Cl ark细分方案)。所预定的 网格到NURBS曲面转换算法可称为"近似算子",可以记为PCCM( ·)。基网格Bo的变换/转换 以下将写作Sq = PCCM(Bo)。在一个例子中,算子PCCM( ·)是文献US 7595799 B2(对应于EP 1750229 BI)和US 7400323 B2(其中US 7595799 B2描述了如何生成NURBS面片,而US 7400323 B2描述了如何改善面片之间的几何连接的质量)中描述的网格到NURBS曲面转换 算法,这些文献通过引用并入本文,该算法被配置为:在除不规则(extraordinary)顶点附 近之外的任何地方(即,在所有NURBS面片对之间)都得到C 2的连续性,而在不规则顶点附近 得到的至少是C'但是预定的网格到NURBS曲面转换算法可以是生成除在不规则顶点附近 之外(在不规则顶点附近连续性至少是C t3)彼此之间都具有C2连续性的未修整的面片的任意 其它已知的算子(Catmu 11-Clark细分收敛特性,参见"Recursively generated B-Spline surfaces on arbitrary topological meshes^ ?E.Catmull?J.Clark?Computer-Aided Design,第10卷第6期,1978年11月,第350-355页)。出于完整性的考虑,需要注意的是,如已 知的,这些算子会执行初始数量的细分以便具有同质(homogenous)的网格(经常是两个), 然后依据方程的求解,创建NURBS面片,该操作的复杂性基于所输入的网格面的数量而递 增。因此,这些算子与多分辨率网格(该网格带有局部信息以修改预定的细分方案,从而增 加局部细节)至少当增加第二或第三级细分之外的信息包括多分辨率的设定时是不相容 的。
[0053]作为提示,如果顶点符合以下条件之一,顶点即可以被称为是规则的(相对的,其 它顶点被称为是不规则的):
[0054] ?该顶点不位于网格的独立边界(free border)上,并且被四个非锐边沿(nonsharp edges) 包围 (因此被四个面包围 )。
[0055] ?该顶点位于网格的独立边界上,并且被两个独立边沿和一个非独立且非锐边沿 包围(因此被两个面包围)。
[0056] 还可以在文献,尤其是US 7595799 B2(对应于EP 1750229 BI)和US 7400323 B2 中找到该定义。在Catmul I-Clark细分理论中规则顶点确保了最好的曲面质量。
[0057] 如本身已知的那样,NURBS曲面由所谓的"控制点"的(2D)栅格定义,其具有"栅格" 的通常的拓扑定义,例如,具有若干(至少两个)行和若干(至少两个)列。贯穿整个方法,该 计算机系统根据预定的可逆函数确定(S20)属于NURBS曲面并且对应于控制点的栅格的曲 面点的栅格。曲面点是在几何上位于/属于该曲面的点。在NURBS的情况下,直接的曲面栅格 是示例的Grgville点的栅格。实现曲面Grgville点与NURBS的控制点(通常在曲面本身之 外)之间一对一的对应的预定的可逆函数是从描述NURBS几何结构的众所周知的数学运算 中预先确定并得出的。出于完整性的考虑,这些数学运算仍然将在下文中作详细描述。需要 注意,确定S20可以以任意方式实现,例如,作为后台进程,在每次曲面及其控制点被修改 时,实时重新计算Gr6vi lie点。
[0058] NURBS曲面是一种广泛应用于CAD的曲面,其通过3D空间中的数值被定义在2D空间 中:5(11,¥)4(1,7,2)。通过两个节点(1〇1〇1:)向量和控制点的一个二维阵列以及取决于所使 用的CAD的软件的其它可能数据来表征NURBS曲面。典型地,节点向量是浮点数值的一维阵 列。对控制点阵列可以进行索引。每个控制点是一个3D点,具有坐标x,y,z。在阵列中的位置 由两个指标i和j来定义;其中,〇 < i<M,0 < j<N。被认为是Grgville参数的参数集可以从 节点向量算出,从而索引i或j的每个值可以与Gr6vilie参数(m,Vj)相关联。传统地,Gr6 Ville参数是节点向量的固定数量个连续值的若干个单元。该固定数量被称为"度",对于节 点向量的每个维度(u或V)而言,该固定数量可能是不同的。总之,若干个度属于表征NURBS 曲面的数据。更详细的内容,Gerald Farin的文章"Curves and surfaces for Computer Aided Geometric Design",编辑Morgan Kaufmann,(2001),介绍了NURBS曲面的基础。
[0059] 经典地,NURBS曲面由以下输入所定义。
[0060] 1 · (n+l)(m+l)个控制点Pii E K3A e R3的栅格,{〇, · · ·,n},je {〇, · · ·,m}。
[0061] 2.两个正整数p,q,其出于后续将要解释的理由而被称为"度"。
[0062] 3.第一有序系列的被称为"u节点向量"的实数uQ<……<u P+n+1,使 得最先的P+1个值m是相等的,且最后p+1个值m也是相等的。
[0063] 4.第二有序系列的被称为"v节点向量"的实数< Vj < vj+1 < . . . < vq+m+1,使 得最先的q+1个值W是相等的,且最后q+1个值W也是相等的。
[0064] 5· (n+1)(m+1)个权数 C0ijX)的栅格,其中,ie {〇,···,n},je {〇,···,m}。
[0065] 这些输入定义了两个B样条基,分别记为,

样条基函数和是分段多项式,分别具有度 数P和q。它们的具体定义对本发明而言没有用处。冊1^5曲[
由以下有理参教仆忒宙々"
[0066]
[0067] 类似地,NURBS曲线C:[i0,ip+"+1] -R3由度数p的一系列的n+1个控制点Pi和权重Oi 来定义,包含在以下公式中。
[0068]
[0069]事实上,从数学观点来看,NURBS曲面是两个NURBS曲线的张量乘积。为了清楚起 见,主要用NURBS曲线而不是NURBS曲面来示例(在下面的附图上)该方法。
[0070] 现在简要讨论Gr6vi lie点。
[0073] 图5示出了NURBS曲线及其n+1 = 6个控制点Pi和Gr6vi 11e点Gi。
[0074]需要注意的是,预定转换算法可包括用于局部修改或擦除NURBS结构(可能依据基 网格的局部特征,或依据添加到基网格的设计规格)的细化(例如,未披露的处理)。这例如 包括US 7952575 B2所说的区段的平滑化,或者US 2013293541 Al所说的特征线的定义。然 而,该曲面(其面积的 如果不是100%的话 至少90% )存在于NURBS的最后阶段。需 要注意的是,该方法本身构成了细化。还需注意的是,这些细化与包含在当前方法中的局部 改变的设计规格之间的同时发生,可以以任意方式实现,这仅仅是实施方式的细节。还需注 意的是,该方法的实施方式可以以任何方式执行,以使得该细化之间的顺序和处理的全部 序列是不相关的。这包含在这样的事实中:就是说在S30所确定的NURBS曲面"对应于"执行 给定处理。在S30所确定的NURBS因此可以被提交给该进一步的细化过程,并且仍然对应于 在S30中所应对的主要处理。然而在一个示例中,基网格没有配置其他的设计规格(除了S20 中的设计规格),即,基网格是"未加工的"。在另一个示例中,该同时发生的细化对整个曲面 的影响少于其面积的10%,或甚而少于其面积的5%,以使得对于补偿面积,在S30确定的结 果与曾提到的处理之间,存在精确的匹配。
[0075]定义SlO由用户执行。其结果是得到基网格,该基网格达到对该曲面的描述与点的 数量之间的良好权衡。这与纯粹的细分不同。在SlO定义的基网格不同于(例如,依据相关的 细分方案)来源于另一网格的纯粹细分的网格。如果这样的细分由用户在设计过程中调用, 那么至少一个从细分得到的顶点可被手动移动(即,直接定位一一例如,图形上而言,由用 户规定的拖-放)。总之,从零开始,定义SlO可以包括多个低于5或2的细分。这些细分允许对 细节的定义,也因此允许复杂设计,但是基网格是用户设计的网格,因而它不会太复杂(相 对而言),也因而用以上提到的转换算法种类对其进行转换相对较快,并且能得到合理数量 的NURBS控制点。例如,考虑到3D建模对象的总长度L(例如,包络该3D建模对象的最小平行 六面体边界框的最大长度),在SlO中由用户定义的用于表征3D建模对象的基网格的一条边 沿的平均长度可以高于L的1%、L的5%或甚至是L的10%。这些特征一直保留到该方法最后 阶段,这保留了用户的意图。
[0076] 现在讨论定义S20。
[0077]定义S20还是由用户执行。在这一点上,用户输入的数据可作为3D建模对象的附加 设计规格,保存于该模型中,因此该3D建模对象至少由基网格来定义(与对于系统来说是预 先确定的细分算法/曲面以及与如上述被记为PCCMO的预定算子相关),以及由2D图像和在 细分曲面上雕刻该2D图像的位置来定义。因此该定义S20对应于在基于特征的CAD系统中设 置一特征,和/或在基于历史的CAD系统中设置一历史设计操作,即,历史树的一个节点,这 些系统本身是已知的。2D图像是任意类型的图像。它可以是照片(例如,RGB的或灰度级的), 或者是用户(同一用户或者另外的用户)画的2D图(例如,也是RGB的或灰度级的)。通常来 说,该2D表征了将被雕刻在最终设计的和/或制造的对象上的局部细节,例如一个logo。本 方法的目的是执行"雕刻"设计操作,其也像这样由确定S30的结果来定义,并且从视觉上表 征了(当之后显示由确定S30输出的曲面时)将2D视角中包含的设计向细分曲面上的真实的 雕刻。然而,这对系统而言是内在的,为实施S30而(例如,依据用户需求/用户触发)预先确 定的。用户仅仅指定2D图像应当被应用到哪个位置。用户可以以任何方式指定细分曲面上 的这个位置,例如通过2D图像和细分曲面之间的纯粹同构关系。
[0078] 例如,基网格与细分曲面相关联,系统被配置于计算其近似值(得益于算子PCCM ()),该方法可包括示出所述细分曲面(的近似值)。然后用户可以图形化地定义该位置。例 如,用户可以将2D图像的3d表征定位在细分曲面(基网格是3D的,2D图像可以被移到包含3D 基网格的3D工作空间中)的任何地方上(附近),2D图像的大小潜在地可以随意增加或减少, 并且该系统可以执行预定的投影(2D图像到曲面上,或曲面到2D图像上)。用户还可以指定 2D图像的取向。用户还可以指定该投影。任何容易使用的和图形化的执行该定位的方式(相 当于将该2D图像投影/附着/应用到细分曲面的表征上)都可以由该方法实现。
[0079] 用户在S20处提供的位置在任何情况下都由系统解释为细分曲面上的位置,也因 此会影响基网格或NURBS面片的基础面。因此系统可将基网格的面和/或NURBS面片与该位 置关联起来。事实上,预定转换算法将基网格的面与所得到的NURBS面片关联起来。因此,当 用户把3D图像定位在细分曲面上时,用户实际上是将它定位在NURBS面片的子集上,从而定 位在基网格面的对应子集上。该关联/影响的检索可以以任何方式实现。该方法可用于向细 分曲面增加小细节,同时保存其整体形状。首先,保存该曲面的拓扑结构。而且,初始细分曲 面(即,简单转换基网格的结果)中超过75%,或超过90%可以留着不修改,针对这样来调整 2D图像的大小(例如,在可能的扩展之后)。
[0080] 现在讨论确定S30。
[00811该方法确定了NURBS曲面,该NURBS曲面不同于由预定网格到NURBS曲面转换算法 (gp,PCCM()算子)所输出的曲面(可被称为"未加工的结果"或"未加工的NURBS/曲面"。在 S30所确定的NURBS实际上是与将形变映射应用在对基网格执行网格到NURBS曲面转换算法 所得的结果上对应的曲面。因此,该形变映射(至少在概念上)修改了"未加工的结果",以用 2D图像来雕刻该曲面。为此,通过定义,该形变映射包括针对所述未加工结果的位置提供的 位移向量,并不是任何位置,而是与雕刻2D图像的位置对应的位置。基于2D图像的对应的像 素值,精确计算该位移向量,从而使其的确是雕刻在细分曲面上的2D图像。需要注意的是, 位移向量可以是空(即,不位移)。实际上,可以针对比2D图像的雕刻位置更广的范围来定义 形变映射,例如,整个曲面,只要在适当的地方(尤其在不涉及雕刻的位置)位移向量为空即 可。这仅仅是一种实施方式。简而言之,形变映射是一种函数,它指定了细分曲面的位置(进 而是基础NURBS面片的位置,诸如其控制点,和/或基网格的面上的位置)的3D移动,该方法 实现了所述位置与2D图像像素(例如,根据给定标准而保留的像素)之间的预定的关联(或 者其计算,即,值是预定的,或者对其进行计算的方式是预定的,并且不取决于用户的任何 进一步的输入),该方法进一步实现了基于相关联像素的3D移动值的预定计算。需要注意的 是,该3D动作的方向(或者其计算,即,值是预定的,或者对其进行计算的方式是预定的,并 且不取决于2D图像或用户的任何进一步输入,而是例如仅仅取决于基网格)可以是预定的。
[0082] 位移向量可以利用形成雕刻特征的函数来以任何方式计算,只要其是基于2D图像 的。图像的像素值被映射到细分曲面(得益于定义步骤S20)的位置上,并由此映射到所考虑 的NURBS曲面的位置上。在一个例子中,该方法所预期的像素值是像素灰度值。换句话说,关 联于2D图像的像素的灰度值被确定,并用于计算位移向量。该2D图像可以以灰度形式提供, 此时灰度值可以直接是像素值。2D图像还可以以RGB形式提供,此时该方法使用任意预定的 RGB-灰度转换算法。在两种情况下,该方法都可以对所保留的值实施任何进一步的处理。
[0083] 在一例子中,位移向量的幅度(或大小)基于对应的灰度值而递增。换句话说,所保 留的像素值的(灰度)值越高,该方法对未加工的曲面进行越多的修改(从幅度上说)。可以 实施任何递增函数。在一例子中,该函数仅是指示函数(如果像素值高于一预定阈值,则位 移,否则不位移,"正位移"值和"不位移"值之间可能具有平滑化,用以避免突兀的转换)。在 另一示例中,该函数是更细化的函数,例如线性函数。
[0084]用户还可以进一步从预定的二元列表中选择雕刻方向。通常,用户手动将2D图像 投影/附着到曲面上,如此前已解释的那样,然后用户可选择该位移是应当在投影的方向上 (即,从用户到曲面)还是反方向上(即,从曲面到用户)。可替换地,雕刻方向可以如以上提 到的那样预先确定。这些都是可配置的特征,用于增加系统的用户友好性。
[0085] 现在参考图6到图19,讨论该方法的一个特定例子。
[0086] 如图6的流程图所示,该例子中,该方法实际上通过在S32处计算位移向量(也因 此,形变映射),以及并行地在S34处对被标示为Bo的基网格执行网格到NURBS曲面转换算 法,来执行S30,然后示例的方法实际上在S36处,对S34的结果(记为So = PCCM(Bo))应用该形 变映射(记为刀)。
[0087]特别地,计算S32包括,根据Bo,首先确定(S320)对应于2D图像的雕刻位置的第一 3D网格(B4 = Rn(B1))13该第一 3D网格(记为Β4),对应于Bo的一部分,在该部分处将根据在S20 的用户设计规格来雕刻2D图像。其可以对应于Bo的受定义S20影响的所有面(与S20定义的 位置相关的相邻区域,其可以以任何预定的方式确定),并且可以是它的细分。需要注意的 是,也可以被选择性地保留无影响的面的狭带。
[0088]那么,计算S32包括:根据Β4,在Β4的法线方向上,基于2D图像的对应的像素值,对Β4 的顶点进行位移,以确定(S322)第二3D网格(B5 (i) = B4(i) +diN( i))。换句话说,该方法考虑 基网格的受雕刻影响的部分,并且依据该雕刻图像的像素值对其位置进行位移。按照网格 在顶点的法线方向来以预定方式计算位移方向(可以实施任何法线方向计算)。可以依据以 上的说明完成该计算,例如,像素灰度值线性地/按比例地/递增地确定位移的幅度(方向是 法向的,取向(朝向用户或相反)是用户可选的或是预定的)。
[0089] 那么,针对S34的结果的位置,计算S32可以计算(S324)位移向量(Δ (i,j)=Ci,j (S5)-Ci,」(S4)),该位移向量(Λ (i,j) = Ci,」(S5)-Ci,」(S4))等于对B5执行网格到NURBS曲面转 换算法所得的结果(S 5 = PCCM(B5))的对应控制点(Ci, j (S5))与对B4执行网格到NURBS曲面转 换算法所得的结果(S4 = PCCM(B4))的对应控制点(Ci, j (S4))之间的3D位置差。在此,可计算 SjP S5以对其进行快速执行。但是可以考虑任何其它计算实施方式。
[0090] 基于图6的特定示例执行起来尤其有效率,这得益于它所执行的特定计算方法。此 外,该示例确保了 PCCM()输出的所需的连续性得以保持(除不规则顶点的相邻区域外的任 何地方都是C2的连续性,在不规则顶点的相邻区域得到的至少是事实上,与PCCM算子的 特征相关,该例子实现的特定代数确保了这种保持。
[0091] 如图7所示,其描述了整体环境,输入的数据是细分曲面的基网格和二维图像。目 标在于在由基网格定义的曲面上雕刻2D图像的细节。该雕刻的结果是得到局部形变。相对 于曲面定位该2-D图像,以便定义图像的细节将位于曲面上的哪里。输出的数据是NURBS曲 面,体现了被雕刻的图像。在雕刻细节之外,初始曲面的整体形状并未改变。
[0092] 过程如下:
[0093] 1.通过使用初始基网格Bo,将输入的细分曲面转换为NURBS曲面So。
[0094] 2.通过使用初始基网格Bo和2D图像,执行基网格的计算。这提供了 NURBS曲面SjP &。曲面S4是局部的未改变的形状,曲面S5是局部的所雕刻的形状。
[0095] 3.由NURBS曲面SjP S5,计算控制点偏差。
[0096] 4.通过向NURBS曲面So应用这些控制点偏差,来雕刻该2D图像的细节。这样可产生 所得的NURBS曲面Su
[0097]显然,该方法保存了两个世界(细分曲面设计和NURBS设计)中的最佳部分,意味着 不需要改变雕刻区域以外的形状,即可将图像的细节雕刻在细分曲面上。这准确捕获了该 设计。
[0098]该例子的整个过程是完全自动化的,可以作为"雕刻"特征存储在基于历史的CAD 系统的数据结构中。输入的是细分曲面和图像,输出的是雕刻后的NURBS曲面。在执行了雕 刻操作之后,细分曲面能够被编辑,或者图像定义也能被改变。通过重新进行该雕刻特征, 获得对所得的曲面的修改版本。这允许了容易、快速地改变该设计。
[0099]尽管所得曲面是NURBS曲面,然而从用户的观点来看,功能性是细分曲面的功能 性。这是因为编辑是在输入的细分曲面上执行的。所得的曲面的NURBS方面是一种不限制编 辑能力的处理该结果的方式。
[0100] 现在结合更多实施细节来讨论该示例。
[0101]输入的数据和算子以以下方式细化。由其基网格Bo定义的细分曲面近似于NURBS 曲面So。图8示出了表征花瓶的3D建模对象的基网格Bo。图9示出了NURBS曲面So(其被示出给 最终用户,例如,消费者)。
[0102] 包括图像的平面记为P,其设计规格由本方法连续确定(例如,更新)。其由点X0和 两个正交的法向量U,V定义。平面上的任意点可以写成Xo+uU+vV,其中(ω,V) e R2。平面P的位 置定义了图像将被雕刻在曲面So的哪里。依据平面P的U,V向量定义形变映射AR2 。其 捕获与每个图像点相关联的灰度级,d(u,v)=0意味着点(u,v)处没有图像细节。图像被包 括在矩形I = [Umin,Umax] X [Vmin,Vmax]中,意味着在这个矩形外面d(U,V)=0。图10示出了平 面P上的矩形I,和它有关于曲面So的定位。函数d可以是递增函数,这对于技术人员而言是 个实施细节。
[0103] 示例的方法可以实现从3D空间到平面P的平整化操作,平面P由映射4户定 义。映射Q是否是线性的是不相关的。从3D空间正交投影到平面P是由线性映射?尸定 义的,也即:
[0104] H(X)= Xo+<X-Xo, U>U+<X-Xo, V> V
[0105] 从网格Mi到更精细网格Mi+1的网格细化被记为R,意味着Mi+1 = R(Mi)。典型地,算子R 是Catmull-Clark细分步骤。得到NURBS曲面S的控制点Pi, J^BSPid = Cid(S)O
[0106] 现在描述基网格计算的主要阶段。图11的图表示出了整个过程,并构成了图7的方 块图"基网格计算"的细节。
[0107] 第一步是识别将在其上雕刻图像的Bo面。令B1为从Bo提取得到的基网格,如图12所 不。
[0108] 该网格通过B2 = Q(B1)操作而平整化到平面P,生成体现了相同的拓扑结构的平坦 网格B2,如图13所示。
[0109] 现在,第一 3D网格(B4)的确定S310不仅包括提取基网格中对应于2D图像雕刻位置 的子网格也,如前所示地,还可包括此后的将子网格B 1细分预定倍数n,如前所述。这实现了 对2D图像细节的调整,以及更精炼的雕刻。
[0110]预定倍数η可以由用户(交互地)定义。然而它也可以基于与2D图像的细节水平相 关联的预定标准而递增。在后者的情况下,可以完全自动地通过评估该预定标准来执行η的 确定。
[0111] 接下来提供该自动化的例子。
[0112] 网格出将被细分,直到该网格的大小符合图像的细节。这产生网格B3 = Rn (B2 ),其 中整数η是细分的倍数,如图14所示。相同的细分过程B3 = Rn(B2)然后被应用到非平坦基网 格B1,即Β4 = Rn(B1 ),如图15所示。网格Β4和B3具有相同的拓扑结构。网格B3是平坦的,网格Β4 是不平坦的。
[0113] 通过确保足够数量的细分点以表示输入的图像,尤其在非空的形变区域,来估算 细分级数η:
[0114] -根据出容易估算两个相邻细分点之间的平均长度。
[0115]-根据输入的图像,腐蚀类的算法能够计算图像空间中所有非空形变区域的平均 厚度(参考"The Scientist and Engineer's Guide to Digital Signal Processing'', Steven ff.Smith)〇
[0116]然后n可以首先被选择(为例如最小整数,其确保)使得比值 大于1。该标准对用户而言是个良好的指标。
[0117]对于每个整数i,令Xi= (Xi,yi,Zi)为平坦网格B3的第i个点B 3⑴的3D坐标。在平面 P的局部2D轴系统中,该点的2D坐标是(m,Vi),其中m =〈Xi-X〇,U>U,Vi =〈Xi-X〇,V>V。令di = d (m,Vi)为平面P在点(m,Vi)处的形变映射的值。 网格B4现在被变为体现了相同的拓扑结构的另一网格B5,并且被修改如下。对于每 个整数i,令N(i)为按照网格irkBi)、通过使用B4(i)的邻近点计算的法向量。通过对η-I级 的每个细分单元周围的法线取平均,计算向量N(i)。然后,网格B 5的第i个点由B5(i)=B4(i) +cUN(i)定义。这在图16中示出。
[0119]目前为止,所有计算都是在网格上执行的。现在,是时候翻译控制点方面的信息 了,因为,最终,输出的是NURBS曲面。令S4为与由网格B4定义的细分曲面近似的NURBS曲面, 即S4 = PCCM(B4),如图17所示。类似地,令S5为与由网格出定义的细分曲面近似的NURBS曲 面,即S 5 = PCCM(B5),如图18所示。
[0120] 必须理解的是,S5不是所得曲面的局部形状。&的边界不适配初始曲面So。
[0121] 为了报告So的形变,由S4和S5计算新的函数Δ。
[0122] 通过构造:
[0123] -除了不规则顶点的相邻区域之外,来自S4(相应的是S5)的NURBS面片互相之间是 C 2,在不规则顶点的相邻区域它们至少是Ct^根据定义PCCM( ·))
[0124] -形变区域中的每个基网格面可以链接到两个NURBS面片:一个在S4,一个在&。然 而,这两个面片通常不具有相同的节点向量,并且在定义△之前,可以通过节点插入或度数 提升(参见 "The NURBS Book",L· Piegl和T ·Wayne,Springer,第二版,2013年)而针对每对 面片均匀化其向量。
[0125] 控制点偏差的映射/,_;?Δ(?,_/)由SdPS4控制点的差来定义:Δ (i,j)=Ci,j(S5)-C^(S4)13该形变映射将仅被应用于So上的形变区域面片的子集上。在此,这些面片的节点向 量大体上仍然与A的节点向量不一致,因此它们也需要被均匀化。
[0126] 一旦完成,通过对有关的NURBS曲面的控制点应用偏差Δ (i,j),获得初始曲面S0 的形变,生成输出曲面31。通过应用△,来保留S1的几何连续性。如果Φ表征由△的控制点和 So的均匀化的节点向量计算出的形状,那么除了不规则顶点的相邻区域外,Φ的面片互相 之间是C 2,在不规则顶点的相邻区域它们至少是(Λ因此S1可以表达为线性组合:51 = 5〇+&-54、5〇、54和55拥有相同的参数化(它们的面片共享相同的节点向量),它们几乎在所有地方 都是C 2A1*是如此。正如已经提到的,该方法可以在任何必要的地方实现上述合适的均匀 化(如众所周知的,并且解释在参见"The NURBS Book",L.Piegl和T.Wayne,Springer,第二 版,2013年)。
[0127] 图19示出了最终结果。
[0128] 图20至图26示出了在实际案例中该方法的应用。
[0129] 图20示出了不同纹理,图21示出了将这些纹理应用于平行六面体3D建模对象(由 基础基网格来建模,该基础基网格没有以图21的模式向用户示出,在该情况中其可以是很 简单的)的顶面上的结果,得益于该方法。可见,该方法可用于在平面上鲜明地雕刻纹理。图 22示出了吹风机,在它们的前面上雕刻有图案。图24示出了在平面上和在剃须刀柄上雕刻 图23所示图案的结果。图25示出了完整设计的剃须刀,带有雕刻于其上的所述图案。图26示 出了用该方法在3D建模对象264上雕刻标志260和图案/浮雕262的结果(对象264也由基础 基网格来建模,该基础基网格没有以图21的模式向用户示出)。
【主权项】
1. 一种计算机实现的用于设计3D建模对象的方法,所述方法包括w下步骤: ?由用户定义(S10)与细分曲面W及相应的预先确定的网格到NURBS曲面转换算法 (PCCM( ·))相关的基网格(Bo),所述细分曲面表征所述3D建模对象; ?由所述用户定义(S20)2D图像和用于在所述细分曲面上雕刻所述2D图像的位置;W 及 ?确定(S30)与将形变映射(z',yH^Δ化y))应用(S36)在对所述基网格执行(S34)所述 网格到NURBS曲面转换算法所得的结果(S〇 = PCCM(B〇))上对应的NURBS曲面(Si),所述形变 映射包括针对对所述基网格执行(S34)所述网格到NURBS曲面转换算法所得的结果的位置 提供的位移向量,所述位置与所述用于雕刻所述2D图像的位置对应,所述位移向量是基于 所述2D图像的对应像素值来计算(S32)的。2. 根据权利要求1所述的方法,其中,所述方法包括计算(S32)所述位移向量,包括: ?从所述基网格(Bo)确定(S320)与所述用于雕刻所述2D图像的位置对应的第一 3D网格 (B4=r(Bi)); ?通过基于所述2D图像的对应像素值在所述第一 3D网格的法线方向位移所述第一 3D 网格的顶点,来从所述第一 3D网格确定(S322)第二3D网格(B5(i)=B4(i)+diN(i));W及 ?针对对所述基网格执行(S34)所述网格到NURBS曲面转换算法所得的结果的位置,计 算(S324)位移向量(/\。〇')=(:1,^55)-(:1,^54)),该位移向量等于对所述第二30网格执行 所述网格到NURBS曲面转换算法所得的结果(Ss = PCCM化))的对应控制点化,j(Ss))与对所 述第一 3D网格执行所述网格到NURBS曲面转换算法所得的结果(S4 = PCCM(B4))的对应控制 点(Cl,如4))之间的3D位置差。3. 根据权利要求2所述的方法,其中,确定(S320)所述第一3D网格(B4 = r(Bi))包括:提 取所述基网格中的与所述用于雕刻所述2D图像的位置对应的子网格(Bi),W及在之后W预 先确定的倍数(η)细分所述子网格(Bi)。4. 根据权利要求3所述的方法,其中,所述预先确定的倍数(η)是由所述用户定义的和/ 或是基于与所述2D图像的细节水平有关的预先确定的标准而递增的。5. 根据权利要求1-4中的任一项所述的方法,其中,所述2D图像的对应像素值是像素灰 度值。6. 根据权利要求5所述的方法,其中,位移向量的幅度是基于对应的所述灰度值而递增 的。7. 根据权利要求1-6中的任一项所述的方法,其中,所述用户进一步从预先确定的二元 列表中选择雕刻方向。8. -种3D建模对象,由权利要求1-7中的任一项所述的方法设计而成。9. 一种计算机文件,包括对权利要求8所述的3D建模对象的设计规格。10. -种制造产品的方法,包括根据权利要求1-8中任一项所述的方法对3D建模对象的 设计、W及基于所述设计对所述产品的制造。11. 一种计算机程序,包括执行权利要求1-8中的任一项所述的方法的指令。12. -种数据存储介质,其上记录有根据权利要求11所述的计算机程序。13. -种CAD系统,包括禪合到GUI和存储器的处理器,所述存储器上记录有根据权利要 求11所述的计算机程序。
【文档编号】G06T17/30GK105844711SQ201610150690
【公开日】2016年8月10日
【申请日】2016年2月2日
【发明人】R·迈松纳夫
【申请人】达索系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1