Choose export quality

The algorithm and post-process controls in the mesh export dialog

This walkthrough covers the Quality controls in the mesh export dialog: which algorithm extracts the surface, and which finish the post-process chain gives it afterwards.

Open the export dialog

  1. In Construct, press the Export button in the toolbar.
  2. Pick SDF scene (surface mesh) as the source.
The export dialog's Quality group — the algorithm and the finish choice
The export dialog's Quality group — the algorithm and the finish choice

Pick the algorithm

The Algorithm box selects the surface extractor:

  • Adaptive Dual Contouring (recommended) — places one vertex per cell on the feature the SDF defines, so edges and corners come out exactly as modelled, and it refines the octree only where the surface has detail. A plain box collapses to its exact 12-triangle mesh.
  • Dual Contouring (uniform grid) — the same feature-preserving extraction on a uniform grid.
  • Marching Cubes (legacy) — the previous exporter, which can only place vertices on grid edges. At any finite resolution, sharp features become a staircase.

Here is the same cylinder, exported by both at the same resolution:

Marching Cubes staircases the rim; Dual Contouring keeps it crisp at the same resolution
Marching Cubes staircases the rim; Dual Contouring keeps it crisp at the same resolution

Resolution still matters

The Resolution preset sets the sampling density (cell size). Dual Contouring gets the features right at any resolution, but overall surface detail — how faithfully curved regions are followed — still scales with it. Start with the default preset; drop to a finer cell size only if curved surfaces look faceted.

Pick the finish

The Finish box selects the post-process chain that runs after extraction:

  • Uniform surface (recommended) — merges duplicate vertices (weld), snaps every vertex onto the exact SDF surface (sdfProject(2)), then runs an isotropic remesh toward an even triangle size. Sharp features stay. This is the finish for printing and CAD.
  • Lightweight (decimated) — welds and snaps the same way, retriangulates flat regions (coplanarMerge(1), so a cylinder cap becomes a fan over its rim), then decimates to about half the triangles (qemDecimate(0.5)). This is the finish for a viewport or the web.
  • Raw extraction — the extractor's output, untouched.
  • Custom chain… — shows a Chain line where you type the steps yourself, for example weld,sdfProject(2),remesh(iterations=5). The line uses the same grammar as --postprocess and the pipeline definitions of Mesh Lab, so you can paste a chain that you tuned there with Copy chain string.

With every finish, the result stays watertight and manifold: the pipeline re-validates and rolls back any step that would break that guarantee.

Watertightness

Keep Closed (watertight) mesh checked for printing: it caps the surface where your geometry crosses the export bounds, so the file has no open holes.

Verifying the result

To measure rather than eyeball export quality — surface error against the exact SDF, feature fidelity, triangle counts — see Mesh Lab, which renders a surface-error heatmap like this:

Surface-error heatmap: blue is exact, red marks deviation from the SDF
Surface-error heatmap: blue is exact, red marks deviation from the SDF
In this section
Topics
howto construct mesh export quality dual-contouring