Houdini 20.5 Nodes Geometry nodes

Quad Remesh geometry node

Converts an arbitrary mesh into structured quadrilaterals.

On this page

Overview

This feature is still under development. The current functionality is unfinished and subject to change, and may have thin or no documentation. Please bear this in mind when using it.

This node builds a mesh of quads (four-sided polygons) with the same shape as the input surface, but as quads and better edge flow.

The higher the target number of polygons, the better the shape of the output can match the shape of the input. In this example, the input model on the left has 16 million polygons, and the output on the right has 15 thousand quads.

In other words, increasing the target quad count increases the resolution of the quad mesh.

Note

This node can also increase the number of polygons in the model since it works to a target quad count.

How it works internally

An understanding of what the node is doing internally may help you use the node’s options and output. In technical terms, this node computes a global parameterization over the input geometry and extracts a quadrilateral mesh by tracing integer grid lines in the parameterization.

  • Internally, the node builds a direction field, representing the edge flow directions across the surface. This is a rough draft for how the edges will be laid out in the output, before any constraints are applied. Areas where the directions in the field are parallel to integer lines in the global parameterization will come out as smooth, regular quads.

    You can visualize the field by turning on Field in the node’s operation toolbar at the top of the viewer.

  • The entire surface can’t be smooth. At some point, different flows will run into each other, and there will be points on the surface where the surrounding directions converge, diverge, or cross. These are called singularities.

    You can visualize the singularities by turning on Field singularities in the node’s operation toolbar at the top of the viewer.

  • The singularities are the corners that unwrap the surface onto a UV plane. The node creates seams between the singularity points, which it cuts to make them the boundaries of the unwrapped UV surface.

    You can visualize the seams by turning on Seams in the node’s operation toolbar at the top of the viewer.

  • The node traces lines across the UV space to create the new quad mesh layout. One of the biggest constraints on how the node can lay out the edges, and how much you can change the layout, is that edge flow must be continuous across the seams (the boundaries of the unwrapped surface in UV space).

    If you compare the field visualization to the final quad output, the main reason for any differences is usually needing to maintain continuity across seams.

  • The singularities will usually become extraordinary vertices (vertices with fewer or more than four connected edges) in the output mesh.

Tweaking the output

The node does not allow a lot of control over the final result but you can use the parameters to tweak the output.

  • Changing the Decimation level can give different results. For high resolution input, higher levels of reduction can give better results.

  • The Alignment Weight parameter lets you influence the trade-off between smoother edge flow versus capturing the curvature of the surface in the flow. Increasing the weight increases the number of singularities.

  • Some of the options that influence the topology of the output, such as symmetry or a guide attribute, constrain the node’s search for a parameterization. As you add more constraints or decrease their weight, they may have less of an impact on the resulting quad mesh, since they make it harder to find a solution that satisfies all the constraints.

  • Once the node has created the parameterization internally, changing the resolution of the output is quite fast.

  • The parameters on the Symmetry tab let you specify planes of symmetry in the input model. The node will only remesh one side of each of the symmetry planes and (optionally) mirror the remeshed surface back across the symmetry planes.

Limitations

This node is a work in progress and useful for certain use cases but has a few limitations in its current beta state.

  • There is currently no way to interactively influence edge flow (for example, by brushing or drawing lines). However, you can manually set up a vector attribute on the polygons to have some influence over the edge flow. See the Guide Attribute parameter on the Alignment tab.

  • The node is currently not good at hard surface models with sharp edges and is better at organic shapes. The node will round off the sharp edge in the output.

  • Currently, when you use the Symmetry options, the seam along the symmetry plane will be straight in 3D space, but may not always be straight in UV space. This can cause edges to run into the symmetry line instead of running parallel to it. Increasing the Symmetry Plane Alignment parameter can help direct the edge flows near the symmetry planes.

  • The flattened UVs created by the node can be quite complicated. This can cause artifacts in the output.

  • The node currently produces uniform sized quads, rather than adapting the size of the quads to better capture small details.

Toolbar

Select a Quad Remesh node in the network editor, and click the Handles tool to the left of the viewer, or press Enter in the viewport to use the Quad Remesh tool.

Currently, the tool does not have viewport interaction (use the parameter editor to change how the node works). It does provide visualizes to help you understand how the node generates the output and what parts of the input model might be difficult for the node to deal with.

You can control visualization options using the controls in the operator toolbar. See how the node works internally for information about what these visualizations show.

Options

Description

Global Parameter

When on, the node draws the global parameter lines as darker lines across the model.

The global parameter lines influence the directions of edge loops in the output surface but are independent of the output resolution.

Seams

When on, the node draws the seams of the global parameterization as brightly colored lines across the model.

Field Singularities

Displays a dot in the approximate location of each singularity. A red dot indicates a singularity with a positive index and a blue dot indicates a singularity with a negative index.

Field

Displays the field over the geometry when the viewport state of the node is active.

When displaying multi-vector fields, the vector field of the first instance is red and the other vector fields are blue.

Field Scale

Rescales the current viewing scale of the field vectors by any factor.

The default value is 1.

Guides

Displays any non-zero guide vectors that are specified by an attribute. This is useful for comparing guides with the generated field used for the quad remeshing.

Guide Scale

Rescales the current viewing scale of the guide vectors by any factor.

The default value is 1.

Parameters

Group

The name of a group or list of primitive numbers/patterns that select the geometry this node will affect. If blank, the node affects all closed polygons in the input.

Topology

Decimation Level

The input to this node is typically a high-resolution surface, such as scan data, with more information than the node needs. This parameter reduces the number of polygons in the input before remeshing. Reducing the input polygons makes remeshing much faster, and in many cases can improve the edge flows in the output because the reduced input will have less noise. Default is 2. Increase this value for more reduction.

If you specify a Guide attribute or a Mask attribute (on the Alignment tab), the node will not reduce any faces with a non-zero attribute.

Output

Controls the output of this node. Extracted Mesh outputs the remeshed quad surface. Global Parameterization outputs a triangular mesh with a uv vertex attribute containing the parameterization.

The triangular mesh is post-reduction by the Decimation level.

Resolution Mode

Selects the method to use that controls the resolution of the quad mesh and the overall scale of the global parameterization.

Target Quad Count: specify the number of polygons you want the output surface to have.

Target Quad Area: results in a quad mesh where the mean quad area is less than the given area measure.

Target Tolerance: results in a quad mesh where the mean distance from the center of a quad primitive to the input mesh is less than the given tolerance value.

Relative Scale and Absolute Scale: creates a base resolution representative to the mean area of the triangles in the decimated mesh. When the input is composed of multiple disjoint components, each component will use a mean triangle area taken over the individual component in the Relative Scale mode, while a single mean triangle area will be taken over all components with the Absolute Scale mode.

Resolution Scale

When using either Relative Scale or Absolute Scale, the resolution scale lets you increase/decrease the mesh resolution like increasing/decreasing the size of an image uniformly. This is also similar to global subdivison surface refinement of a quad mesh.

Resolution Source

When using Absolute Scale for Resolution Scale, a triangle area is used as a basis for the scale of the global parameterization.

Auto: attemps to choose an appropriate triangle area.

Triangle Area: allows a custom triangle area to be specified. Specifying Triangle Area gives better resolution stability when changing parameters like the Decimation level affecting the triangle sizes as the input mesh gets modified.

Triangle Area

The specified triangle area when using the Triangle Area option for the Resolution Source.

Note

Only base two logarithmic changes in the Triangle Area parameter will result in a resolution change.

Symmetry

Center

The origin of the symmetry plane(s) in the input model.

X

Treat the model as symmetrical across the X-axis. Choose whether to remesh the +X or -X side of the input (relative to the Center).

Y

Treat the model as symmetrical across the Y-axis. Choose whether to remesh the +Y or -Y side of the input (relative to the Center).

Z

Treat the model as symmetrical across the Z-axis. Choose whether to remesh the +Z or -Z side of the input (relative to the Center).

Mirror Output

When a symmetry direction is on, this automatically mirrors the remeshed half back across the symmetry plane in the output. When off, the output only contains the remeshed side of the symmetry. You can turn this off if you want to further processing to the remeshed half before mirroring it manually or don’t need to mirror.

Consolidate Seam

When Mirror Output is on, the node fuses points of the two halves along the symmetry plane, if they are closer than this distance. New points are only fused with their mirrored counterpart.

Alignment

This node uses a tangent field to guide the edge flows of the quad mesh. Use these parameters to manipulate the tangent field to customize the alignment of the resulting edge flows. When there is no alignment guiding (when all alignment parameters are set to zero), the node generates the smoothest field over the surface. The alignment criteria is a weighted combination of per primitive vectors representing surface curvature, boundary directions, and optional user specified guide vectors. These three vector components are independent channels that get mixed together.

Include Boundary Edges

Preserves boundaries in the output quad mesh.

Field

Whether to generate the field over polygon faces or edges.

Weight

A weight specifying the balance between the alignment criteria and the global smoothness of the tangent field. Increasing the weight makes the field more aligned, while decreasing the weight make the field smoother. Use values are in the range from zero to one.

Note

Making the field more aligned with introduce more extraordinary vertices in the quad mesh.

Mask

Specifies an attribute of floats that weights elements where the tangent field should be more closely aligned. Use values are in the range from zero to one.

Symmetry Plane Alignment

Controls the alignment of the edge flows with the symmetry planes. Higher values will increase the influence of the symmetry plane direction on the edge flows. Use values are greater than or equal to zero.

Curvature

Enable

Enables the curvature contribution to the overall alignment criteria.

Weight

The force of curvature directions influencing the generated field. Use values are greater than or equal to zero.

Mask

A per primitive scalar weight applied as the curvature force when influencing the generated field. Higher values will increase the alignment with the curvature directions, while lower values will attenuate the curvature alignment. Use values are greater than or equal to zero.

Rotation

An optional rotation applied to all curvature contributions of the field alignment. Use values are between -180 and 180 degrees.

Boundary

Enable

Enables the boundary contribution to the overall alignment criteria.

Mode

Defines whether boundary contributions are applied inclusively or exclusively.

Add: boundary vectors are combined with curvature and guide vectors.

Over: boundary vectors will overwrite any curvature vectors.

Weight

The force of boundary tangents influencing the generated field. Use values are greater than or equal to zero.

Mask

A primitive element scalar weight applied as the boundary force when influencing the generated field. Higher values will increase the alignment with the boundary directions, while lower values will attenuate the boundary alignment. Use values are greater than or equal to zero.

Rotation

An optional rotation applied to all boundary contributions of the field alignment. Use values are between -180 and 180 degrees.

Guide

Enable

Enables custom guide contributions to the overall alignment criteria.

Mode

Defines whether guide contributions are applied inclusively or exclusively.

Add: guide vectors are combined with curvature and boundary vectors.

Over: guide vectors will overwrite any curvature and boundary vectors.

Weight

The force of guide vectors influencing the generated field. Use values are greater than or equal to zero.

Mask

A per primitive scalar weight applied as the guide force when influencing the generated field. Higher values will increase the alignment with the guide directions, while lower values will attenuate the guide alignment. Use values are greater than or equal to zero.

Attribute Name

The name of the guide attribute. The guide attribute must be a vector-3 attribute that assigns a nonzero vector to points or primitives on which the field is guided. This node ignores and fills in zero-vector values. The output directions assigned to points or primitives with nonzero guide values may not exactly match the input values and their magnitudes may be different.

Note

You can compare guide vectors with the resulting field in the Quad Remesh state.

Examples

QuadRemeshBasicExample Example for Quad Remesh geometry node

This example demonstrates how to retopologize a procedurally modelled volume mesh with the Quad Remesh node.

QuadRemeshGuidingExample Example for Quad Remesh geometry node

Demonstrates a couple different methods for guiding edge flows in Quad Remesh.

See also

Geometry nodes