Intuitive editing of 3D models

By generating editing handles and affecting area propagation and editing, the time-consuming and cumbersome problems in the editing process of 3D model are solved, and the intuitive and efficient editing of 3D models and the improvement of user experience are achieved.

CN111243107BActive Publication Date: 2025-03-14ADOBE INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN201910682229.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-11-29
Filing Date
2019-07-26
Publication Date
2025-03-14
Estimated Expiration
2039-07-26

AI Technical Summary

Technical Problem

When editing a 3D model, since the 3D model contains a large number of lines or curves, especially in complex 3D models, the editing process can be time-consuming and cumbersome, and the user needs to evaluate many curves to determine the specific curve to manipulate, resulting in trial and error manipulation.

Method used

By generating edit handles, users can intuitively and efficiently manipulate a collection of lines or curves, present a single edit handle corresponding to multiple related lines or curves, reduce the congestion of the user interface, and propagate edits to other curves within the three-dimensional model through the influence area.

Benefits of technology

The intuitive and efficient editing of three-dimensional models is realized, reducing the undesirable impact on global editing, improving user experience, and reducing the complexity of the editing process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111243107B_ABST
    Figure CN111243107B_ABST
Patent Text Reader

Abstract

Embodiments of the present invention relate to intuitive editing of three-dimensional models. In an embodiment, significant geometric features associated with a three-dimensional model defining an object are identified. Thereafter, feature attributes associated with the significant geometric features are identified. A feature set including a plurality of significant geometric features related to one another is generated based on the determined feature attributes (e.g., properties, relationships, distances). An edit handle may then be generated and displayed for the feature set, the edit handle enabling each of the significant geometric features within the feature set to be edited according to manipulation of the edit handle. The edit handle may be displayed in association with one of the significant geometric features of the feature set.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Typically, a three-dimensional model or representation is generated in the form of a polygonal mesh (also referred to herein as a three-dimensional mesh). A polygonal mesh typically includes vertices representing points in three-dimensional space, and polygons for defining the shape of an object in three dimensions. To edit a three-dimensional model, a user can manipulate lines or curves associated with the three-dimensional model. A line or curve may refer to a line segment associated with the three-dimensional model. However, because a three-dimensional model may correspond to a large number of lines or curves, particularly in complex three-dimensional models, editing a three-dimensional model may be time consuming and cumbersome. Summary of the invention

[0002] Embodiments of the present invention are intended to facilitate intuitive and efficient editing of three-dimensional models. In particular, an edit handle can be provided that enables manipulation of a collection of lines or curves. In this way, the collection of lines or curves can be edited in a manner indicated by the manipulation of the edit handle. In addition, by presenting a single edit handle corresponding to multiple related lines or curves, the user interface is less crowded, providing a more intuitive and desired experience for the user. In addition, since it may be desirable to edit to implement other aspects of the three-dimensional model, the embodiments described herein provide for propagating the edit to other lines or curves within the affected area. In this way, the edit can be propagated to other curves within the three-dimensional model without having to apply the same edit to the entire model. This implementation generally reduces the undesirable effects of global editing. BRIEF DESCRIPTION OF THE DRAWINGS

[0003] Figure 1 Describes the scene in which the object is presented.

[0004] Figure 2 Depicted are aspects of an illustrative graphics processing system for implementing a model editing engine according to various embodiments of the present disclosure.

[0005] Figure 3 Three-dimensional objects having various curves according to various embodiments of the present disclosure are depicted.

[0006] Figure 4 Depicted are a collection of three-dimensional objects including editing handles in accordance with various embodiments of the present disclosure.

[0007] Figure 5 Another three-dimensional object with disconnected components is depicted according to various embodiments of the present disclosure.

[0008] Figure 6 A first process flow for facilitating editing of a three-dimensional model according to various embodiments of the present disclosure is shown.

[0009] Figure 7 A second process flow for facilitating editing of a three-dimensional model according to various embodiments of the present disclosure is shown.

[0010] Figure 8 is a block diagram of an example computing device in which embodiments of the present disclosure may be employed. DETAILED DESCRIPTION

[0011] A three-dimensional model generally defines an object in three dimensions. In this regard, an object can be defined by a three-dimensional model via a mathematical definition of an object in three dimensions. Generally, a three-dimensional model or representation is generated in the form of a polygonal mesh (also referred to herein as a three-dimensional mesh). A polygonal mesh generally includes vertices representing points in three-dimensional space, and polygons defining the shape of the object in three dimensions.

[0012] Often, a user wishes to modify or edit an object drawn via a three-dimensional model. For example, a user may wish to rotate, translate, and / or scale a three-dimensional object presented within a virtual scene. Figure 1 , a user may wish to manipulate various objects presented in the scene. As an example, a user may wish to modify the height of chair 102 within the scene, change the size of table 104 within the scene, manipulate the shape of glasses 106-112, etc. However, editing a three-dimensional model can be challenging because the three-dimensional model typically includes a dense mesh of vertices and polygons.

[0013] In some conventional methods, a three-dimensional model can be manipulated by editing lines or curves presented in association with a drawn object. Since a three-dimensional model includes a large number of lines or curves, especially a complex three-dimensional model, editing the three-dimensional model can be overwhelming and tedious. In particular, exposing a large number of curves as editable can be a discouraging experience for users. For example, a user may need to evaluate numerous curves to decide on a specific curve to manipulate, which can result in trial-and-error manipulation. In addition, editing curves individually can be a labor-intensive task.

[0014] Therefore, the embodiments described herein relate to the intuitive and efficient editing of three-dimensional models. In particular, users can intuitively and efficiently manipulate the features (e.g., curves) of drawn objects to enable editing of corresponding three-dimensional models. At a high level, feature sets (e.g., curves) are aggregated or grouped together based on analysis of features, such as, for example, properties, relationships, and / or distances. Edit handles can then be generated and displayed in association with the feature set, so that manipulation of the edit handles results in similar editing of each feature applied to the feature set. By presenting specific edit handles for feature groups, editing drawn objects or three-dimensional models associated therewith can be more intuitive for users. For example, instead of each feature having a corresponding edit handle and thus cluttering the display, users can present and manipulate fewer edit handles.

[0015] As described herein, when manipulating an edit handle, such as by performing translation, rotation, and / or scaling to edit an object, appropriate edits may be propagated to other features so that the object and the three-dimensional model may be efficiently edited. In an embodiment, an area of ​​influence may be determined or identified so that edits are applied or propagated to features within the area of ​​influence. Using an area of ​​influence to define edit propagation may enable a portion of features associated with a three-dimensional model to be edited. This may be advantageous because a user may wish to modify only a portion of features associated with a three-dimensional model rather than the entire set of features. The area of ​​influence may be determined in any of a variety of ways. For example, an area of ​​influence for propagating edits may be automatically determined based on properties, relationships, and / or distances associated with the features. As another example, an area of ​​influence may be provided or modified via user input or selection.

[0016] Now turn to Figure 2 , Figure 2 An example configuration of an illustrative graphics processing system 210 for implementing a model editing engine 212 that efficiently and effectively facilitates three-dimensional model editing is depicted in accordance with various embodiments of the present disclosure. Figure 2 As shown, data store 214 may be accessible to graphics processing system 210. Data store 214 may store computer instructions (e.g., software program instructions, routines, or services) and / or data used in the embodiments described herein. In some implementations, data store 214 stores information or data received via various components of model editing engine 212, and provides access to the information or data to various components as needed. Although depicted as a single component, data store 214 may be embodied as one or more data stores. In addition, the information in data store 214 may be distributed in any suitable manner on one or more data stores for storage (which may be hosted externally). In an embodiment, the data stored in data store 214 includes feature attributes (e.g., properties, relationships, etc.), user preferences, etc.

[0017] Graphics processing system 210 may be any type of processing system executed by instructions on a computing device. Graphics processing system 210 may operate on any type of computing device, such as a user device and / or a server. Figure 8 An example of a computing device having such instructions is depicted in . Although the model editing engine 212 and corresponding components are generally described herein as operating on a computing device, it is understood that components or functions associated therewith may be distributed among devices (e.g., in a cloud computing or distributed computing environment). By way of example only, the salient feature identifier 220 may be operated via a server in communication with a user device hosting the graphics processing system 210.

[0018] As shown, the graphics processing system 210 includes a model editing engine 212. As described, the model editing engine 212 facilitates intuitive, efficient, and effective three-dimensional model editing. Typically, and at a high level, the model editing engine 212 includes an edit handle manager 216 and an edit manager 218. The edit handle manager 216 typically manages the generation and provision of edit handles. As described herein, the edit handle enables a user to edit a set of features (curves) associated with the three-dimensional model. Based on the detection of manipulation of the edit handle, the edit manager 218 manages the appropriate edits corresponding to the three-dimensional model.

[0019] The model editing engine 212 can obtain a three-dimensional model defining an object as input. In some embodiments, the object defined by the three-dimensional model can represent an artificial object, for which the salient features can be more easily detectable. The three-dimensional model can be obtained in any number of ways. As an example, when an image or scene including one or more three-dimensional models is opened, such a three-dimensional model can be provided to the model editing engine 212. As another example, a user can select an object in an image or scene. Based on the user's selection, the three-dimensional model representing the object can be provided to the model editing engine 212. In addition, the three-dimensional model can be obtained from any one of a plurality of sources. For example, in some cases, the three-dimensional model can be obtained from a data store 214 accessible to the model editing engine 212. In other cases, the three-dimensional model can be transmitted from a server (e.g., via a network).

[0020] After obtaining the three-dimensional model, the edit handle manager 216 is generally configured to generate and provide a set of edit handles. An edit handle refers to a handle or tool presented via a graphical user interface that allows a user to edit or manipulate an object or a portion thereof (e.g., a set of features). For example, by selecting and dragging an edit handle positioned according to a feature (e.g., a curve) of the three-dimensional model, a user can initiate manipulation or editing of the three-dimensional object.

[0021] In an embodiment, edit handle manager 216 may include salient feature identifier 220, feature attribute identifier 222, feature set generator 224, and edit handle provider 226. It will be appreciated that any number of components may be used to perform the functions described herein, and embodiments should not be limited to those described herein.

[0022] The salient feature identifier 220 is generally configured to identify salient features associated with the three-dimensional model. Salient features generally refer to obvious or prominent features. According to the embodiments described herein, the salient feature identifier 220 generally identifies salient geometric features. Features or geometric features generally refer to features related to the geometry of the three-dimensional model. Features can be, for example, curves, lines, or line segments corresponding to the three-dimensional model. In this regard, the salient feature identifier 220 can identify a set of curves associated with the three-dimensional model. Although the salient features are generally described herein as curves (lines, line segments), it will be understood that other geometric features can be identified in addition or alternatively.

[0023] Various methods can be used to identify salient features associated with a three-dimensional model. As an example, as a three-dimensional model or mesh, including triangles, salient features can be identified by evaluating angles. To this end, salient features can be identified based on angles. For example, assume that the angle exceeds a degree threshold indicating a sharp feature. In this case, a curve or edge corresponding to the angle can be identified as a salient feature. As another example, a machine learning algorithm can be trained and used to detect salient features. Any number of methods can be used and are not intended to limit the scope of the embodiments.

[0024] The feature attribute identifier 222 is generally configured to identify the feature attribute associated with the identified significant feature (e.g., curve). In this way, the feature attribute that may be expected to be retained during editing can be identified. As used herein, the feature attribute generally refers to the attribute or aspect associated with the feature or feature set of the three-dimensional model. The feature attribute can be a property, a relationship and / or a proximity. Generally, a property refers to any type of property, characteristic or aspect of a feature (e.g., a specific curve). The property may include indications of linearity, roundness, flatness, etc. The relationship attribute refers to an indication of the relationship between multiple (two or more) features. For example, a relationship attribute may indicate a property shared by two or more features. The relationship may include indications of coplanarity, parallelism, symmetry, concentricity, etc. The proximity attribute generally refers to the spatial distance between features. Proximity can be measured in various ways.

[0025] In this regard, the feature attribute identifier 222 can analyze the significant features and identify the properties associated therewith. Similarly, the feature attribute identifier 222 can analyze the significant features and identify the relationship and / or proximity between them. For example only, and with reference to Figure 3 , assuming that curves 302, 304, 306, and 308 are identified as significant curves corresponding to the three-dimensional model. In this case, feature attribute identifier 222 may identify that each of curves 302, 304, 306, and 308 are concentric and parallel to each other.

[0026] The feature set generator 224 is configured to generate a set, group or cluster of related features. Related features generally refer to features (e.g., curves) of a three-dimensional model that are related to each other in some way. Advantageously, clustering or grouping related features enables each related feature set to have a corresponding edit handle so that the related feature set can be edited uniformly. In addition, presenting a single edit handle for a related feature set reduces the number of edit handles displayed, and thus user satisfaction can be improved.

[0027] Determining relevant features can be performed in any of a variety of ways. In one implementation, feature attributes such as properties, relationships and / or proximity can be analyzed and used to determine relevant features. At a high level, features with similar properties, relationships to each other and / or proximity to each other can be identified and used to generate a set of relevant features. Various measurements, thresholds, etc. can be used to determine a set of relevant features. For example, features within a threshold distance from each other can be considered relevant. In addition, feature attributes can be weighted so that when determining the correlation between features, one attribute or attribute type (e.g., relationship) can be weighted higher than another attribute or attribute type (e.g., property).

[0028] Other geometric aspects may be used in addition or alternatively to determine relevant features. For example, in some implementations, geometric primitives may be used to cluster or group features. In such implementations, primitives may be detected in association with objects. Based on the detected primitives (e.g., the body of a bottle), features associated with a particular primitive may be grouped together or designated as relevant features, or otherwise used to determine relevant features.

[0029] In some cases, features may be related in a hierarchical structure. For example, the parent node of a hierarchy may represent each significant feature of a three-dimensional model, and the child nodes may then include various combinations of features. In this way, the last child node of a hierarchical path may represent a specific feature. As described herein, related features in a hierarchical structure enable a user to select related features at different levels. In this way, a user can refine the selection of related features included in a feature set. For example, in an event where the top level including each significant feature is selected, a single editing handle may be presented to edit the feature. In an event where an intermediate level including multiple subsets of related features is selected, an editing handle corresponding to each subset of the related features may be presented. In an event where the bottom level is selected, an editing handle may be presented for each feature.

[0030] The edit handle provider 226 is generally configured to provide a set of edit handles to enable editing of a three-dimensional model or a portion thereof (e.g., a set of features including a group of related curves). In this regard, edit handles can be generated and provided for one or more sets of related features. Advantageously, providing edit handles for sets of related features enables multiple features to be manipulated or edited using a single edit handle. In addition, providing edit handles representing multiple features generally reduces the amount of visual clutter presented on a display screen.

[0031] In some cases, a portion of the related feature sets may be selected or identified for providing edit handles. Selecting a portion of the feature sets for presenting edit handles reduces the number of edit handles provided for display, which can further reduce visual clutter on the display screen and increase the user experience. In this way, the user is less likely to be overwhelmed by the presence of a large number of edit handles. By way of example only, assume that ten different feature sets are generated. Instead of presenting each of the ten different feature sets and / or editing the handles associated therewith, a portion of the feature sets (e.g., 3) may be selected for presentation.

[0032] The specific feature set for which the edit handle is generated and / or displayed can be determined in any of a variety of ways. In some cases, a feature set score can be generated and used to rank the feature set. For example, the feature set score can be determined based on the prominence or significance of the feature, the relevance of the feature set, the type of property corresponding to the feature, etc. In other cases, the specific feature set for which the edit handle is generated and / or displayed can be based on the level within the hierarchy. For example, a feature set represented in a specific intermediate level can be selected to generate and / or display the edit handle. Additionally or alternatively, in some cases, the user can select multiple feature sets that are desired to be presented, the level within the hierarchy that is desired to be presented, etc. As an example, the specific feature set for which the edit handle is to be generated and / or presented can be automatically determined by the edit handle provider 226. When presenting the edit handle corresponding to the specific feature set, the user can interact with the graphical user interface to increase or decrease the level in the hierarchy. For example, suppose the user wants to view fewer feature sets and corresponding edit handles. In this case, the user can indicate to increase the level in the hierarchy so that fewer feature sets and corresponding edit handles are presented. As another example, the user can select one or more features (e.g., curves). Based on the selected features, the corresponding feature set may be visually represented along with appropriate editing handles.

[0033] An edit handle may be generated for each related feature set to be visually emphasized. In this regard, for each related feature set to be visually represented (e.g., each identified feature set or each selected feature set), a single edit handle may be generated to coordinate the editing of the feature sets. As described, utilizing a single edit handle for a feature set (e.g., a curve) may reduce clutter presented in association with the display of an object.

[0034] In an embodiment, the edit handle provider 226 may select or identify a specific feature to represent or correspond to an edit handle. For example, assume that the feature set includes five related curves. In this case, one of the five curves may be selected so that the selected curve is presented in association with the edit handle. In other embodiments, the edit handle may not directly correspond to any one of the corresponding feature sets. For example, assume that a specific set of related curves is visually emphasized. In this case, the edit handle may be provided at a specific location on the display (e.g., a taskbar, a corner, etc.), which is not necessarily adjacent to the related curves or even the object.

[0035] The editing handles may be presented via a graphical user interface. In particular, the editing handles may be visually represented according to the object. It will be appreciated that the editing handles may be presented in any of a variety of ways. In some cases, the editing handles corresponding to the feature set may be positioned near or adjacent to the corresponding feature set or a particular feature of the feature set. Other visual representations or emphasis may be used to illustrate the relationship between the editing handle and a particular feature set. For example, color (e.g., the same color of the editing handle as the visual representation of the corresponding curve), line width (e.g., the same width or size of the editing handle as the visual representation of the corresponding curve), or other indicators may be used to signal to the user that a particular editing handle corresponds to a particular feature set.

[0036] It will be appreciated that in some implementations, an edit handle for a feature set may have multiple components, details, or aspects to allow for multiple manipulation or editing effects. For example, assume that a curve can be manipulated by translation, rotation, and / or scaling. In this case, a first edit handle component may be presented to facilitate translation of the curve, a second edit handle component may be presented to facilitate rotation of the curve, and a third edit handle component may be presented to facilitate scaling of the curve.

[0037] In addition to presenting edit handles, visual representations of features (e.g., curves) and / or feature sets in the three-dimensional model may also be presented. For example, curves may be visually emphasized by color or other formatting. In some cases, features of a particular feature set may each be presented in one color or format to distinguish them from features of a different feature set that are presented in another color.

[0038] As previously described, the graphical user interface may include various components that enable a user to select or provide preferences related to the display of edit handles, feature sets, and / or features. For example, a user may select to increase or decrease the number of feature sets that are visually emphasized. For example, and with reference to FIG. Figure 4 , assuming that a first feature set 402 is represented in a first color (e.g., yellow). The user can switch to view a second feature set 404, which can be represented in a second color (e.g., blue). Based on the user's interest in editing a curve in the second feature set (e.g., the user selects to edit), an edit handle 406 associated with the second feature set can be presented. The edit handle 406 includes a first component 408 that facilitates rotation of the second feature set, a second component 410 that facilitates translation of the second feature set, and a third component 412 that facilitates scaling of the second feature set.

[0039] Return to Figure 2 , the edit manager 218 is generally configured to edit the three-dimensional model or a portion thereof. In an embodiment, the edit manager 218 includes an edit detector 230 , a relevant feature editor 232 , a non-relevant feature editor 234 , and a mesh optimizer 236 .

[0040] The edit detector 230 is typically configured to detect edit instructions via an edit handle. In this regard, the edit detector 230 can detect movement, selection, or manipulation of the edit handle or a portion thereof, indicating translation, rotation, and / or scaling of corresponding features and / or feature sets. As previously described, the edit handle may include different components that can be used to manipulate or edit a three-dimensional model in different ways. In this way, the edit detector 230 can detect which component is being manipulated and how it is being manipulated. For example, assuming that a user selects the translation component of the edit handle and drags the edit handle or translation component selected by the user to the right. In this case, the edit detector 230 can detect translations of magnitude and direction corresponding to the manipulation of the edit handle.

[0041] The related feature editor 232 is configured to edit the features corresponding to the manipulated edit handle. In this regard, the edit operation can be determined and applied based on the detected edit operation or indication. For example, the edit operation corresponding to the operation applied to the edit handle can be determined. Then, the edit operation can be applied to the feature corresponding to the manipulated edit handle.

[0042] In addition, in an embodiment, the related feature editor 232 applies the determined editing operation to other features in the related feature set. In this way, each feature in the related feature set corresponding to the editing handle can be manipulated in a similar manner. As an example only, assume that the feature set includes a first curve, a second curve, and a third curve. Now assume that the user manipulates the editing handle displayed in association with the first curve. For example, the user instructs to rotate the first curve. When a rotation operation for the first curve is detected, the related feature editor 232 can trigger or implement the application of the rotation operation to the first curve, the second curve, and the third curve. Advantageously, propagating the editing operation to other related curves preserves the relationship between the curves. For example, if two curves are identified as reflection symmetric, rotating one curve will cause the automatic rotation of other related curves.

[0043] The non-relevant feature editor 234 is generally configured to edit non-relevant features and feature sets. A non-relevant feature or feature set refers to a feature or feature set that is not identified as being within or part of a relevant feature set. In this way, features that are not in a relevant feature set can also be manipulated based on user edits. For example, assume that a first curve is edited, but the fourth and fifth curves that are not in the same feature set as the first curve share some relationships with the first curve (e.g., each is concentric). In order to preserve properties (e.g., relationships, properties, distances), the non-relevant feature editor can propagate the editing operation to other non-relevant features in the three-dimensional model.

[0044] In some embodiments, non-related features and / or feature sets to be edited can be determined based on the impact area. In this regard, the edits can be propagated to the features within the impact area. Applying edits to features within the impact area can specify how the edits affect other aspects of the three-dimensional model. In some cases, the impact area can include the entire three-dimensional model. In this regard, the manipulation of one feature or feature set can result in the manipulation of each feature identified in the three-dimensional model. In other cases, the impact area can be part of the three-dimensional object, so as to avoid unexpected global changes. This can make it possible to maintain the relationship between features and / or feature sets without applying global edits to the three-dimensional model. The impact area can be determined or defined in any number of ways (e.g., via machine learning or heuristics). For example, the impact area can be determined based on properties, relationships, distances, primitives, etc.

[0045] As an example, and returning to Figure 3, assume that curve 302 is selected for editing, and that curve 302 is the only curve in the feature set. In this way, curve 302 can be edited according to the manipulation specified by the user. In analyzing various feature properties associated with other features in the three-dimensional model, assume that it is determined that it is desirable to maintain the coplanarity of curves 302, 304, 306, and 308. In this case, it can be determined that curves 304, 306, and 308 are within the influence area, so that edits (such as rotation edits) propagate to such curves. It will be appreciated that the influence area can vary depending on the type of edit to be applied. For example, continuing with the example, scaling curve 302 can result in an influence area that includes curve 304, but does not include curves 306 and 308. This allows the base of a glass to be modified (such as enlarged) without resulting in modifications to the edges of the glass.

[0046] In some implementations, the graphical user interface may be configured to enable a user to select or modify an area of ​​influence. As an example, a user may select specific features or ranges / areas that the user wishes to include in the area of ​​influence so that the edits are propagated to those selected features or features within the selected area. As another example, the area of ​​influence may be automatically determined, for example, via a non-correlated feature editor 234 (e.g., based on an analysis of properties, relationships, distances, etc.). In this case, via the graphical user interface, the user may confirm the determined area of ​​influence or choose to modify the automatically determined area of ​​influence to achieve more or less three-dimensional models. Modifying the area of ​​influence may be performed in any number of ways and is not intended to limit the embodiments described herein. As an example, a slider may be positioned that enables a user to increase or decrease the size of the area of ​​influence (e.g., based on the distance to the feature initially edited). As another example, a user may select or deselect specific features to be included or excluded in the area of ​​influence.

[0047] The mesh optimizer 236 is typically configured to update or modify the three-dimensional model based on the position or edits identified for features (e.g., curves). In this regard, the mesh optimizer 236 extends the edits identified for features (e.g., as described above) in the three-dimensional model to all vertices of the three-dimensional model. Mesh optimization can be performed in a variety of ways. In one implementation, a deformation method that is as rigid as possible with integrated additional smoothing constraints can be used to perform mesh optimization.

[0048] In some cases, the input 3D model or mesh may include disconnected components (e.g., of an object). Figure 5, the handle 502 of the coffee machine may have a mesh that is disconnected from the body 504 of the coffee machine. In this regard, there may be no connection between vertices and / or triangles on the three-dimensional mesh corresponding to the handle 502 of the coffee machine and vertices and / or triangles on the three-dimensional mesh corresponding to the body 504 of the coffee machine. However, even with disconnected meshes, it may be desirable to edit features within one component to proceed to features corresponding to another component. This may be the case even if no significant features are identified in the disconnected components. For example, if the body 504 of the coffee machine is translated or rotated, it may be desirable to edit the component accordingly, even though no significant features associated with the component may be detected.

[0049] Thus, the mesh optimizer 236 can be configured to identify and analyze disconnected components within a three-dimensional model or mesh. Upon identifying disconnected components, the disconnected components can be analyzed to determine whether to propagate modifications to the disconnected components. This determination can be made in any number of ways, including, for example, based on the distance between the components. For example, if the disconnected components are within a threshold distance, edit propagation can be applied. Alternatively or additionally, if the bounding box of the disconnected component intersects with the bounding box of the edited component or is within a threshold distance from the bounding box of the edited component, edit propagation can be applied to the disconnected component.

[0050] As another example for determining whether to propagate modifications to disconnected components, the size of the component can be analyzed to determine whether the edit should be applied to the disconnected component. For example, in some cases, if the identified disconnected component is a smaller component, it can be determined that the edit is propagated to the disconnected component. On the other hand, if the identified disconnected component is a larger component, it can be determined that the edit is not propagated to the disconnected component.

[0051] In operation, a hierarchy tree can be constructed to facilitate such analysis of disconnected components (e.g., with respect to distance and / or component size). As an example only, a hierarchy tree of components can be generated based on proximity and / or size relationships. To this end, a directed graph can be constructed in which each component is a node and an edge is between two adjacent components pointing from a larger component toward a smaller component. The minimum spanning tree can be viewed as a hierarchy tree. In this way, when a user edits a handle corresponding to a component, the edit can be propagated to the subcomponent, but vice versa.

[0052] When identifying that edits are propagated to disconnected components, the mesh optimizer 236 can utilize this information to perform mesh optimization. For example, additional constraints can be defined to enable cross-component editing. For example, the constraints indicate that vertices on the edited component should be manipulated similarly to vertices on the disconnected component so that the mesh optimization can be propagated to the disconnected component as well as the edited component. To this end, vertices on the edited component and vertices on the disconnected component can be defined or specified as attachment points for use as constraints. In this way, the relative positioning of the attachment points can be maintained or preserved during mesh optimization.

[0053] Figure 6 A process flow 600 is shown depicting an example embodiment of facilitating editing of a three-dimensional model according to various embodiments of the present disclosure. Figure 2 The model editing engine discussed is used to execute the process flow 600 .

[0054] As shown, the processing flow 600 begins at box 602, where a significant geometric feature associated with a three-dimensional model defining an object is identified. As described herein, a significant geometric feature can be a prominent curve associated with the three-dimensional model. At box 604, feature attributes associated with the significant geometric features of the three-dimensional model are determined. These feature attributes can include, for example, properties, relationships, distances, primitives, and / or the like. At box 606, based on the determined feature attributes, a feature set including multiple significant geometric features related to each other is generated. It will be appreciated that any number of feature sets can be generated. In the case of generating multiple feature sets, in some implementations, a selection can be made to select a specific feature set or a specific set of feature sets to present and / or generate and present an edit handle for it. At box 608, an edit handle for the feature set is provided for display. The edit handle enables each of the multiple significant geometric features within the feature set to be edited according to the manipulation of the edit handle. It will be appreciated that the edit handle can be displayed in association with one of the multiple significant geometric features.

[0055] Go to Figure 7 , Figure 7 A process flow 700 is shown depicting an example embodiment of facilitating editing of a three-dimensional model according to various embodiments of the present disclosure. Figure 2 The model editing engine discussed performs the process flow 700 .

[0056] As shown, the processing flow 700 begins at box 702, where a manipulation of an edit handle displayed in association with one of a plurality of related geometric features of a three-dimensional model is received. The manipulation may indicate a rotation, translation, or scaling operation performed on the three-dimensional model or a portion thereof. At box 704, each of the plurality of related geometric features of the three-dimensional model is edited according to the manipulation of the edit handle. At box 706, an influence region within the three-dimensional model is determined. Such a determination may be made, for example, based on an analysis of the properties, relationships, distances, primitives, etc. of the geometric features. Alternatively or additionally, the influence region may be determined or modified based on user input. At box 708, the edit corresponding to the manipulation of the edit handle is propagated to a second set of geometric features within the influence region of the three-dimensional model. At box 710, the three-dimensional model is updated (e.g., mesh optimization) based on the edits to each of the plurality of related geometric features and the edits to the second set of geometric features within the influence region.

[0057] refer to Figure 8 , computing device 800 includes a bus 810 that directly or indirectly couples the following devices: memory 812, one or more processors 814, one or more presentation components 816, input / output I / O ports 818, input / output I / O components 820, and a schematic power supply 822. Bus 810 represents one or more buses (e.g., an address bus, a data bus, or a combination thereof). Although for clarity, Figure 8 The various blocks of FIG. 1 are shown with clearly delineated lines, but in reality, such delineation is not so clear and the lines may overlap. For example, presentation components such as display devices may also be considered I / O components. In addition, processors typically have memory in the form of cache. We recognize that this is the nature of the art and reiterate that Figure 8 The figures are merely illustrations of example computing devices that can be used in conjunction with one or more embodiments of the present disclosure. No distinction is made between categories such as "workstation," "server," "laptop," "handheld device," etc., as all of these are referred to in the same manner. Figure 8 within the scope of and with reference to a “computing device”.

[0058] The computing device 800 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computing device 800, and includes volatile and non-volatile media, removable and non-removable media. By way of example and not limitation, computer-readable media can include computer storage media and communication media.

[0059] Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by the computing device 800. Computer storage media themselves exclude signals.

[0060] Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism, and includes any information delivery media. The term "modulated data signal" refers to a signal that sets or changes one or more of its characteristics in a manner that encodes the information in the signal. By way of example and not limitation, communication media include wired media such as a wired network or direct wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Any combination of the above should also be included within the scope of computer readable media.

[0061] Memory 812 includes computer storage media in the form of volatile and / or non-volatile memory. As shown, memory 812 includes instructions 824. Instructions 824 are configured to cause the computing device to perform any operation described herein, with reference to the drawings discussed above, or to implement any program module described herein when executed by processor 814. The memory may be removable, non-removable, or a combination thereof. Illustrative hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. Computing device 800 includes one or more processors that read data from various entities such as memory 812 or I / O components 820. Presentation component 816 presents data indications to a user or other device. Illustrative presentation components include display devices, speakers, printing components, vibration components, etc.

[0062] I / O ports 818 allow computing device 800 to be logically coupled to other devices including I / O components 820, some of which may be built-in. Exemplary components include microphones, joysticks, game controllers, satellite dishes, scanners, printers, wireless devices, etc.

[0063] The embodiments presented herein have been described with respect to particular embodiments, which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those of ordinary skill in the art to which the present disclosure pertains without departing from the scope of the present disclosure.

[0064] From the foregoing it will be seen that the present disclosure is adapted in one source to attain all ends and purposes hereinbefore set forth, together with other advantages which are obvious and inherent to the structure.

[0065] It will be understood that certain features and subcombinations are of utility and may be employed without reference to other features or subcombinations. This is contemplated and within the scope of the claims.

[0066] In the foregoing detailed description, reference is made to the accompanying drawings forming a part thereof, wherein like reference numerals designate like parts throughout, and wherein embodiments that may be practiced are shown by way of illustration. It should be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the foregoing detailed description should not be considered to have a limiting meaning, and the scope of the embodiments is defined by the appended claims and their equivalents.

[0067] The various aspects of the illustrative embodiments have been described using terms commonly used by those skilled in the art to convey the essence of their work to other persons skilled in the art. However, it will be apparent to those skilled in the art that alternative embodiments may be practiced utilizing only some of the described aspects. For purposes of explanation, specific numbers, materials, and configurations are set forth to provide a thorough understanding of the illustrative embodiments. However, it will be apparent to those skilled in the art that alternative embodiments may be practiced without the specific details. In other cases, well-known features have been omitted or simplified to avoid obscuring the illustrative embodiments.

[0068] Various operations have been described as multiple discrete operations in a manner that is most helpful for understanding the illustrative embodiments; however, the order of description should not be interpreted as implying that these operations must be dependent on the order. In particular, these operations do not need to be performed in the order presented. In addition, the description of operations as separate operations should not be interpreted as requiring the operations to be performed independently and / or by separate entities. The description of entities and / or modules as separate modules should also not be interpreted as requiring the modules to be separated and / or perform separate operations. In various embodiments, the operations, entities, data and / or modules shown and / or described can be merged, divided into more sub-parts and / or omitted.

[0069] The phrase "in one embodiment" or "in an embodiment" is used repeatedly. The phrase generally does not refer to the same embodiment; however, it may. The terms "including," "having," and "comprising" are synonymous unless the context dictates otherwise. The phrase "A / B" means "A or B." The phrase "A and / or B" means "(A), (B), or (A and B)." The phrase "at least one of A, B, and C" means "(A), (B), (C), (A and B), (A and C), (B and C), or (A, B, and C)."

Claims

1. A computer-implemented method for editing a three-dimensional model, the method comprising: identifying salient geometric features associated with a three-dimensional model that defines an object; determining feature attributes associated with the salient geometric features of the three-dimensional model, wherein the feature attributes include properties, relationships, and / or proximity; generating a first feature set including a plurality of mutually related salient geometric features based on the determined feature attributes and corresponding attribute types; generating a feature set score for the first feature set based on properties corresponding to the plurality of salient geometric features of the first feature set; Based on the feature set score, an editing handle for the first feature set is displayed, the editing handle enabling each of the multiple salient geometric features within the first feature set to be edited by rotating, translating and / or scaling the first feature set in three-dimensional space according to user manipulation of the editing handle, the editing handle being displayed in association with one of the multiple salient geometric features. 2 . The computer-implemented method of claim 1 , wherein the salient geometric features include curves associated with the three-dimensional model. The computer-implemented method of claim 1 , wherein the feature attributes further include geometric primitives. The computer-implemented method of claim 1 , wherein the property comprises linearity, circularity, flatness, or a combination thereof. The computer-implemented method of claim 1 , wherein the relationship comprises coplanarity, parallelism, symmetry, concentricity, or a combination thereof. 6 . The computer-implemented method of claim 1 , wherein weights associated with the attribute types corresponding to the determined feature attributes are used to generate the feature set scores. 7 . The computer-implemented method of claim 1 , wherein each salient geometric feature of the plurality of salient geometric features within the first feature set is visually emphasized in association with the rendering of the object. 8 . The computer-implemented method of claim 1 , wherein manipulation of the edit handle causes rotation, translation, scaling, or a combination thereof, of a second set of features within an area of ​​influence of the three-dimensional model.

9. The computer-implemented method of claim 1 , wherein the edit handle comprises: The first part is used to enable editing of the three-dimensional model via a translation operation, the second part is used to enable editing of the three-dimensional model via a rotation operation, and the third part is used to enable editing of the three-dimensional model via a zoom operation.

10. The computer-implemented method of claim 1 , further comprising: generating a second feature set of mutually related salient geometric features based on at least one of the determined feature attributes; as well as Causes display of a second editing handle for the second feature set, the second editing handle enabling each of the salient geometric features within the second feature set to be edited based on manipulation of the second editing handle, the second editing handle being displayed in association with one of the second plurality of salient geometric features. The computer-implemented method of claim 10 , wherein the second edit handle is displayed simultaneously with the edit handle.

12. One or more non-transitory computer readable media having a plurality of executable instructions embodied thereon, the plurality of executable instructions, when executed by one or more processors, causing the one or more processors to perform a method for editing a three-dimensional model, the method comprising: receiving a manipulation of an edit handle displayed in association with one of a plurality of related geometric features of the three-dimensional model, the manipulation indicating a rotation, translation, or scaling operation to be performed on the three-dimensional model; editing each of the plurality of related geometric features of the three-dimensional model in accordance with manipulation of the editing handle; determining an area of ​​influence of the three-dimensional model, wherein the area of ​​influence includes a second set of geometric features of a portion of the three-dimensional model, wherein determining the area of ​​influence is based on a type of operation indicated by the manipulation of the edit handle displayed in association with a relevant geometric feature of the plurality of relevant geometric features; propagating edits corresponding to the manipulation of the edit handle to a second set of geometric features within the region of influence of the three-dimensional model, the second set of geometric features being distinct from the plurality of related geometric features, wherein propagating the edits to the second set of geometric features within the region of influence preserves properties of the second set of geometric features shared with the plurality of related geometric features; as well as The three-dimensional model is updated based on the edits to each of the plurality of related geometric features and the edits to the second set of geometric features within the region of influence. 13 . The one or more non-transitory computer-readable media of claim 12 , wherein editing each of the plurality of related geometric features comprises rotating, translating, and / or scaling the corresponding feature.

14. The one or more non-transitory computer-readable media of claim 12, further comprising determining the influence area of ​​the three-dimensional model based on properties, relationships, distances, primitives, or combinations thereof associated with geometric features of the three-dimensional model. 15 . The one or more non-transitory computer-readable media of claim 12 , further comprising determining the area of ​​influence based on a user selection of at least a portion of an object defined by the three-dimensional model.

16. The one or more non-transitory computer readable media of claim 12, further comprising: automatically determining the region of influence of the three-dimensional model based on properties, relationships, distances, primitives, or combinations thereof associated with geometric features of the three-dimensional model; A user selection is received via a graphical user interface for modifying the region of influence to effectuate editing in more or less of the three-dimensional model. 17 . The one or more non-transitory computer-readable media of claim 12 , wherein updating the three-dimensional model comprises propagating edits to disconnected components within a threshold distance of a component being edited.

18. A computing system comprising: means for generating edit handles for a plurality of related curves associated with a three-dimensional model, the edit handles being different from the plurality of related curves, and the plurality of related curves being a plurality of salient geometric features, and wherein the edit handles are displayed based on a feature set score for a first feature set including the plurality of salient geometric features, and wherein the feature set score is generated based on properties corresponding to the plurality of salient geometric features of the first feature set; as well as Means for editing the three-dimensional model based on manipulation of the editing handle, the editing comprising applying edits to at least the plurality of related curves associated with the three-dimensional model, wherein editing the three-dimensional model further comprises editing other curves within an influence region within the three-dimensional model.

19. The computing system of claim 18, the region of influence being determined based on a property, a relationship, a distance, a primitive, or a combination thereof, associated with a curve of the three-dimensional model.

20. The computing system of claim 18, wherein the affected area is selected or modified by a user via a graphical user interface.

Citation Information

Patent Citations

  • Plant leaf three-dimensional model modeling method and system

    CN104851125A

  • Apparatus and method for processing user-specified search image points

    US20070071323A1

  • Methods, systems, and data structures for performing searches on three dimensional objects

    WO2004068300A2