Weld
Toolbar | Menu |
---|---|
|
Mesh Edit Tools > Weld |
The Weld command removes creases from a mesh by merging coincident mesh vertices.
Individual texture mapping, color, and normal vector data is averaged/created/destroyed for the affected vertices.
Weld will create new vertex normals at each welded vertex that is the average of the adjacent face normals. One vertex is shared by more than one face after welding.
Command-line options | |
---|---|
Angle tolerance |
If two naked mesh edge points of a selected mesh are coincident, and their neighboring faces are within the angle tolerance of each other, they will be replaced by a single mesh point. If the two points are from different "sub-meshes" of a joined mesh, the meshes become one mesh that cannot explode. As you change the tolerance, the mesh edges that are within the tolerance, and will therefore be welded, are highlighted. |
Related commands
Toolbar | Menu |
---|---|
|
|
The WeldEdge command:
- Merges coincident mesh vertices along selected unwelded mesh edges.
- Smooths selected creased edges in SubDs.
Steps
- Select unwelded edges in meshes, or creased edges in SubDs.
Command-line options | |
---|---|
Undo |
Removes the last selected edge. |
Mesh/SubD edge loop selection
To select an entire edge loop
-
Double-click an edge.
To select a range of edge loop
- Click two edges in the loop.
-
Double-click an edge in between.
To deselect an edge loop
-
Ctrl(CMD)+double-click an edge in a selected loop.
Mesh/SubD edge ring selection (Post-selection)
To select an entire edge ring
-
Click an edge.
-
Alt+double-click the next edge in the ring.
To select a range of edge ring
-
Click two edges in the ring.
-
Alt+double-click an edge in between and next to one of the selected edges.
To deselect an edge ring
-
Ctrl(CMD)+Alt+double-click an edge in a selected ring.
Mesh/SubD face loop selection (Post-selection)
To select an entire face loop
-
Click a face.
-
Double-click the next face that decides the loop direction.
To select a range of face loop
-
Click two faces in the loop.
-
Double-click a face in between and next to one of the selected faces.
To deselect a face loop
-
Ctrl(CMD)+double-click a face in a selected loop.
Flood fill mesh/SubD face selection within a boundary (Pre-selection)
To select all faces within a boundary of edges or faces
-
Select edges or faces to define a boundary.
-
Click a face surrounded by unselected faces.
-
Double-click the face again.
Mesh/SubD vertex chain selection (Post-selection)
To select an entire vertex chain
-
Click a vertex.
-
Double-click the next vertex that decides the chain direction.
To select a range of vertex chain
-
Click two vertices in the chain.
-
Double-click a vertex in between and next to one of the selected vertices.
To deselect a vertex chain
-
Ctrl(CMD)+double-click a vertex in a selected chain.
Surface tangent edge chain selection (Post-selection)
To select a tangent edge chain
-
Double-click a surface edge in the chain.
To deselect a tangent edge chain
-
Ctrl(CMD)+double-click an edge of a selected chain.
Toolbar | Menu |
---|---|
|
Mesh Edit Tools > Weld Selected Vertices |
The WeldVertices command merges selected coincident vertices on joined mesh edges into single vertices.
Or, converts selected SubD creased vertices into smooth vertices.
Supported input
- Mesh Vertex, Control point.
- SubD Vertex, Edit point, Control point
Why weld mesh vertices?
Welding polygon meshes affect rendering, texture mapping on mesh objects, and file export for stereolithography.
Smoother Rendering
In wireframe these two meshes look the same.
When shaded, the red mesh looks smooth and the blue mesh looks chunky.
Each triangle vertex in the red mesh is welded to its neighbors. This causes the vertices in the red mesh to look smooth. No points in the blue mesh are welded. This causes the vertices in the blue mesh to look sharp.
Suppose you want the blue mesh to look smoother.
First you have to determine the angle tolerance. The shaded creases of this angle should look sharp.
Texture Mapping
Texture mapping coordinates control how a texture wraps around the object. These are two-dimensional coordinates that are attached to a polygon vertex, and they determine which point on the texture bitmap maps to this vertex. The points between the vertices interpolate from the vertex values.
The bottom left corner of the bitmap is the origin, the bottom right is (1,0), top left is (0,1) and top right is (1,1). The texture mapping coordinates are always between these values.
Only one pair of texture mapping coordinates can attach to a single vertex. That is why if you weld vertices, thus removing the overlapping duplicates, you throw away all but one pair of texture mapping coordinates.
The loss of texture mapping coordinates is irreversible. You cannot recover the mapping coordinates from the remaining mesh information.
To remove welding (and to also lose the texture mapping coordinates), use the UnWeld or the UnWeldEdge command.
STL Mesh Export Diagnostics
In some rapid prototyping machines, STL files must contain completely closed (watertight) polygon mesh objects.
You might want to use the Join command, then Weld (angle=180), then UnifyMeshNormals to turn a group of meshes into a single watertight mesh object, and use SelNakedMeshEdgePt to find the open (naked) edges. Following this procedure will ensure that the meshes really do fit together before exporting them for use in an expensive STL job.
See: Stereolithography (.stl) Import/Export.
Toolbar | Menu |
---|---|
|
Mesh Edit Tools > Unweld |
The Unweld command adds creases to a smooth mesh by creating coincident vertices.
Command-line options | |
---|---|
ModifyNormals |
YesThe vertex normals on each side of the edge take the same value as the face to which they belong, giving the mesh a hard edge look. NoEach of the vertex normals on either side of the edge is assigned the same value as the original normal that the pair is replacing, keeping a smooth look. |
Toolbar | Menu |
---|---|
|
Mesh Edit Tools > Unweld Selected Edges |
The UnweldEdge command adds coincident vertices (can be separated) along the selected mesh or SubD edges.
Steps
- Select mesh or SubD edges.
Command-line options | |
---|---|
ModifyNormals |
YesThe vertex normals on each side of the edge take the same value as the face to which they belong, giving the mesh a hard edge look. NoEach of the vertex normals on either side of the edge is assigned the same value as the original normal that the pair is replacing, keeping a smooth look. |
Mesh/SubD edge loop selection
To select an entire edge loop
-
Double-click an edge.
To select a range of edge loop
- Click two edges in the loop.
-
Double-click an edge in between.
To deselect an edge loop
-
Ctrl(CMD)+double-click an edge in a selected loop.
Mesh/SubD edge ring selection (Post-selection)
To select an entire edge ring
-
Click an edge.
-
Alt+double-click the next edge in the ring.
To select a range of edge ring
-
Click two edges in the ring.
-
Alt+double-click an edge in between and next to one of the selected edges.
To deselect an edge ring
-
Ctrl(CMD)+Alt+double-click an edge in a selected ring.
Mesh/SubD face loop selection (Post-selection)
To select an entire face loop
-
Click a face.
-
Double-click the next face that decides the loop direction.
To select a range of face loop
-
Click two faces in the loop.
-
Double-click a face in between and next to one of the selected faces.
To deselect a face loop
-
Ctrl(CMD)+double-click a face in a selected loop.
Flood fill mesh/SubD face selection within a boundary (Pre-selection)
To select all faces within a boundary of edges or faces
-
Select edges or faces to define a boundary.
-
Click a face surrounded by unselected faces.
-
Double-click the face again.
Mesh/SubD vertex chain selection (Post-selection)
To select an entire vertex chain
-
Click a vertex.
-
Double-click the next vertex that decides the chain direction.
To select a range of vertex chain
-
Click two vertices in the chain.
-
Double-click a vertex in between and next to one of the selected vertices.
To deselect a vertex chain
-
Ctrl(CMD)+double-click a vertex in a selected chain.
Surface tangent edge chain selection (Post-selection)
To select a tangent edge chain
-
Double-click a surface edge in the chain.
To deselect a tangent edge chain
-
Ctrl(CMD)+double-click an edge of a selected chain.
Toolbar | Menu |
---|---|
|
|
The UnweldVertex command unwelds selected mesh or SubD vertices.
Steps
-
Select mesh or SubD vertices.
Command-line options
ModifyNormals
Yes
The vertex normals on each side of the vertex take the same value as the face to which they belong, giving the mesh a hard edge look.
No
Each of the vertex normals on either side of the edge is assigned the same value as the original normal that the pair is replacing, keeping a smooth look.
What welding means
Internally, a mesh is defined by two lists:
- A list of vertices and their attributes (position, normal, texture coordinates, vertex-color).
- A list of face definitions describing how these vertices are connected to form faces.
Examples
Quadrangular mesh
This two-part definition describes two quadrangular faces that do not share vertices as shown in the illustration.
Vertex list
The vertex list is half of the mesh definition, describing the vertices.
In this example texture coordinates and vertex colors are left out, but those are per-vertex attributes as well.
vertex 1 : location, normal
vertex 2 : location, normal
vertex 3 : location, normal
vertex 4 : location, normal
vertex 5 : location, normal
vertex 6 : location, normal
vertex 7 : location, normal
vertex 8 : location, normal
Face definitions
This list describes how these vertices are connected to form faces.
face 1 : vertex 1, vertex 2, vertex 3, vertex 4
face 2 : vertex 5, vertex 6, vertex 7, vertex 8
Triangular mesh example 1
A mesh with a list like the following example describes two separate triangular faces, not touching each other, as shown in the illustration.
vertex 1 : location, normal
vertex 2 : location, normal
vertex 3 : location, normal
vertex 4 : location, normal
vertex 5 : location, normal
vertex 6 : location, normal
face 1 : vertex 1, vertex 2, vertex 3
face 2 : vertex 4, vertex 5, vertex 6
Triangular mesh example 2
In the next example, imagine two of those six vertices share the same position:
vertex 1 : location, normal
vertex 2 : location, normal
vertex 3 : location, normal
vertex 4 : location, normal
vertex 5 : location, normal
vertex 6 : location, normal
face 1 : vertex 1, vertex 2, vertex 3
face 2 : vertex 4, vertex 5, vertex 6
Here vertices 2 and 4 are at the same position and 3 and 6 are at the same position.
So we have a mesh consisting of two faces that share one edge, but vertices 2, 3, 4 and 6 all have their own individual attributes. So their normals can be different.
Joined mesh
When you Join a mesh, the vertices and faces are in no way merged; the lists are simply appended. The face normals retain their direction.
Welded mesh
When you Weld a mesh and the angle between the faces is below the threshold the common edge will be welded.
The two common vertices are replaced by a new vertex with new attributes:
vertex 1 : location, normal
vertex 5 : location, normal
vertex 7 : location, normal
vertex 8 : location, normal
face 1 : vertex 1, vertex 7, vertex 8
face 2 : vertex 7, vertex 5, vertex 8
New normal attributes for vertices 7 and 8 are averaged based on the normals of the faces they are part of, so there is no way to get the previous (pre-weld) normals back.
Summary
- Joining does not destroy any vertex attributes.
- Welding "merges" vertices on common edges below the angle threshold.
- The resulting new vertex has it's normal calculated based on the average of the faces it belongs to.