制造带浮雕的三维对象的制作方法

文档序号:12288350阅读:246来源:国知局
制造带浮雕的三维对象的制作方法与工艺

三维(3D)对象可用各种方式来制造,各种方式包括诸如熔融沉积成型之类的打印和积层制造过程。3D打印机例如可基于对象的数字表示(在本文中被称为3D模型)来创建各种3D对象。3D模型可例如使用计算机辅助设计(CAD)系统或3D扫描仪来生成。在一些情况下,操纵3D模型以添加诸如文本之类的额外的特征可能是期望的。为此,可针对该文本生成新的3D模型,并且新的3D模型可在单独的操作中被添加到原始3D模型中或从原始3D模型中去除。这种方法可能是慢的、冗长的、并且资源密集的。这还涉及对于CAD应用的训练和熟悉程度,而这一技能通常大部分人都不具备。

概述

以下提供了本创新的简单概述,以提供对本文本所述的某些方面的基本理解。该概述不是权利要求主题的广泛概览。它既不旨在标识要求保护的主题的关键或重要的元素,也不描绘所要求保护的主题的范围。唯一的目的是以简化形式呈现所要求保护的主题的某些概念,作为稍后呈现的比较详细的描述的前奏。

一个实现提供了一种用于设计供制造的三维(3D)对象的方法。该示例方法包括获得包括多边形的三维(3D)网格以及获得二维(2D)图像。该方法还包括接收描述所述2D图像相对于所述3D网格的位置的位置信息以及基于所述2D图像和所述位置信息来修改所述3D网格以生成用所述2D图像进行浮雕处理的带浮雕的3D网格。

另一实现提供了一种用于生成供制造的3D模型的系统。该系统包括处理器以及系统存储器,所述系统存储器存储引导所述处理器的操作的代码。代码引导所述处理器获得包括多边形的三维(3D)网格。代码引导所述处理器获得二维(2D)图像。代码还引导所述处理器接收描述所述2D图像相对于所述3D网格的位置的位置信息,并基于所述2D图像和所述位置信息来修改所述3D网格,以生成用所述2D图像进行浮雕处理的带浮雕的3D网格。

另一实现提供了用于存储计算机可读指令的一个或多个计算机可读存储介质,所述指令在被一个或多个处理设备执行时生成带浮雕的3D模型。该计算机可读指令包括被配置成获得包括多边形的三维(3D)网格的代码以及被配置成获得二维(2D)图像的代码。该计算机可读指令还包括被配置成以下的代码:接收描述所述2D图像相对于所述3D网格的位置的位置信息,并基于所述2D图像和所述位置信息来修改所述3D网格,以生成用所述2D图像进行浮雕处理的带浮雕的3D网格。

下面的描述和附图详细地阐述了所要求保护的主题的某些说明性方面。然而,这些方面只是表示可以使用本发明的原理的各种方式中的一些方式,并且所要求保护的主题旨在包括所有这些方面和等效内容。通过与附图一起阅读下面的本发明的详细描述,所要求保护的主题的其他优点和新颖的特点将变得显而易见。

附图简述

图1是被配置用于实现本文中描述的技术的各方面的示例操作环境的框图;

图2是用于使用3D模型来制造3D对象的示例制造器的框图;

图3是用于生成供制造的3D模型的方法的过程流程图;以及

图4是概述用于生成供制造的3D模型的方法的过程流程图。

详细描述

作为正文前的图文,一些附图是在一个或多个结构组件(不同地称为功能、模块、特征、元件等等)的上下文中来描述概念的。附图中所示的各个组件能够以任何方式实现,诸如经由软件、硬件、固件或其任意组合来实现。在一些情况下,附图中示出的各组件可反映对应组件在实际实现中的使用。在其他情况下,附图中所示的任何单个组件可由多个实际组件来实现。附图中的任何两个或更多个分开组件的描绘可以反映单个实际组件所执行的不同功能。以下讨论的图1提供关于可被用来实现附图中所示的功能的一个系统的细节。

其他附图以流程图形式描述了概念。以此形式,某些操作被描述为构成以某一次序执行的不同的框。这些实现是示例性而非限制性的。此处描述的某些框可被分组在一起并在单个操作中执行,某些框可被分成多个组件框,并且某些框可以按与此处所示出的不同的次序来执行(包括以并行方式执行这些框)。流程图中所示的框可以通过软件、硬件、固件、手动处理等来实现。如此处所使用的,硬件可包括计算机系统、诸如专用集成电路(ASIC)之类的分立逻辑组件等。

关于术语,短语“配置成”涵盖可以构造任何种类的功能来执行所标识的操作的任何方式。功能可以被配置成使用例如软件、硬件、固件等来执行操作。术语“逻辑”涵盖用于执行任务的任何功能。例如,流程图中所示的每一操作对应于用于执行该操作的逻辑。操作可以使用软件、硬件、固件等来执行。术语“组件”、“系统”等可指代计算机相关的实体、硬件、和执行中的软件、固件或其组合。组件可以是在处理器上运行的进程、对象、可执行码、程序、函数、子例程、计算机、或软件和硬件的组合。术语“处理器”可指代硬件组件,诸如计算机系统的处理单元。

此外,所要求保护的主题可以使用产生控制计算设备以实现所公开的主题内容的软件、固件、硬件或其任意组合的标准编程和工程技术而被实现为方法、装置或制品。如此处所使用的术语“制品”旨在涵盖可以从任何计算机可读存储设备或介质访问的计算机程序。计算机可读存储介质可包括但不限于:磁存储设备(例如,硬盘、软盘、磁带)、光盘、紧致盘(CD)、数字多功能盘(DVD)、智能卡、闪存设备等等。作为对比,计算机可读介质(即,非存储介质)可包括用于无线信号之类的通信介质,诸如传输介质。

以下描述了用于生成带浮雕的3D模型的技术的示例实现。3D模型可以是被称为网格模型的一类模型,其包括由边连接的各顶点所限定的多边形的网格。网格可以是三角形网格。然而,任何合适的形状可被用于生成网格模型。本技术允许用户通过直接操纵3D模型来在该3D模型的表面浮雕处理图像。如本文中所使用的,术语“浮雕处理”指的是在3D对象或3D模型上创建凸起或凹陷的表面。为了添加浮雕,可通过将二维(2D)图像叠放在3D模型上来改变3D模型,这消除了为带浮雕的图像生成3D模型并组合多个3D模型的过程。以此方式,3D模型被更简单地操纵,这使得用户更容易地个性化现有的3D模型。要进行浮雕处理的3D模型或3D网格可被称为“最初的”3D模型或3D网格,而浮雕处理过程之后的3D模型在本文中被称为“带浮雕的”3D模型或3D网格。以下结合附图更全面地描述用于生成带浮雕的3D模型的技术。

图1旨在提供可在其中实现本文中描述的各技术的计算环境的简要概括描述。例如,可在这样的计算环境中实现用于生成要被用来制造3D对象的3D模型的方法和系统。尽管上文已经在运行在本地计算机或远程计算机上的计算机程序的计算机可执行指令的一般上下文中描述了所要求保护的主题,然而所要求保护的主题可结合其它程序模块来实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等。

图1是被配置用于实现本文中描述的技术的各方面的示例操作环境的框图。示例操作环境100包括计算机102。计算机102包括处理单元104、系统存储器106以及系统总线108。

系统总线108将包括但不仅限于系统存储器106的系统组件耦合到处理单元104。处理单元104可以是各种可用处理器中的任何一种。也可以使用双微处理器及其他多处理器体系结构作为处理单元104。

系统总线108可以是若干类型的总线结构中的任意类型,包括存储器总线或存储器控制器、外围设备总线或外部总线、和使用本领域的普通技术人员已知的任何各种各样的可用总线架构的本地总线。系统存储器106是包括易失性存储器110和非易失性存储器112的计算机可读存储介质。

基本输入/输出系统(BIOS)被存储在非易失性存储器112中,包含例如在启动期间在计算机102内的元件之间传输信息的基本例程。作为说明,而不是限制,非易失性存储器112可包括只读存储器(ROM)、可编程序只读存储器(PROM)、电可编程序只读存储器(EPROM)、电可擦可编程序只读存储器(EEPROM)或闪存。

易失性存储器110包括充当外部高速缓冲存储器的随机存取存储器(RAM)。作为说明而不是限制,RAM可以有许多形式,如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDRSDRAM)、增强的SDRAM(ESDRAM)、同步链路TMDRAM(SLDRAM)、直接型RAM(RDRAM),直接型动态RAM(DRDRAM)以及动态RAM(RDRAM)。

计算机102也包括其他计算机可读介质,诸如可移动/不可移动、易失性/非易失性计算机存储介质。例如,图1示出盘存储114。盘存储114包括但不仅限于,诸如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-210驱动器、闪存卡或记忆棒之类的设备。

另外,盘存储器114还可包括存储介质,分开地或与其他存储介质相结合,包括,但不仅限于,诸如紧致盘ROM设备(CD-ROM)之类的光盘驱动器、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)。为便于盘存储设备114连接到系统总线108,通常使用诸如接口116之类的可移动或不可移动接口。

可以理解,图1描述了在合适的操作环境100中在用户和所描述的基本计算机资源之间的中介的软件。这样的软件包括操作系统118。可以存储在盘存储器114上的操作系统118用于控制和分配计算机102的资源。

系统应用120利用由操作系统118通过存储在系统存储器106或者存储在磁盘存储114上的程序模块122和程序数据124对资源的管理。可以理解,所要求保护的主题可以利用各种操作系统或操作系统的组合来实现。

用户通过输入设备126向计算机102输入命令或信息。输入设备126包括但不限于定点设备(诸如鼠标、跟踪球、指示笔等)、键盘、话筒、操纵杆、圆盘式卫星天线、扫描仪、TV调谐卡、数码相机、数码摄像机、网络摄像头等等。输入设备126通过系统总线108经由接口端口128连至处理单元104。接口端口128包括,例如,串行端口、并行端口、游戏端口以及通用串行总线(USB)。

输出设备130与输入设备126使用一些相同类型的端口。如此,例如,可以使用USB端口来向计算机102提供输入,以及从计算机102向输出设备130输出信息。

提供了输出适配器132,以示出有诸如监视器、扬声器以及打印机之类的一些输出设备130,还有可经由适配器访问的其他输出设备130。输出适配器132包括,作为说明而不是限制,在输出设备130和系统总线108之间提供连接装置的视频卡和声卡。要注意,其他设备和设备系统可提供诸如远程计算机134之类的输入和输出能力两者。

计算机102可以是使用到诸如远程计算机134之类的一个或多个远程计算机的逻辑连接在联网环境中主存各种软件应用的服务器。远程计算机134可以是配备有web浏览器、PC应用、移动电话应用等等的客户端系统。

远程计算机134可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的电器、移动电话、对等设备或其他公共网络节点等等,并通常包括上文参考计算机102所描述的许多或全部元件。

远程计算机134可通过网络接口136在逻辑上连接到计算机102,然后经由通信连接138(其可以是无线的)连接。

网络接口136涵盖诸如局域网(LAN)和广域网(WAN)这样的无线通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网、令牌环网等等。WAN技术包括,但不限于,点对点链路、电路交换网,如综合业务数字网(ISDN)以及其变体,分组交换网络以及数字用户线(DSL)。

通信连接138指代被用来将网络接口136连接到总线108的硬件/软件。尽管为清楚起见通信连接138被示为在计算机102内部,但是,它也可以位于计算机102外部。作为示例,供连接到网络接口136的硬件/软件可包括内部和外部技术,诸如移动电话交换机、调制解调器,包括常规电话分级调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器以及以太网网卡。

用于服务器的示例性处理单元104可以是计算群集。盘存储114可包括例如保持成千上万的投放的企业数据存储系统。

计算机102可被配置来生成带浮雕的3D模型。数据124可包括一个或多个初始3D模型,该一个或多个初始3D模型可例如从便携式存储设备获得,或者从远程计算机或经由因特网下载。例如,3D模型可以是奖杯、牌匾、或任何其它合适对象的模型。在一些示例中,3D模型是网格模型。

应用120中的一者或多者可以被配置成使得用户能够选择最初的3D模型并对该最初的3D模型进行浮雕处理。例如,用户可能想要在3D模型上浮雕上人的名字。应用120可提供使得用户能够通过添加文本来定制最初的3D模型的图形用户界面(GUI)。通过该GUI,用户可输入用户想要放置在对象上的文本。用户还可规定字体、字体大小、语言等等。该文本可作为二维(2D)图像被叠放在3D模型上。该2D图像可被视为二进制图像,该图像具有针对每个像素的两个独立值。基于这些用户输入,计算机102可基于最初的3D模型和文本的2D图像来计算带浮雕的3D模型。

除了文本,一个或多个应用120还可使得用户能够在3D模型上浮雕任何合适类型的图像。例如,该图像可以是能够在3D模型的表面被重复的纹理的一部分。例如,纹理图像可包括实的且高对比度区域的图案,诸如黑白图案。这类纹理的示例包括清晰的轮廓和具有实的且高对比度区域的类似卡通的图像。清晰轮廓是区别性的、非抖动的,其具有光滑的边缘并且不具有渐变。本文中描述的技术允许图像在一个自动化步骤中在整个3D模型上重复。因此,与用户通过对3D模型的数个小的单独的操纵来直接调整3D模型的整个表面相比,复杂和精细的纹理可被容易地多地添加到3D模型。

数据124可包括一个或多个2D图像,该一个或多个2D图像可例如从便携式存储设备获得,或者从远程计算机或经由例如因特网下载。用户可选择这些2D图形中的一个或多个用于对初始3D模型进行浮雕处理。

在一些示例中,用户还可控制浮雕在初始3D模型上的放置,包括位置和朝向。用户可通过经由GUI定义投射表面来控制2D浮雕图像在3D模型上的放置。投射表面是一个几何表面,2D图像将被叠放在该表面上来确定如何更改3D模型。投射表面可以是简单的几何形状,诸如平面、球面、或圆柱体等。用户可选择更紧密地对应于要进行浮雕处理的表面的投射表面类型,诸如例如不同的几何形状。例如,如果要进行浮雕处理的表面是一块牌匾,则用户可选择平面的投射表面。如果要进行浮雕处理的表面是一个球,则用户可选择球面的投射表面。用户还可控制图像在投射表面上的位置、大小和朝向。用户还可指定挤压参数,该参数规定浮雕的深度或高度,即2D图像被压入3D模型的深度,或2D图像从3D模型突出的高度。

在选择了投射表面的类型、定位了投射表面、并且在投射表面上定位了浮雕图像之后,用户可指令计算机102生成带浮雕的3D模型。使用所有被提供的输入,计算机102通过挤压3D模型中与2D图像对应的部分来计算带浮雕的3D模型。用户可随后将带浮雕的3D模型存储到例如盘存储114中,或将该带浮雕的3D模型发送到制造器,诸如以下结合图2描述的制造器200。以下进一步结合图3描述由计算机102执行的用于生成带浮雕的3D模型的计算。

在一些示例中,所执行的用于生成带浮雕的网格的过程中的一些或全部可在云服务中被执行并被重新加载到用户的客户端计算机上。例如,所描述的用于对3D模型进行浮雕处理的应用中的一些或全部可在云服务中运行并通过客户端计算机从用户接收输入。由此,计算带浮雕的3D模型时所涉及的计算可在云计算系统上执行。

图2是用于使用3D模型来制造3D对象的示例制造器的框图。制造器200可包括控制单元或控制器202,该控制单元或控制器202耦合到第一机制204并被配置成执行第一机制204和第二机制206的指令。构造在第二机制206内的腔体208允许在制造对象210时材料被准备(例如,被加热和混合)。例如,腔体208被用于熔融并挤压细丝或其他可兼容的材料。

第一机制204可被称为机器人机制(例如高架式机器人),其包括各种机械或机电组件。通过执行指令集212内的至少一些指令,第一机制204可将这些组件致动为执行至少一些物理移动。制造管理器214可通过将3D模型(包括带浮雕的3D模型)划分成各层并为每一层提供特定制造指令来生成指令集212。在被致动时,这些组件可按水平方式、垂直方式、对角方式、旋转方式等移动。第一机制204的一个示例实现跨x、y或z轴移动打印机制或工具,以便将材料沉积在正被制造的对象210内的特定位置处。

第二机制206可被称为打印机制,该打印机制包括一个或多个打印工具头。材料可被推送或拉取到打印工具头中,并且电机可被安装在更远的地方,以便推送材料经过细导管进入腔体208。虽然第二机制206可类似于挤压器配置(例如单个挤压器头配置),应领会第二机制206表示任何兼容的技术,包括被配置成沉积各种类型的材料的传统打印工具头。

以上提到的指令(其被存储在指令集212中)可被统称为经协调的指令,因为这样的指令是协调多个组件来执行的。例如,针对挤压器配置中的不同步进电机的指令可被协调,使得合适的可执行材料被馈送到腔体208中。因此,针对一个步进电机的指令可在时间上与针对另一步进电机的指令同步,使得两个步进电机可彼此协调地操作。

制造管理器214可包括在计算设备的各种实现(诸如远程计算设备和附连的计算设备)上操作的硬件和软件组件。制造管理器214的一个示例实现处理对应于正被制造的对象的3D模型并将该信息划分成各层,其中每一层包括至少某种几何结构,其可包括对应于表面网格的几何元素。本公开可使用“分区”、“片”或另一类似的术语来代替“层”,并且应领会,这些术语被定义为可互换。

制造管理器214将对应于3D模型的数据结构存储在分区信息216内。几何结构一般指代几何元素的集合(诸如3D多面体或其他形状),其可表示要被沉积的可挤压材料的量。一个示例测量从容量上表示几何结构的至少一部分——并因此表示可挤压材料的量。该示例测量可使用各标准化单元来定义几何结构的一部分,其中每一单元诸如通过挤压宽度来表示在给定时间实例最小量(例如体积)的有色材料。每一地理元素可包括一个或多个标准化单元。

制造管理器214被配置成生成指令,这些指令在被控制器202执行时使第一机制204的各组件致动,这可导致第二机制206移动,随后表面几何结构(例如对象210的外部壳体)移动。任选地,可移动平台(诸如平台220)用作用于打印对象210的机制。第一机制204可操作平台220以将对象210和喷嘴218朝向彼此引导。指令集212可包括用于自动地校准平台220使得通过x、y和z方向上的或跨x-y平面的旋转中的一系列移动将3D对象210移动到针对喷嘴218的正确位置以沉积材料的指令。

制造器200的一些示例实现包括被用本文中描述的组件中的至少一些组件翻新的传统设备,包括控制器202、制造管理器214和打印工具头(诸如第二机制206)。作为一个选项,制造器200可包括用于管理电机集合并在命令被处理时从原始微处理器接收信号的附加微处理器。

为了解说一个示例,被表示在3D网格模型中的经验证的簇对象可通过处理表示该对象的每一多边形并通过切片平面投影每一多边形而被划分成各层。该投影按逐渐创建路径的方式生成点和到其他点的连接。从此刻开始,该路径被简化成表示相应制造器的特定硬件特征的可寻址单元的各单元(例如,几何元素的体积测量)。这些单元可以不是相同的尺寸、被轴对齐且在每一维度都为相同的尺寸。一个示例实现可沿着x、y或z轴利用不同尺寸的非立方单元,这允许每维度不同的有效分辨率。根据一示例实现,分区信息216可包括经体素化的数据,使得每一可寻址(体素)单元包括针对该可寻址体素单元内的几何结构的各种信息,诸如色彩、纹理以及亮度值。

示例制造器200包括电机布置和工具头,该工具头具有混合腔体和喷嘴。工具头还可包括用于使可挤压材料熔融到规定温度的加热元素。在制造3D对象时,制造管理器214确定能够被沉积在给定的(x,y,z)位置处的可挤压材料的近似量。制造管理器214使用所确定的量在对象的壳体上定义可寻址单元。每一单元表示3D对象的特定几何元素或一部分。可寻址单元可在本文中被表示成经体素化的数据,例如经体素化的数据结构。在一示例实现中,制造管理器214在体素单元(例如,体元素)中确定体积。制造器的3D空间是依据可挤压材料的最小体积来制造的。其他信息可包括隐式值,诸如距对象表面网格的距离、指示对象的体素单元是否占据所表示的体积的概率。该技术可被应用于对象的整个体积,包括外壳。

图3是用于生成供制造的3D模型的方法的过程流程图。操作环境100的硬件或软件的一个或多个组件可被配置成执行方法300。在一些示例中,方法的各个方面可在云计算系统中执行。方法300可在块302处开始。

在块302,获得3D模型。例如,该3D模型可由用户选择并从存储设备、远程计算机、或通过互联网来获取。3D模型可以是包括多边形(诸如三角形)网格的网格模型。

在块304,获得2D图像并可提取该2D图像的轮廓。该2D图像可由用户选择并从例如存储设备、远程计算机、或通过互联网来获取。该2D图像还可基于用户的文本输入和对字体属性(诸如字体大小、字体类型等)的选择来生成。该2D图像可以是位图,在这种情况下,位图被处理以提取将被用来对3D模型进行浮雕处理的轮廓。轮廓被表示为多边形并且可包含孔。多边形的内部表示将从网格被挤压出的并且与位图的实的部分相对应的那些区域。

提取轮廓包括生成2D向量坐标,该坐标表示2D位图图像的实的部分的轮廓线。任何合适的技术可被用于提取轮廓。在一个示例中,位图首先被处理使得每一个像素被定义为实的或空的。例如,如果位图是黑白的,则黑色像素可被视为实的,而白色像素可被视为空的。在文本的情况下,对应于字母的一部分的位被称为实的,而对应于字母之间的空间的位被称为空的。如果位图是彩色位图,则每一个像素的色彩可与一阈值作比较以确定该像素要被视为实的还是空的。

为了生成轮廓,从上至下并且从左至右、或以任何其它合适的方向扫描位图。当找到一个实的位时,该位被视为种子点并且该位的八个像素邻居被沿顺时针方向扫描直到找到另一个实的位。如果找到这样的位,则该位变为新的种子点并且当前的种子点被输出到2D向量坐标集合。这一过程重复进行直到抵达原始的起始种子点。一旦抵达原始的种子点,则已找到了闭合的边缘,并且收集到的2D向量坐标被输出到轮廓集合。该轮廓是2D图像的一部分的向量轮廓线。在一些示例中,种子点也被标记为在扫描期间“已访问”以避免扫描位图的相同部分。一旦输出闭合的边缘,则位图被再次扫描以寻找另一个未访问的种子点,并且该过程重复。包含在闭合边缘内的轮廓(诸如字母内的孔)可使用类似过程来标识。例如,一旦找到闭合的边缘,则闭合边缘的内部可被扫描以寻找空的位。如果找到空的位,该位的八个像素邻居可被扫描,并且任何实的位的2D向量参数可被输出到轮廓的2D向量坐标集合。

在一些示例中,在标识位图的轮廓之后,每一个轮廓被简化成仍然准确地描述所提取的轮廓的较少数量的向量坐标。任何合适的算法可被用来简化闭合边缘,诸如Ramer-Douglas-Peucker算法等等。在一些示例中,用于简化轮廓的技术包括逐个种子点地扫描每一个轮廓。在扫描的开头,确定由输入轮廓的前两个种子点所定义的基线。随后获得第三个种子点并且第三个种子点距基线的垂直距离被计算并与阈值值作比较。如果距离小于阈值值,则获得下一种子点,并且该过程重复。一旦种子点被标识为其中计算出的距离超过阈值,则该种子点和轮廓中的下一点变成下一基线,而之前是基线的第一个点的原点被输出作为经简化的轮廓的一部分。在一些示例中,所获得的2D图像已经以向量表示,在这种情况下,提取轮廓的过程可被跳过。

在块306,生成浮雕坐标。浮雕坐标被用于将2D图像放置在3D网格模式的表面上。3D网格的每一个3D顶点具有可被映射到2D图像的一部分的对应的浮雕坐标。浮雕坐标可通过投射生成。投射的点可以是简单表面,如平面、球面、或圆柱体,这是容易参数化的,意味着2D图像可被容易地映射到表面。复杂3D网格模型的各顶点可被投射到这一简单投射表面上以生成浮雕坐标。在平面投射表面的情况下,各顶点被沿平面的法线投射。在球面投射表面的情况下,投射线放射自球面的中心并且穿过网格顶点。在圆柱形投射表面的情况下,投射线垂直地放射自圆柱体的轴并且穿过网格顶点。对于3D网格的每一个顶点,对应投射线与投射表面的交点的参数化2D坐标定义了该顶点的浮雕坐标。3D网格的浮雕坐标在本文中被统称为浮雕-坐标网格。在一些示例中,为了将图像放置在网格上,用户被给予对投射表面的位置、旋转、以及大小的控制。用户还确定2D图像在投射表面上的位置、旋转、以及大小。基于投射表面和2D图像的放置,2D图像的各点和3D网格的浮雕坐标可被映射到相同相同的2D坐标空间。

在一些示例中,方法包括自动确保3D网格模型的重叠部分不被同一投射图像所覆盖,诸如可能在凹面网格的情况下可能发生的。这可通过在对应于图像的中心点的网格多边形中开始投射并扩展到相邻多边形来实现。在当前多边形返回到面向投射线时,沿当前方向的扩展停止。

在2D图像可从3D网格的表面被挤压出之前,3D网格的多边形被2D图像的轮廓线分割。为了简化该分割过程,分割可在投射面的2D空间中执行,因为3D网格的每一个3D多边形具有由其顶点处的浮雕坐标给出的对应的2D三角形。以下结合块308和310描述分割3D网格。

在块308,为浮雕-坐标网格生成分割点。分割点在其中2D图像的轮廓线穿过2D浮雕-坐标网格的2D多边形中的一个的边的任何点处生成。每个多边形将被穿过它的每一个轮廓线段分割。为了降低生成分割点中涉及的计算复杂度,边界矩形测试可被用于跳过不相交的多边形和轮廓线段的组合。

在块310,通过将块308处标识的分割点内插到3D网格的对应位置来分割3D网格。每一个分割点变成新的多边形的顶点,并且还可添加更多顶点以生成新的多边形,使得没有任何一个多边形的边与2D图像的轮廓线交叉。因此,网格的每一个多边形将对应于2D图像的内部部分或2D图像的外部部分,但不同时对应于两者。

在块312,2D图像被从3D网格模型中挤压出。为了挤压2D图像,被拆分的3D网格的对应于2D图像内部的多边形被偏移。偏移多边形可包括将多边形从3D网格的表面升起使得3D图像从3D模型的表面突出。偏移多边形可包括将多边形压入到3D网格中使得3D图像沉入到3D模型的表面中。为了偏移多边形,每个多边形的顶点可沿垂直于投射表面的方向偏移一个相等的量。偏移的方向可以沿投射线或沿垂直于投射表面的方向。对于平面的投射表面,每个多边形的顶点可沿相同方向偏移一个相等的量。对于非平面的投射表面(诸如球面投射表面),每个多边形的顶点可沿远离球体中心的方向偏移一个相等的量。在平移多边形之后,更多多边形被添加以表示3D网格中的突出或凹陷的侧壁。

为了虑及2D图像中的孔,对应于内部区域的轮廓环可沿一个方向被挤压,而对应于孔的轮廓环可沿相反方向被挤压。无论这些轮廓环以什么顺序被挤压,最终效果是相同的。

该过程流程图不旨在指示方法300的各框要以任何特定次序来被执行,或者在每一种情况下都要包括所有框。进一步,取决于具体实现的细节,任何数量的未示出的附加框可被包括在方法300内。

图4是概述用于生成供制造的3D模型的方法的过程流程图。操作环境100的硬件或软件的一个或多个组件可被配置成执行方法400。在一些示例中,方法的各个方面可在云计算系统中执行。方法400可在块402处开始。

在块402,获得3D模型。该3D模型可由用户选择并从存储设备、远程计算机、或通过例如互联网来获取。3D模型可以是包括多边形(诸如三角形)网格的网格模型。

在块402,获得2D图像。该2D图像可由用户选择并从例如存储设备、远程计算机、相机、智能手机、或通过互联网来获取。该2D图像可以是任何类型的图像文件格式,包括诸如联合图像专家组(JPEG)、图形互换格式(GIF)、以及Windows位图(BMP)之类的基于像素的格式以及基于诸如可伸缩矢量图形(SVG)之类的矢量的格式。该2D图形还可以是彩色图形或黑白图形。该2D图像还可通过基于用户的文本输入和对字体属性(诸如字体大小、字体类型等)的选择生成来获得。

在块406,描述2D图像相对于3D模型的位置的位置信息被获得。该位置信息可包括2D图像相对于3D模型的相对位置、大小、以及旋转朝向。在一些示例中,该位置信息从用户处获得。例如,用户可与GUI交互以通过图形用户界面改变2D图像的位置、大小、以及旋转朝向。从用户处接收位置信息还可包括选择投射表面类型并控制投射表面相对于3D模型的放置,如结合图3描述的。在一些示例中,可以存在可用的预确定的图像放置,并且获得位置信息可包括从存储器中获取该预确定的位置信息。例如,预确定的位置信息可被存储在2D图像文件内或者在与2D图像文件和/或3D模型相关联的分开的文件中。位置信息还可指示2D图像是否要在3D模型上重复,例如在2D图像提供表面纹理的情况下。

在块408,基于2D图像和位置信息来修改3D模型以生成带浮雕的3D模型。所得到的带浮雕的3D模型用该2D图像来进行浮雕处理。在一些示例中,2D图像出现在带浮雕的3D模型上一次,诸如例如出现在牌匾或奖杯上的文本。在一些示例中,2D图像在带浮雕的3D模型的表面上重复,例如用来提供表面纹理。对3D模型的修改在单次操作中实现,意味着一旦已获得了3D模型、2D图像、以及位置信息,则对3D模型的修改由一个或多个处理设备自动执行而无需附加的用户插手,诸如用户重新放置网格顶点或者用户根据2D图像生成3D模型。

为了创建带浮雕的3D模型,3D模型的对应于2D图像的内部区域的部分被从3D模型挤压出。在一些示例中,3D模型的挤压出的部分的顶点全都被平移相同的量,并因而维持相对于彼此的相同位置。以此方式,带浮雕的3D模型的对应于2D图像的内部的表面将具有与3D模型在被修改前的对应部分相同的浮雕。换言之,3D模型的带浮雕的部分的表面特征在浮雕前后将相同,不损失任何细节。

该过程流程图不旨在指示方法400的各框要以任何特定次序来被执行,或者在每一种情况下都要包括所有框。进一步,取决于具体实现的细节,任何数量的未示出的附加框可被包括在方法400内。

示例1

提供了一种用于设计供制造的三维(3D)对象的方法的示例。该示例方法包括获得包括多边形的三维(3D)网格以及获得二维(2D)图像。该方法还包括接收描述所述2D图像相对于所述3D网格的位置的位置信息,并基于所述2D图像和所述位置信息来修改所述3D网格,以生成用所述2D图像进行浮雕处理的带浮雕的3D网格。

在一些实现中,修改所述3D网格包括将所述3D网格投射在投射表面上以生成浮雕-坐标网格以及基于所述2D图像生成所述浮雕-坐标网格的分割点。修改所述3D网格还包括通过将所述分割点内插到所述3D网格来分割所述3D网格,其中经分割的3D网格的每一个多边形对应于所述2D图像的内部或者所述2D图像的外部中的一者,以及平移对应于所述2D图像的内部的多边形以生成所述带浮雕的3D网格。

在一些实现中,所述2D图像是位图图像,并且所述方法包括生成所述位图图像的矢量轮廓线,其中所述矢量轮廓线被用于生成所述浮雕-坐标网格的分割点。生成所述浮雕-坐标网格的分割点可包括在所述位图图像的矢量轮廓线与所述浮雕-坐标网格的多边形相交的任意位置处创建分割点。

所述投射表面可以是平面,并且将所述3D网格投射在所述投射表面上可包括将所述3D网格的顶点沿垂直于所述投射表面的方向投射。所述投射表面还可以是圆柱体,并且将所述3D网格投射在所述投射表面上可包括将所述3D网格的顶点投射在垂直放射自所述圆柱体的轴的直线上。所述投射表面还可以是球面,并且将所述3D网格投射在所述投射表面上可包括将所述3D网格的顶点投射在放射自所述球面的中心的直线上。该方法可包括从用户处接收对于所述投射表面的定义,其中所述定义包括投射表面类型和位置。

该方法还可包括基于带浮雕的3D网格制造3D对象。在一些实现中,所述带浮雕的3D网格的对应于所述2D图像的内部的表面具有与所述3D网格在被修改前的对应部分相同的浮雕。

示例2

另一实现提供了一种用于生成供制造的3D模型的系统。该示例系统包括处理器以及系统存储器,所述系统存储器存储引导所述处理器的操作的代码。代码引导所述处理器获得包括多边形的三维(3D)网格。代码引导所述处理器获得二维(2D)图像。代码还引导所述处理器接收描述所述2D图像相对于所述3D网格的位置的位置信息,并基于所述2D图像和所述位置信息来修改所述3D网格,以生成用所述2D图像进行浮雕处理的带浮雕的3D网格。

在一些实现中,为了修改所述3D网格,代码可引导处理器将所述3D网格投射在投射表面上以生成浮雕-坐标网格、基于所述2D图像生成所述浮雕-坐标网格的分割点,以及通过将所述分割点内插到所述3D网格来分割所述3D网格。经分割的3D网格的每一个多边形对应于所述2D图像的内部或者所述2D图像的外部中的一者。代码可引导处理器平移对应于所述2D图像的内部的多边形以生成所述带浮雕的3D网格。

在一些实现中,所述2D图像是位图图像,并且代码引导处理器生成所述位图图像的矢量轮廓线,其中所述矢量轮廓线被用于生成所述浮雕-坐标网格的分割点。为了生成所述浮雕-坐标网格的分割点,代码可引导处理器在所述位图图像的矢量轮廓线与所述浮雕-坐标网格的多边形相交的任意位置处创建分割点。

所述投射表面可以是平面,并且为了将所述3D网格投射在所述投射表面上,代码可引导处理器将所述3D网格的顶点沿垂直于所述投射表面的方向投射。所述投射表面还可以是圆柱体,并且为了将所述3D网格投射在所述投射表面上,代码可引导处理器将所述3D网格的顶点投射在垂直放射自所述圆柱体的轴的直线上。所述投射表面还可以是球面,并且为了将所述3D网格投射在所述投射表面上,代码可引导处理器将所述3D网格的顶点投射在放射自所述球面的中心的直线上。代码可引导处理器生成图形用户界面(GUI),所述图形用户界面使得用户能够选择投射表面类型并控制所述投射表面相对于所述3D网格的放置。

代码还可引导处理器发送带浮雕的3D网格给3D打印机以供基于该带浮雕的3D网格来制造3D对象。在一些实现中,所述带浮雕的3D网格的对应于所述2D图像的内部的表面具有与所述3D网格在被修改前的对应部分相同的浮雕。

示例3

另一实现提供了用于存储计算机可读指令的一个或多个计算机可读存储介质,所述指令在被一个或多个处理设备执行时生成带浮雕的3D模型。该计算机可读指令包括被配置成获得包括多边形的三维(3D)网格的代码以及被配置成获得二维(2D)图像的代码。该计算机可读指令还包括被配置成用于以下的代码:接收描述所述2D图像相对于所述3D网格的位置的位置信息,并基于所述2D图像和所述位置信息来修改所述3D网格,以生成用所述2D图像进行浮雕处理的带浮雕的3D网格。

计算机可读指令还包括被配置成将所述3D网格投射在投射表面上以生成浮雕-坐标网格的代码。计算机可读指令还包括被配置成基于所述2D图像生成所述浮雕-坐标网格的分割点的代码。计算机可读指令还包括被配置成通过将所述分割点内插到所述3D网格来分割所述3D网格的代码,其中经分割的3D网格的每一个多边形对应于所述2D图像的内部或者所述2D图像的外部中的一者。计算机可读指令还包括被配置成平移对应于所述2D图像的内部的多边形以生成所述带浮雕的3D网格的代码。

在一些实现中,所述2D图像是位图图像,并且计算机可读指令还包括被配置成生成所述位图图像的矢量轮廓线的代码,其中所述矢量轮廓线被用于生成所述浮雕-坐标网格的分割点。被配置成生成所述浮雕-坐标网格的分割点的代码可被配置成在所述位图图像的矢量轮廓线与所述浮雕-坐标网格的多边形相交的任意位置处创建分割点。

存储器存储设备还可包括被配置成提供图形用户界面(GUI)的代码,所述图形用户界面使得用户能够选择投射表面类型并控制所述投射表面相对于所述3D网格的放置。在一些示例中,所述带浮雕的3D网格的对应于所述2D图像的内部的表面具有与所述3D网格在被修改前的对应部分相同的浮雕。

以上已经描述的内容包括所要求保护的主题的各方面的示例。当然,出于描绘所要求保护的主题的目的而描述组件或方法的每一个可以想到的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护的主题的许多其他组合和排列都是可能的。因此,所要求保护的主题旨在包含落在所附权利要求书的精神和范围内的所有这样的更改、修改和变化。

特别地,对于由上述组件、设备、电路、系统等执行的各种功能,除非另外指明,否则用于描述这些组件的术语(包括对“装置”的引用)旨在对应于执行所描述的执行此处在所要求保护的主题的示例性方面中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。关于这一点,还应认识到,本创新包括具有用于执行所要求保护的主题的各种方法的动作和事件的计算机可执行指令的系统以及计算机可读存储介质。

有多种实现所要求保护的主题的方式,例如,使应用和服务能使用在此描述的技术的适当的API、工具包、驱动程序代码、操作系统、控件、独立或可下载的软件对象等等。所要求保护的主题还构想从API(或其他软件对象)的观点来看,以及从根据本文中所述技术操作的软件或硬件对象的用途。如此,本文中所描述的所要求保护的主题的各种实现可以具有完全以硬件、部分以硬件而部分以软件、以及以软件来实现的各种方面。

前述系统已经参考若干组件之间的交互被描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件、以及附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(分层的)。

另外,应该注意,一个或多个组件也可以合并到提供聚合功能的单一组件中,或者也可以分成多个单独的子组件,并且,可以提供诸如管理层之类的任何一个或更多中间层,以可通信地耦合到这样的子组件,以便提供集成的功能。本文中所述的任何组件也可与本文中未专门描述但本领域技术人员一般已知的一个或多个其他组件进行交互。

另外,尽管可能已经相对于若干实现中的一个实现公开了所要求保护的主题的某一特征,但是如可对任何给定的或特定的应用所希望且有利的那样,这样的特征可与其它实现的一个或多个其它特征相组合。而且,就术语“包括”、“含有”、“具有”、“包含”、其变型以及其他类似单词在详细描述或权利要求书中的使用而言,这样的术语旨在以类似于术语“包括”作为开放的过渡词的方式为包含性的而不排除任何附加或其他元素。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1