背景技术:
通常,以多边形网格(本文也称为三维网格)的形式生成三维模型或表示。多边形网格通常包括表示三维空间中的点的顶点,以及用于在三维中定义对象的形状的多边形。为了编辑三维模型,用户可以操纵与三维模型相关联的线或曲线。线或曲线可以指与三维模型相关联的线段。然而,由于三维模型可以对应于大量的线或曲线,特别是在复杂的三维模型中,编辑三维模型可能是耗时且繁琐的。
技术实现要素:
本发明的实施例旨在促进三维模型的直观和高效编辑。特别地,可以提供编辑手柄,其能够实现对线或曲线的集合的操纵。以这种方式,可以以编辑手柄的操纵所指示的方式来编辑该线或曲线的集合。此外,通过呈现与多个相关的线或曲线对应的单个编辑手柄,用户界面不那么拥挤,为用户提供更直观和期望的体验。另外,由于可能期望编辑以实现三维模型的其他方面,因此本文描述的实施例提供将编辑传播到影响区域内的其他线或曲线。以这种方式,编辑可以被传播到三维模型内的其他曲线,而不必将相同的编辑应用于整个模型。这种实现通常减少了对全局编辑的不期望的影响。
附图说明
图1描绘了对象被呈现的场景。
图2描绘了根据本公开的各种实施例的用于实现模型编辑引擎的示意性图形处理系统的各方面。
图3描绘了根据本公开的各种实施例的具有各种曲线的三维对象。
图4描绘了根据本公开的各种实施例的包括编辑手柄的三维对象集合。
图5描绘了根据本公开的各种实施例的具有断开连接的组件的另一个三维对象。
图6示出了根据本公开的各种实施例的促进三维模型编辑的第一处理流程。
图7示出了根据本公开的各种实施例的促进三维模型编辑的第二处理流程。
图8是可以采用本公开的实施例的示例计算设备的框图。
具体实施方式
三维模型通常定义三维中的对象。在这方面,对象可以由三维模型经由三维中的对象的数学定义来定义。通常,以多边形网格(本文也称为三维网格)的形式生成三维模型或表示。多边形网格通常包括表示三维空间中的点的顶点,以及定义三维中对象的形状的多边形。
通常,用户希望修改或编辑经由三维模型绘制的对象。例如用户可能希望旋转、平移和/或缩放虚拟场景内呈现的三维对象。仅作为示例,并且简要参考图1,用户可能希望操纵场景中呈现的各种对象。作为示例,用户可能希望修改场景内的椅子102的高度,改变场景内的桌子104的尺寸,操纵玻璃杯106-112的形状等。然而,因为三维模型通常包括顶点和多边形的密集网格,所以编辑三维模型可能具有挑战性。
在一些传统方法中,可以通过编辑与绘制对象相关联地呈现的线或曲线来操纵三维模型。由于三维模型包括大量的线或曲线,特别是复杂的三维模型,编辑三维模型可能是打击性的和乏味的。特别是,将大量曲线暴露为可编辑对于用户来说可能是打击性的体验。例如用户可能需要评估众多曲线以决定要操纵的特定曲线,这可能导致试错(trial-and-error)操纵。此外,单独编辑曲线可能是劳动密集型任务。
因此,本文描述的实施例涉及三维模型的直观且有效的编辑。特别地,用户可以直观且高效地操纵绘制对象的特征(例如曲线)以实现对应的三维模型的编辑。在高级别,基于特征的分析,诸如例如性质、关系和/或距离,将特征集合(例如曲线)聚合或分组在一起。然后编辑手柄可以被生成并与特征集合相关联地被显示,使得编辑手柄的操纵导致应用于特征集合的每个特征的类似编辑。通过呈现用于特征组的特定编辑手柄,编辑所绘制的对象或与其相关联的三维模型对于用户来说可以更直观。例如不是每个特征具有对应的编辑手柄并因此使显示混乱,用户可以呈现和操纵更少的编辑手柄。
如本文所述,在操纵编辑手柄时,例如通过执行平移、旋转和/或缩放来编辑对象,可以将适当的编辑传播到其他特征,使得该对象和三维模型可以被高效编辑。在实施例中,可以确定或标识影响区域,使得编辑被应用或传播到影响区域内的特征。利用影响区域来定义编辑传播可以使得与三维模型相关联的特征的一部分能够被编辑。这可以是有利的,因为用户可能希望仅修改与三维模型相关联的特征的一部分而不是整个特征集合。影响区域可以以多种方式中的任意一种来确定。例如可以基于与特征相关联的性质、关系和/或距离来自动确定传播编辑的影响区域。作为另一示例,可以经由用户输入或选择来提供或修改影响区域。
现在转向图2,图2描绘了根据本公开的各种实施例的用于实现模型编辑引擎212的示意性图形处理系统210的示例配置,该模型编辑引擎212高效且有效地促进三维模型编辑。如图2所示,数据存储214可以是图形处理系统210可访问的。数据存储214可以存储本文描述的实施例中使用的计算机指令(例如软件程序指令、例程或服务)和/或数据。在一些实现中,数据存储214存储经由模型编辑引擎212的各种组件接收的信息或数据,并根据需要向各种组件提供对该信息或数据的访问。尽管被描绘为单个组件,但是数据存储214可以体现为一个或多个数据存储。此外,数据存储214中的信息可以以任意合适的方式分布在用于存储的一个或多个数据存储上(可以在外部托管)。在实施例中,在数据存储214中存储的数据包括特征属性(例如性质、关系等)、用户偏好等。
图形处理系统210可以是由计算设备上的指令执行的任意类型的处理系统。图形处理系统210可以在任意类型的计算设备上操作,诸如用户设备和/或服务器。图8中描绘了具有这种指令的计算设备的示例。尽管模型编辑引擎212和对应的组件在本文中一般被描述为在计算设备上操作,但是可以理解,与其相关联的组件或功能可以在设备之间分布(例如在云计算或分布式计算环境中)。仅作为示例,显著特征标识符220可以经由与托管图形处理系统210的用户设备通信的服务器来操作。
如图所示,图形处理系统110包括模型编辑引擎212。如所描述的,模型编辑引擎212促进直观、高效和有效的三维模型编辑。通常,并且在高级别,模型编辑引擎212包括编辑手柄管理器216和编辑管理器218。编辑手柄管理器216通常管理生成和提供编辑手柄。如本文所述,编辑手柄使得用户能够编辑与三维模型相关联的特征(曲线)集合。根据检测到编辑手柄的操纵,编辑管理器218管理与三维模型相对应的适当编辑。
模型编辑引擎212可以获得定义对象的三维模型作为输入。在一些实施例中,由三维模型定义的对象可以表示人造对象,对于该人造对象,显著特征可以是更容易可检测的。可以以任意数量的方式获得三维模型。作为一个示例,在打开包括一个或多个三维模型的图像或场景时,可以将这样的三维模型提供给模型编辑引擎212。作为另一个示例,用户可以选择图像或场景中的对象。根据用户选择,可以将表示对象的三维模型提供给模型编辑引擎212。此外,可以从多个源中的任意一个获得三维模型。例如在一些情况下,可以从模型编辑引擎212可访问的数据存储214获得三维模型。在其他情况下,可以从服务器(例如通过网络)传送三维模型。
在获得三维模型后,编辑手柄管理器216通常被配置为生成并提供编辑手柄集合。编辑手柄是指经由图形用户界面呈现的手柄或工具,其允许用户编辑或操纵对象或其一部分(例如特征集合)。例如通过选择和拖动根据三维模型的特征(例如曲线)定位的编辑手柄,用户可以启动对三维对象的操纵或编辑。
在实施例中,编辑手柄管理器216可以包括显著特征标识符220、特征属性标识符222、特征集合生成器224和编辑手柄提供器226。可以理解,可以使用任意数量的组件以执行本文所述的功能,并且实施例不应限于本文所述的那些。
显著特征标识符220通常被配置为标识与三维模型相关联的显著特征。显著特征通常是指明显或突出的特征。根据本文描述的实施例,显著特征识别器220通常标识显著几何特征。特征或几何特征通常是指与三维模型的几何相关的特征。特征可以是例如与三维模型对应的曲线、线或线段。在这方面,显著特征识别器220可以标识与三维模型相关联的曲线集合。尽管本文一般将显著特征描述为曲线(线、线段),但是可以理解,可以另外或替代地标识其他几何特征。
可以采用各种方法来标识与三维模型相关联的显著特征。作为一个示例,作为三维模型或网格,包括三角形,可以通过评估角度来标识显著特征。为此,可以基于角度来标识显著特征。例如假设角度超过指示尖锐特征的度数阈值。在这种情况下,与该角度对应的曲线或边缘可以被标识为显著特征。作为另一示例,机器学习算法可以被训练并用于检测显著特征。任意数量的方法可以被采用并且不旨在限制实施例的范围。
特征属性标识符222通常被配置为标识与所标识的显著特征(例如曲线)相关联的特征属性。以这种方式,可以标识在编辑期间可能期望保留的特征属性。如本文使用的特征属性通常是指与三维模型的特征或特征集合相关联的属性或方面。特征属性可以是性质、关系和/或邻近度。通常,性质是指特征的任意类型的性质、特性或方面(例如特定曲线)。性质可以包括线性、圆度、平面度等的指示。关系属性是指多个(两个或更多)特征之间的关系的指示。例如关系属性可以指示由两个或更多个特征共享的性质。关系可以包括共面性、平行性、对称性、同心性等的指示。邻近度属性通常是指特征之间的空间距离。可以通过各种方式测量邻近度。
在这方面,特征属性标识符222可以分析显著特征并且标识与其相关联的性质。类似地,特征属性标识符222可以分析显著特征并且标识它们之间的关系和/或邻近度。仅作为示例,并且参考图3,假设曲线302、304、306和308被标识为与三维模型对应的显著曲线。在这种情况下,特征属性标识符222可以标识曲线302、304、306和308中的每一个是同心的并且彼此平行。
特征集合生成器224被配置为生成相关特征的集合、组或集群。相关特征通常是指以某种方式彼此相关的三维模型的特征(例如曲线)。有利地,聚类或分组相关特征使得每个相关特征集合能够具有对应的编辑手柄,使得可以均匀地编辑相关特征集合。此外,为相关特征集合呈现单个编辑手柄减少了所显示的编辑手柄的数量,并且因此可以改进用户满意度。
可以以各种方式中的任意一种来执行确定相关特征。在一个实现中,诸如性质、关系和/或邻近度的特征属性可以被分析并被用于确定相关特征。在高级别,具有相似性质、彼此具有关系和/或彼此接近的特征可以被标识并且被用于生成相关特征集合。可以使用各种测量、阈值等来确定相关特征集合。例如可以认为在彼此阈值距离内的特征是相关的。此外,可以对特征属性进行加权,使得在确定特征之间的相关性时,可以将一个属性或属性类型(例如关系)加权得高于另一属性或属性类型(例如性质)。
可以附加地或替代地利用其他几何方面来确定相关特征。例如在一些实现中,可以利用几何图元来对特征进行聚类或分组。在这样的实现中,可以与对象相关联地检测图元。根据检测到的图元(例如瓶子的主体),与特定图元相关联的特征可以被分组在一起或被指定为相关特征,或者以其他方式用于确定相关特征。
在一些情况下,特征可以在层级结构中相关。例如层级的父节点可以表示三维模型的每个显著特征,并且子节点然后可以包括特征的各种组合。以这种方式,层级路径的最后一个子节点可以表示特定特征。如本文所述,层级结构中的相关特征使用户能够选择不同级别的相关特征。这样,用户可以细化对特征集合中包含的相关特征的选择。例如在包括每个显著特征的顶级被选择的事件中,则可以呈现单个编辑手柄以编辑特征。在包括多个相关特征子集的中间级别被选择的事件中,可以呈现与相关特征的每个子集相对应的编辑手柄。在底层被选择的事件中,则可以为每个特征呈现编辑手柄。
编辑手柄提供器226通常被配置为提供编辑手柄集合以能够实现三维模型或其一部分(例如包括相关曲线组的特征集合)的编辑。在这方面,可以为一个或多个相关特征集合生成并提供编辑手柄。有利地,为相关特征集合提供编辑手柄使得多个特征能够利用操纵单个编辑手柄来被操纵或编辑。此外,提供表示多个特征的编辑手柄通常减少了在显示屏上呈现的视觉混乱的量。
在一些情况下,相关特征集合的一部分可以被选择或标识以用于提供编辑手柄。选择用于呈现编辑手柄的特征集合的一部分减少了为显示提供的编辑手柄的数量,这可以进一步减少显示屏幕上的视觉混乱并增加用户体验。通过这种方式,用户不太可能被大量编辑手柄的存在所打击。仅作为示例,假设生成了十个不同的特征集合。代替呈现十个不同特征集合中的每一个和/或编辑与其相关联的手柄,可以选择特征集合的一部分(例如3个)用于呈现。
可以以多种方式中的任意一种来确定生成和/或显示编辑手柄的特定特征集合。在一些情况下,特征集合分数可以被生成并用于对特征集合进行排名。例如可以基于特征的突出程度或显著程度、特征集合的相关程度、与特征对应的性质的类型等来确定特征集合分数。在其他情况下,为其生成和/或显示编辑手柄的特定特征集合可以基于层级结构内的级别。例如可以选择在特定中间级层中表示的特征集合来生成和/或显示编辑手柄。附加地或替代地,在一些情况下,用户可以选择期望呈现的多个特征集合、期望呈现的层级结构内的级别等。作为一个示例,可以由编辑手柄提供器226自动确定要为其生成和/或呈现编辑手柄的特定特征集合。在呈现与特定特征集合相对应的编辑手柄时,用户可以与图形用户界面交互以增加或降低层次结构中的级别。例如假设用户希望查看较少的特征集合和对应的编辑手柄。在这种情况下,用户可以指示增加层级结构中的级别,使得呈现更少的特征集合和对应的编辑手柄。作为另一示例,用户可以选择一个或多个特征(例如曲线)。基于所选特征,可以在视觉上表示对应的特征集合以及适当的编辑手柄。
可以为要被视觉上强调的每个相关特征集合生成编辑手柄。在这方面,对于要被视觉上表示的每个相关特征集合(例如每个标识的特征集合或每个所选特征集合),可以生成单个编辑手柄以协调对特征集合的编辑。如所描述的,利用单个编辑手柄用于特征集合(例如曲线)可以减少与对象的显示相关联地呈现的混乱。
在实施例中,编辑手柄提供器226可以选择或标识特定特征以表示编辑手柄或与编辑手柄对应。例如假设特征集合包括五条相关曲线。在这种情况下,可以选择五条曲线中的一条,使得所选曲线与编辑手柄相关联地被呈现。在其他实施例中,编辑手柄可以不直接对应于对应的特征集合中的任意一个。例如假设在视觉上强调一组特定的相关曲线。在这种情况下,可以在显示器上的特定位置(例如任务栏、角落等)提供编辑手柄,其不一定与相关曲线或甚至对象相邻。
可以经由图形用户界面来呈现编辑手柄。特别地,可以根据对象可视地表示编辑手柄。可以理解,编辑手柄可以以多种方式中的任意一种来呈现。在一些情况下,与特征集合对应的编辑手柄可以定位在对应特征集合或特征集合的特定特征附近或邻近。可以使用其他视觉表示或强调来示出编辑手柄和特定特征集合之间的关系。例如颜色(例如编辑手柄与对应曲线的视觉表示相同的颜色)、线宽(例如编辑手柄与对应曲线的视觉表示相同的宽度或大小)或其他指示符可用于向用户发信号通知特定编辑手柄对应于特定特征集合。
可以理解,在一些实现中,用于特征集合的编辑手柄可以具有多个组件、细节或方面以考虑多个操纵或编辑效果。例如假设曲线可以通过平移、旋转和/或缩放来操纵。在这种情况下,可以呈现第一编辑手柄组件以促进曲线的平移,可以呈现第二编辑手柄组件以促进曲线的旋转,并且可以呈现第三编辑手柄组件以促进曲线的缩放。
除了呈现编辑手柄之外,还可以呈现三维模型中的特征(例如曲线)和/或特征集合的视觉表示。例如可以通过颜色或其他格式化在视觉上强调曲线。在一些情况下,特定特征集合的特征可以各自以一种颜色或格式呈现,以区别于以另一种颜色呈现的不同特征集合的特征。
如前所述,图形用户界面可以包括使得用户能够选择或提供与编辑手柄、特征集合和/或特征的显示相关的偏好的各种组件。例如用户可以选择增加或减少视觉上强调的特征集合的数量。仅作为示例,并且参考图4,假设第一特征集合402以第一颜色(例如黄色)表示。用户可以切换以查看第二特征集合404,其可以以第二颜色(例如蓝色)表示。基于用户对编辑该第二特征集合中的曲线的兴趣(例如用户选择进行编辑),可以呈现与第二特征集合相关联的编辑手柄406。编辑手柄406包括促进第二特征集合的旋转的第一组件408、促进第二特征集合的平移的第二组件410、以及促进第二特征集合的缩放的第三组件412。
返回到图2,编辑管理器218通常被配置为编辑三维模型或其部分。在实施例中,编辑管理器218包括编辑检测器230、相关特征编辑器232、非相关特征编辑器234和网格优化器236。
编辑检测器230通常被配置为通过编辑手柄来检测编辑指示。在这方面,编辑检测器230可以检测对编辑手柄或其部分的移动、选择或操纵,指示对应特征和/或特征集合的平移、旋转和/或缩放。如前所述,编辑手柄可以包括可以用于以不同方式操纵或编辑三维模型的不同组件。这样,编辑检测器230可以检测哪个组件正被操纵以及其被操纵的方式。例如假设用户选择编辑手柄的平移组件并将用户选择的编辑手柄或平移组件拖动到右侧。在这种情况下,编辑检测器230可以检测与编辑手柄的操纵相对应的幅度和方向的平移。
相关特征编辑器232被配置为编辑与操纵的编辑手柄相对应的特征。在这方面,可以根据检测到的编辑操作或指示来确定和应用编辑操作。例如可以确定与应用于编辑手柄的操作相对应的编辑操作。然后,编辑操作可以应用于与操纵的编辑手柄相对应的特征。
另外,在实施例中,相关特征编辑器232将所确定的编辑操作应用于相关特征集合中的其他特征。以这种方式,可以以类似的方式操纵与编辑手柄相对应的相关特征集合中的每个特征。仅作为示例,假设特征集合包括第一曲线、第二曲线和第三曲线。现在假设用户操纵与第一条曲线关联显示的编辑手柄。例如用户指示旋转第一曲线。在检测到针对第一曲线的旋转操作时,相关特征编辑器232可以触发或实现将旋转操作应用于第一曲线、第二曲线和第三曲线。有利地,将编辑操纵传播到其他相关曲线保留了曲线之间的关系。例如如果两条曲线被标识为反射对称,则旋转一条曲线会导致其他相关曲线的自动旋转。
非相关特征编辑器234通常被配置为编辑非相关特征和特征集合。非相关特征或特征集合指的是未被识别为在相关特征集合内或为相关特征集合中的一部分的特征或特征集合。以这种方式,也可以根据用户编辑来操纵不在相关特征集合中的特征。举例来说,假设编辑第一曲线,但不在与第一曲线相同的特征集合中的第四和第五曲线与第一曲线共享一些关系(例如每个同心)。为了保留属性(例如关系、性质、距离),非相关特征编辑器可以将编辑操作传播到三维模型中的其他非相关特征。
在一些实施例中,可以基于影响区域来确定要编辑的非相关特征和/或特征集合。在这方面,编辑可以传播到影响区域内的特征。对影响区域内的特征应用编辑可以指定编辑如何影响三维模型的其他方面。在一些情况下,影响区域可以包括整个三维模型。在这方面,对一个特征或特征集合的操纵可以导致对在三维模型中标识的每个特征的操纵。在其他情况下,影响区域可以是三维对象的一部分,使得避免意外的全局变化。这可以使得能够维持特征和/或特征集合之间的关系,而无需对三维模型应用全局编辑。可以以任意数量的方式(例如经由机器学习或启发式)确定或定义影响区域。例如可以基于性质、关系、距离、图元等来确定影响区域。
作为示例,并且返回到图3,假设选择曲线302用于编辑,并且曲线302是特征集合中的唯一曲线。这样,可以根据用户指定的操纵来编辑曲线302。在分析与三维模型中的其他特征相关联的各种特征属性时,假设确定期望保持曲线302、304、306和308的共面性。在这种情况下,可以确定曲线304、306和308在影响区域内,使得编辑(例如旋转编辑)传播到这样的曲线。可以理解,影响区域可以根据要应用的编辑类型而变化。例如继续该示例,缩放曲线302可以导致包括曲线304的影响区域,但是不包括曲线306和308。这允许修改(例如放大)玻璃杯的基部而不导致对玻璃被的边缘的修改。
在一些实现中,图形用户界面可被配置为使得用户能够选择或修改影响区域。作为一个示例,用户可以选择用户希望包括在影响区域中的特定特征或范围/区域,使得编辑被传播到那些所选特征或所选区域内的特征。作为另一示例,可以例如经由非相关特征编辑器234(例如基于性质、关系、距离等的分析)自动确定影响区域。在这种情况下,经由图形用户界面,用户可以确认所确定的影响区域或选择以修改自动确定的影响区域以实现更多或更少的三维模型。修改影响区域可以以任意数量的方式执行,并且不旨在限制本文描述的实施例。作为一个示例,可以定位滑块,其使得用户能够增大或减小影响区域的大小(例如基于到最初编辑的特征的距离)。作为另一示例,用户可以选择或取消选择要在影响区域中包括或排除的特定特征。
网格优化器236通常被配置为基于针对特征(例如曲线)标识的位置或编辑来更新或修改三维模型。在这方面,网格优化器236将针对三维模型中的特征(例如如上所述)标识的编辑扩展到三维模型的所有顶点。网格优化可以以多种方式执行。在一个实现中,可以采用集成附加平滑约束的尽可能刚性的变形方法来执行网格优化。
在一些情况下,输入三维模型或网格可包括(例如对象的)断开连接的组件。仅作为示例,并且参考图5,咖啡机的手柄502可以具有与咖啡机的主体504断开连接的网格。在这方面,在与咖啡机的手柄502对应的三维网格上的顶点和/或三角形与在与咖啡机的主体504相对应的三维网格上的顶点和/或三角形之间可能没有连接。然而,即使断开连接的网格,可以期望对一个组件内的特征进行的编辑进行到对应于另一个组件的特征。即使在断开连接的组件中未标识出显著特征,情况也可能如此。例如如果咖啡机的主体504被平移或旋转,则可能希望相应地编辑组件504,即使可能未检测到与组件504相关联的显著特征。
这样,网格优化器236可以被配置为标识和分析三维模型或网格内的断开连接的组件。在标识断开连接的组件时,可以分析断开连接的组件以确定是否将修改传播到断开连接的组件。这种确定可以以任意数量的方式进行,包括例如基于组件之间的距离。例如如果断开连接的组件在阈值距离内,则可以应用编辑传播。可选地或另外地,如果断开连接的组件的边界框与编辑的组件的边界框相交或在与编辑的组件的边界框的阈值距离内,则可以将编辑传播应用于断开连接的组件。
作为用于确定是否将修改传播到断开连接的组件的另一示例,可以分析组件的大小以确定是否应该将编辑应用于断开连接的组件。例如在某些情况下,如果标识的断开连接的组件是较小的组件,则可以确定将编辑传播到断开连接的组件。另一方面,如果识别的断开连接的组件是较大的组件,则可以确定不将编辑传播到断开连接的组件。
在操作中,可以构造层次结构树以促进对断开连接的组件的这种分析(例如关于距离和/或组件大小)。仅作为示例,可以基于邻近度和/或大小关系来生成组件的层次结构树。为此,可以构造有向图,其中每个组件是节点,并且边缘在从较大组件朝向较小组件指向的两个邻近组件之间。可以将最小生成树视为层次结构树。这样,当用户编辑与一个组件相对应的手柄时,编辑可以被传播到子组件,但反之亦然。
在标识将编辑传播到断开连接的组件时,网格优化器236可以利用这些信息来执行网格优化。例如可以定义附加约束以实现跨组件的编辑。举例来说,约束指示应当与断开连接的组件上的顶点类似地操纵编辑的组件上的顶点,使得网格优化可以传播到断开连接的组件以及编辑的组件。为此,可以将编辑的组件上的顶点和断开连接的组件上的顶点定义或指定为用作约束的附着点。以这种方式,可以在网格优化期间保持或维持附接点的相对定位。
图6示出了根据本公开的各种实施例的描绘促进三维模型的编辑的示例实施例的处理流程600。可以例如通过参考图2所讨论的模型编辑引擎来执行处理流程600。
如图所示,处理流程600开始于框602,在框602处标识与定义对象的三维模型相关联的显著几何特征。如本文所述,显著几何特征可以是与三维模型相关联的突出曲线。在框604处,确定与三维模型的显著几何特征相关联的特征属性。这些特征属性可以包括例如性质,关系、距离、基元和/或类似物。在框606处,基于所确定的特征属性,生成包括彼此相关的多个显著几何特征的特征集合。可以理解,可以生成任意数量的特征集合。在生成多个特征集合的情况下,在一些实现中,可以进行选择以选择特定特征集合或特征集合的特定集合以呈现和/或为其生成和呈现编辑手柄。在框608,提供用于特征集合的编辑手柄用于显示。编辑手柄使得能够根据编辑手柄的操纵来编辑特征集合内的多个显著几何特征中的每一个。可以理解,编辑手柄可以与多个显著几何特征中的一个相关联地显示。
转到图7,图7示出了根据本公开的各种实施例的描绘促进三维模型的编辑的示例实施例的处理流程700。可以例如通过参考图2所讨论的模型编辑引擎来执行处理流程700。
如图所示,处理流程700开始于框702,在框702处接收与三维模型的多个相关几何特征之一相关联地显示的编辑手柄的操纵。操纵可以指示对三维模型或其一部分执行旋转、平移或缩放操作。在框704,根据编辑手柄的操纵来编辑三维模型的多个相关几何特征中的每一个。在框706处,确定三维模型内的影响区域。例如可以基于对几何特征的性质、关系、距离、图元等的分析来做出这种确定。替代地或另外地,可以基于用户输入来确定或修改影响区域。在框708,对应于编辑手柄的操纵的编辑被传播到三维模型的影响区域内的第二几何特征集合。在框710处,基于对多个相关几何特征中的每一个的编辑以及对影响区域内的第二几何特征集合的编辑,更新三维模型(例如网格优化)。
参考图8,计算设备800包括直接或间接耦合以下设备的总线810:存储器812、一个或多个处理器814、一个或多个呈现组件816、输入/输出端口818、输入/输出组件820和示意性电源822。总线810表示可以是一个或多个总线(例如地址总线、数据总线或其组合)。尽管为了清楚起见,图8的各个方框用清楚描绘的线示出,但实际上,这种描绘不是那么清楚并且这些线可能重叠。例如也可以将诸如显示设备的呈现组件视为i/o组件。此外,处理器通常具有缓存形式的存储器。我们认识到这是本领域的本质,并且重申图8的图仅仅是可以结合本公开的一个或多个实施例使用的示例计算设备的说明。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等类别之间没有区别,因为所有这些都在图8的范围内并且参考“计算设备”。
计算设备800通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备800访问的任意可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于诸如计算机可读指令、数据结构、程序模块或其他数据的信息的存储的任意方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储技术、cd-rom、数字通用盘(dvd)或其他光盘存储器、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用于存储所需信息并且可由计算设备800访问的任意其他介质。计算机存储介质本身排除信号。
通信介质通常以诸如载波或其他传输机制等的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任意信息传递介质。术语“已调制数据信号”表示以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、rf、红外和其他无线介质的无线介质。上述任意组合也应被包括在计算机可读介质的范围内。
存储器812包括易失性和/或非易失性存储器形式的计算机存储介质。如图所示,存储器812包括指令824。指令824在由处理器814执行时被配置为使计算设备执行本文描述的任意操作,参考上面讨论的附图,或实现本文描述的任意程序模块。存储器可以是可移除的、不可移除的或其组合。示意性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备800包括从诸如存储器812或i/o组件820的各种实体读取数据的一个或多个处理器。呈现组件816向用户或其他设备呈现数据指示。示意性的呈现组件包括显示设备、扬声器、打印组件、振动组件等。
i/o端口818允许计算设备800在逻辑上被耦合到包括i/o组件820的其他设备,其中一些可以内置。示例性组件包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、打印机、无线设备等
已经关于特定实施例描述了本文呈现的实施例,这些实施例在所有方面都旨在是示意性的而不是限制性的。在不脱离本公开的范围的情况下,替代实施例对于本公开所属领域的普通技术人员将变得显而易见。
从前述内容可以看出,本公开在一个源中适于实现上文阐述的所有目标和目的,以及其他显而易见且结构固有的优点。
应当理解,某些特征和子组合是有用的,并且可以在不参考其他特征或子组合的情况下使用。这是预期的,并且在权利要求的范围内。
在前面的详细描述中,参考了形成其一部分的附图,其中类似的附图标记始终指定类似的部分,并且其中通过说明的方式示出了可以实践的实施例。应当理解,在不脱离本公开的范围的情况下,可以利用其他实施例并且可以进行结构或逻辑上的改变。因此,前面的详细描述不应被视为具有限制意义,并且实施例的范围由所附权利要求及其等同物限定。
已经使用本领域技术人员通常采用的术语来描述示意性实施例的各个方面,以将他们工作的实质传达给本领域其他技术人员。然而,对于本领域技术人员显而易见的是,可以仅利用所描述的方面中的一些方面来实践替代实施例。出于解释的目的,阐述了具体的数字、材料和配置,以便提供对示意性实施例的透彻理解。然而,对于本领域技术人员来说显而易见的是,可以在没有具体细节的情况下实践替代实施例。在其他情况下,已经省略或简化了众所周知的特征,以免使示意性实施例模糊。
进而已经以最有助于理解示意性实施例的方式将各种操作描述为多个离散操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖于顺序。特别是,这些操作不需要按照呈现的顺序执行。此外,作为单独操作的操作的描述不应被解释为要求操作必须独立地和/或由单独的实体执行。作为单独模块的实体和/或模块的描述同样不应被解释为要求模块是分开的和/或执行单独的操作。在各种实施例中,所示和/或描述的操作、实体、数据和/或模块可以合并、分成更多子部分和/或省略。
重复使用短语“在一个实施例中”或“在实施例中”。该短语通常不是指相同实施例;但是,它可能指相同实施例。除非上下文另有规定,否则术语“包括”、“具有”和“包含”是同义词。短语“a/b”表示“a或b”。短语“a和/或b”表示“(a)、(b)或(a和b)”。短语“a、b和c中的至少一个”表示“(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)。”
1.一种用于编辑三维模型的计算机实现的方法,所述方法包括:
标识与定义对象的三维模型相关联的显著几何特征;
确定与所述三维模型的所述显著几何特征相关联的特征属性;
基于所确定的所述特征属性来生成包括彼此相关的多个显著几何特征的第一特征集合;
引起针对所述第一特征集合的编辑手柄的显示,所述编辑手柄使得所述第一特征集合内的所述多个显著几何特征中的每个显著几何特征能够根据对所述编辑手柄的操纵来被编辑,所述编辑手柄与所述多个显著几何特征中的一个显著几何特征相关联地被显示。
2.根据权利要求1所述的计算机实现的方法,其中所述显著几何特征包括与所述三维模型相关联的曲线。
3.根据权利要求1所述的计算机实现的方法,其中所述特征属性包括性质、关系、邻近度、几何图元或其组合。
4.根据权利要求3所述的计算机实现的方法,其中所述性质包括线性、圆度、平面度或其组合。
5.根据权利要求3所述的计算机实现的方法,其中所述关系包括共面性、并行性、对称性、同心性或其组合。
6.根据权利要求3所述的计算机实现的方法,其中邻近度包括显著几何特征对之间的空间距离。
7.根据权利要求1所述的计算机实现的方法,其中所述第一特征集合内的所述多个显著几何特征中的每个显著几何特征与所述对象的呈现相关联地在视觉上被强调。
8.根据权利要求1所述的计算机实现的方法,其中对所述编辑手柄的操纵引起旋转、平移、缩放或其组合。
9.根据权利要求1所述的计算机实现的方法,其中所述编辑手柄包括:第一部分,用于能够实现经由平移操作对所述三维模型的编辑,第二部分,用于能够实现经由旋转操作对所述三维模型的编辑,以及第三部分,用于能够实现经由缩放操作对所述三维模型的编辑。
10.根据权利要求1所述的计算机实现的方法,还包括:
基于所确定的所述特征属性来生成第二特征集合,所述第二特征集合包括彼此相关的第二多个显著几何特征;以及
引起针对所述第二特征集合的第二编辑手柄的显示,所述第二手柄使得所述第二特征集合内的所述第二多个显著几何特征中的每个显著几何特征能够根据对所述第二编辑手柄的操纵来被编辑,所述第二编辑手柄与所述第二多个显著几何特征中的一个显著几何特征相关联地被显示。
11.根据权利要求10所述的计算机实现的方法,其中所述第二编辑手柄与所述第一编辑手柄同时被显示。
12.一种或多种计算机可读介质,具有体现在其上的多个可执行指令,所述多个可执行指令当由一个或多个处理器执行时,使得所述一个或多个处理器执行用于编辑三维模型的方法,所述方法包括:
接收对编辑手柄的操纵,所述编辑手柄与三维模型的多个相关几何特征中的一个相关几何特征相关联地被显示,所述操纵指示执行三维模型的旋转、平移或缩放操作;
根据对所述编辑手柄的操纵来编辑所述三维模型的所述多个相关几何特征中的每个相关几何特征;
将对应于对所述编辑手柄的所述操纵的编辑传播到所述三维模型的影响区域内的第二几何特征集合;以及
基于对所述多个相关几何特征中的每个相关几何特征的所述编辑以及对所述影响区域内的所述第二几何特征集合的所述编辑来更新所述三维模型。
13.根据权利要求12所述的一种或多种计算机可读介质,其中编辑所述多个相关几何特征中的每个相关几何特征包括旋转、平移和/或缩放对应特征。
14.根据权利要求12所述的一种或多种计算机可读介质,还包括基于与所述三维模型的几何特征相关联的性质、关系、距离、图元或其组合来确定所述三维模型的所述影响区域。
15.根据权利要求12所述的一种或多种计算机可读介质,还包括基于对由所述三维模型定义的对象的至少一部分的用户选择来确定所述影响区域。
16.根据权利要求12所述的一种或多种计算机可读介质,还包括:
基于与所述三维模型的几何特征相关联的性质、关系、距离、图元或其组合来自动地确定所述三维模型的所述影响区域;
经由图形用户界面接收用于修改所述影响区域的用户选择以在更多或更少的所述三维模型中实现编辑。
17.根据权利要求12所述的一种或多种计算机可读介质,其中更新所述三维模型包括将编辑传播到与正被编辑的组件的阈值距离内的断开连接的组件。
18.一种计算系统,包括:
用于生成针对与三维模型相关联的多个相关曲线的编辑手柄的部件;以及
用于根据对所述编辑手柄的操纵来编辑所述三维模型的部件,所述编辑包括至少对与所述三维模型相关联的所述多个相关曲线应用编辑。
19.根据权利要求18所述的计算系统,其中编辑所述三维模型还包括编辑位于所述三维模型内的影响区域内的其他曲线,所述影响区域是基于与所述三维模型的曲线相关联的性质、关系、距离、图元或其组合而被确定的。
20.根据权利要求18所述的计算系统,其中编辑所述三维模型还包括编辑位于由用户经由图形用户界面选择或修改的影响区域内的其他曲线。
技术总结