Houdini 20.0 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 with potentially much 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.

(Note that since it works to a target quad count, this node can also increase the number of polygons in the model.)

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.

  1. 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 layed out in the output, before any constraints are applied. Areas where the directions in the field are parallel will come out as smooth, regular quads.

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

  2. It’s not possible for the entire surface to 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 or 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.

  3. The singularities are the “corners” from which the node will “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.

  4. 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 direction field visualization to the final quad output, the main reason for any differences is usually needing to maintain continuity across seams.

  5. The singularities will usually become extraordinary vertices (vertices with fewer or more than four connected edges) in the output mesh. The node’s Apply subdivision option (on by default) automatically does a subdivision step on the polygon mesh before output, to remove extraordinary vertices.

Tweaking the output

The node does not allow a lot of control over the final result, however 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 Curvature edge flow parameter lets you influence the trade-off between smoother edge flow versus capturing the curvature of the surface in the flow. Increasing Curvature edge flow 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 increase 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, especially with input geometry of higher complexity.

    For example, the more “guide lines” you add through a guide attribute, the less influence they may have, because it becomes impossible for the node to satisfy all the constraints.

    Generally, if you visualize the direction field, and it doesn’t already look roughly like what you want, you can’t add constraints to force it to look like what you want. You can only influence it.

  • The Target quad count lets you choose how much detail to include in the output. Once the node has created the direction field internally, changing the level of detail in 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 the symmetry plane and (optionally) mirror the remeshed surface back across the symmetry plane. (This is a convenience, there is basically no different between using these options, or adding a Clip node before this node and a Mirror node after.)

Limitations

This node is a work in progress. The node is very useful for certain use cases, but has a few limitations in its current “beta” state. We hope to address these issues as we continue to work on the node.

  • There is currently no way to interactive 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 Guide tab.

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

  • 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.

  • 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), but 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 (above the viewer). (See how the node works internally for information about what these visualizations show.)

Global Parameter

When this is 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 this is on, the node draws the seams of the global parameterization as brightly colored lines across the model.

Field Singularities

When this is on, the node draws singularities in the direction field as dots on the model.

Direction Field

When this is on, the node draws U/V crosses to help visualize the direction field across the model. The red line in each cross represents the direction of the field at that point.

You can change the length of the cross lines with the Vector scale slider.

Vector Scale

When Direction field is on, this controls the length of the vector visualizations.

Parameters

Topology

Group

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

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.

Target Quad Count

The number of polygons you want the output surface to have.

Decimation Level

The input to this node is typically a high-resolution surface, such as scan data, with way 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 (on the Guide tab), the node will not reduce any faces with the attribute.

Include Boundary Edges

Preserves boundaries in the output quad mesh.

Apply Subdivision

Applies one level of Catmull-Clark subdivision to the extracted mesh. This eliminates any potential N-gons.

Project Points

Fit points in the output back onto the input surface. This can help compensate for volume loss caused by the subdivision step.

Symmetry

Center

The original 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 this is 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 if you don’t need to mirror it at all).

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.

Guide

Curvature Edge Flow

How much curvature direction affects edge flow in the output.

Field

Whether to generate the direction field over polygon faces or edges.

Boundary

How much boundary tangents affect the output.

Guide Attribute

The name of vector3 primitive attribute on the input surface. If this is not blank and the attribute exists, the node uses non-zero values of the attribute as directions to influence the edge flow. Zero values are ignored and filled in. This is a “soft” constraint. The output edge flows may not match the attribute directions exactly. Input faces with a non-zero value for this attribute are not reduced by the Decimation level step.

Guide Weight

How much the Guide Attribute affects the output. Higher values mean the guides will have a stronger influence, however they node can reach a convergence point where increasing this value further will have no more effect on the output.

Examples

QuadRemeshBasicExample Example for Quad Remesh geometry node

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

See also

Geometry nodes