Abstract:
A mesh repair engine is configured to repair a hole in a three-dimensional (3D) model by (i) filling the hole with a rough mesh, (ii) refining the rough mesh, (iii) collapsing the refined mesh, (iv) refining the collapsed mesh, (v) flattening the refined, collapsed mesh, and then (vi) deforming the flattened mesh into a 3D surface that smoothly fills the hole in the 3D model. One advantage of the disclosed repair engine and associated hole repair technique is that the mesh repair engine is capable of generating polygons that fill regions of a 3D model that are not defined. Consequently, an end-user of the mesh repair tool is able to generate watertight 3D models from previously incomplete and non-watertight 3D models.
Abstract:
One embodiment of the present invention sets forth a technique for joining meshes of primitives. The technique involves receiving a first mesh boundary and a second mesh boundary, removing a first surface associated with the first mesh boundary, and removing a second surface associated with the second mesh boundary. The technique further involves joining a first vertex associated with the first mesh boundary to a first plurality of vertices associated with the second mesh boundary to form a joined surface. Finally, the technique involves performing one or more mesh refinement passes on the joined surface to generate a refined mesh surface.
Abstract:
One embodiment of the present invention sets forth a technique for zippering meshes of primitives. The technique involves identifying a first vertex associated with a first mesh boundary and having a first position and identifying a second vertex that is proximate to the first vertex and associated with a second mesh boundary, where the second vertex has a second position. The technique further involves determining a third position based on the first position, the second position, and a zippering strength factor, where the third position is located in a region between the first position and the second position. Filially, the technique involves moving the first vertex to the third position.
Abstract:
In one embodiment of the present invention, a foldable beam generator produces a foldable beam polyline that approximates a three-dimensional (3D) space curve. The foldable beam generator optimizes the number and position of joints included in the foldable beam polyline to minimize differences between the foldable beam polyline and the 3D space curve while complying with one or more manufacturing constraints. Notably, the foldable beam generator designs each of the joints to act as a living hinge that closes to a fixed angle when heated and solidifies when cooled. By using the foldable beam polyline as a 3D digital model for manufacturing and subsequently applying heat to assemble the manufactured 3D object, defects and/or limitations of complex 3D objects typically associated with traditional manufacturing techniques may be reduced. In particular, support structures designed to buttress three-dimensional (3D) digital models during 3D printing may be minimized.
Abstract:
In one embodiment of the present invention, a support structure generator creates support structures designed to buttress three-dimensional (3D) digital models during 3D printing. In operation, the support structure generator incrementally constructs a support graph that connects overhanging points included in the 3D model with support points on a horizontal ground plane or relatively flat surfaces in the 3D model. After generating the 3D model, the support structure generator translates the connections between the nodes into support posts sized to sufficiently support the connected surfaces with the minimum amount of support material. Advantageously, the support structure is noticeably sparser than conventional support structures that fill a given support region with a solid volume of support material. Consequently, the time necessary for 3D printers to fabricate the support structure of interconnected support posts is less than the time required for 3D printers to fabricate conventional support structures.
Abstract:
A mesh repair engine is configured to repair a hole in a three-dimensional (3D) model by (i) filling the hole with a rough mesh, (ii) refining the rough mesh, (iii) collapsing the refined mesh, (iv) refining the collapsed mesh, (v) flattening the refined, collapsed mesh, and then (vi) deforming the flattened mesh into a 3D surface that smoothly fills the hole in the 3D model. One advantage of the disclosed repair engine and associated hole repair technique is that the mesh repair engine is capable of generating polygons that fill regions of a 3D model that are not defined. Consequently, an end-user of the mesh repair tool is able to generate watertight 3D models from previously incomplete and non-watertight 3D models.
Abstract:
Techniques are disclosed for generating a consensus mesh to cover a received set of points. In one embodiment, a meshing application generates multiple meshes that cover the received point set by varying parameters of an interpolating meshing technique, such as the ball-pivoting technique, tangent-space Delaunay triangulation, and the like. Different values for the one or more parameters are used to generate each of the meshes. After generating the multiple meshes, the meshing application may sort triangles in the meshes based on the frequency in which the triangles appear in the meshes. The meshing application may then iteratively add next-best triangles which are also compatible with the current consensus mesh to the consensus mesh, with the next-best triangle being a most frequently occurring triangle which has not yet been added to the consensus mesh. Compatibility may be defined using various criteria, such as producing a manifold and orientable triangulation.
Abstract:
Techniques for improving flexural strength in 3D-printed object. The techniques generally include identifying a portion of a 3D model corresponding to the 3D-printed object to which one or more support posts should be added and adding support post descriptors to the 3D model within such a portion. The support post descriptor defines a position and at least one dimension of a support post cavity and a position and at least one dimension of a support post, both having a height corresponding to at least two layers of 3D-printable material. The model, including the support post descriptors are transmitted to a 3D printer to print the 3D model, which includes a support post cavity and a support post having a height of at least two layers.
Abstract:
A system and method are disclosed for manipulating objects within a virtual environment using a software widget. The software widget includes one or more controls for performing surface constrained manipulation operations. A graphical representation of the software widget is superimposed over the object and enables a user to use simple mouse operations to perform the various manipulation operations. The position operation determines an intersection point between the mouse cursor and a surface of a different object and moves the object to the intersection point. The scale operation adjusts the size of the object. The rotate operation adjusts the rotation of the object around a normal vector on the surface of the different object. The twist operation deforms the object along a local z-axis. The orientation operation adjusts the orientation of the object with respect to the normal vector.
Abstract:
A stroke parameterization engine within a rendering engine is configured to map a texture to the surface of a three-dimensional (3D) model along a stroke defined by an end-user of the rendering engine. The stroke parameterization engine converts the stroke to a polyline, then generates a geodesic trace by sliding a geodesic circle along the polyline and collecting points associated with the 3D model that fall within the geodesic circle. The stroke parameterization engine then parameterizes points associated with the polyline and the geodesic trace using UV coordinates associated with a texture map, thereby generating UV coordinates for each point within the polyline and geodesic trace. The stroke parameterization engine then projects the texture map onto the surface of the 3D model using the UV coordinates generated for the polyline and geodesic trace.