Nodes/atlas-camera/Atlas Retopologize Layer πŸ”·
ComfyUI Node

Atlas Retopologize Layer πŸ”·

A ComfyUI node in Atlas/05 Β· Geometry with 10 inputs and 2 outputs.

By mikejamesvfxΒ·Created 2 months agoΒ·Updated about 23 hours agoΒ· 1
Atlas Retopologize Layer πŸ”·
  • solve
  • solve
  • report
β—„layerβ–Ί
β—„methoddecimateβ–Ί
β—„target_vertex_count2000β–Ί
β—„smooth_iterations0β–Ί
β—„crease_angle30.00β–Ί
β—„pure_quadfalseβ–Ί
β—„boundary_smooth_iterations0β–Ί
β—„rebuild_transition_ribbontrueβ–Ί
β—„merge_volume_primitivesfalseβ–Ί
CategoryAtlas/05 Β· Geometry

Inputs (10)

NameTypeDefaultDescription
solveATLAS_SOLVEβ€”
layeroptSTRINGWhich mesh to retopologize: blank = the primary scene relief mesh; a layer name (AtlasCleanPlateLayer `name`, e.g. 'bg') = that projection source only; '*' = every relief mesh.
methodoptCOMBOdecimatequad = Instant Meshes quad remesh (pyinstantmeshes); decimate = quadric decimation (trimesh + fast-simplification); smooth = trimesh Taubin relax (topology unchanged, UVs preserved); voxel_remesh = watertight voxelize + surface nets (closes every interior tear; loses open-boundary silhouettes). Same passes as the Maya/Nuke layer exporters, applied LIVE with the layer's own camera regenerating projection UVs.
target_vertex_countoptINT2000100–200000Vertex budget for quad/decimate (ignored by smooth).
smooth_iterationsoptINT00–50Taubin iterations (smooth method, and post-smooth for quad).
crease_angleoptFLOAT30.000–90Quad remesh crease preservation angle (degrees).
pure_quadoptBOOLEANfalseQuad remesh: force pure quads (else quad-dominant).
boundary_smooth_iterationsoptINT00–50Taubin-relax every open boundary loop this many iterations AFTER the retopo pass β€” rounds the lattice-staircase jaggies on the silhouette without shrinking it or touching interior detail. Moved vertices get their projection UVs regenerated with THIS layer's camera, so πŸ“½ Project stays aligned; if the layer camera has no usable intrinsics the pass is SKIPPED (and said so in the report) rather than leaving UVs stale. 0 = off. Migrated from AtlasLiveMeshRepair's smooth_boundary.
rebuild_transition_ribbonoptBOOLEANtrueRe-derive the transition ribbon on the NEW rim after retopologizing. A skirt is generated from wherever the silhouette is, so a remesh invalidates it - and feeding it INTO the remesh is worse, because it welds the two sheets the tear exists to keep apart and moves the rim out from under the skirt (seen live as detached slabs with hard opaque rims). The skirt is therefore always stripped first; this rebuilds it. Settings are replayed from the ones the relief-mesh node recorded, so nothing is invented. The background PROBE cannot run here (no depth map), so every column uses the tear-margin fallback - which measured 94-100% of columns anyway. Off = leave the mesh torn and skirtless.
merge_volume_primitivesoptBOOLEANfalseFold solid volume primitives (AtlasBlockoutMassing boxes, proxy cylinders) into ONE mesh layer BEFORE retopologizing. Massing emits one primitive per building - 97 on a city plate - and the headless rasteriser loops per mesh, so a merge is both a large speedup and the thing that lets retopo touch massing at all (every method here operates on serialized MESHES). The merged layer keeps provenance=placeholder and the placeholder trust tier: merging is a topology operation, and no topology operation may promote a guess to a measurement. Off = massing boxes pass through untouched.

Outputs (2)

NameTypeDescription
solveATLAS_SOLVEβ€”
reportSTRINGβ€”