ComfyUI Node
BD Blender Decimate
Full-featured stylized low-poly decimation. CRITICAL FEATURES: - Color Field Input: Sample colors spatially on CLEAN topology (no face splitting) - Planar Grouping: Structure-aware boundary detection from face normals - Color Edge Detection: Marks color boundaries as sharp/seam edges - Planar Decimate with Delimit: Preserves marked edges during decimation - Face-Based Color Transfer: NO color bleeding at vertices Connect color_field directly (from BD_UnpackBundle or BD_SampleVoxelgridColors) to avoid pre-applying colors which splits faces and breaks topology.
BD Blender Decimate
- mesh
- color_field
- mesh
- status
◄target_faces5000►
◄pre_cleanuptrue►
◄detect_color_edgestrue►
◄color_edge_threshold0.15►
◄fill_holestrue►
◄remove_internalfalse►
◄internal_methodSIMPLE►
◄planar_angle7.0►
◄sharp_angle14►
◄preserve_boundariestrue►
◄preserve_colorstrue►
◄fix_normalstrue►
◄use_planar_groupingfalse►
◄planar_group_angle15►
◄planar_group_min_size10►
◄timeout600►
◄debug_path►
Category🧠BrainDead/Blender
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| mesh | TRIMESH | — | |
| target_faces | INT | 5000100–500000 | Target face count after decimation |
| pre_cleanup | BOOLEAN | true | Fix non-manifold geometry before decimation |
| detect_color_edges | BOOLEAN | true | CRITICAL: Detect color boundaries and mark as sharp/seam edges for preservation |
| color_edge_threshold | FLOAT | 0.150.01–1 | Color difference threshold for edge detection (lower = more edges) |
| fill_holes | BOOLEAN | true | Fill holes in mesh before decimation |
| remove_internal | BOOLEAN | false | Remove internal/hidden faces (jacketing cleanup) |
| internal_method | COMBO | SIMPLE | SIMPLE=fast, RAYCAST=more accurate but slower |
| planar_angle | FLOAT | 7.00–45 | Angle threshold for planar decimation (merge coplanar faces) |
| sharp_angle | FLOAT | 140–90 | Angle threshold for marking sharp edges after decimation |
| preserve_boundaries | BOOLEAN | true | Preserve mesh boundaries during planar decimation |
| preserve_colors | BOOLEAN | true | Transfer vertex colors with face-based lookup (no bleeding) |
| fix_normals | BOOLEAN | true | Recalculate normals to face outward |
| use_planar_grouping | BOOLEAN | false | Detect planar groups from face normals and mark boundaries as sharp/seam |
| planar_group_angle | FLOAT | 151–90 | Max angle between normals in same planar group (lower = more groups = more preserved edges) |
| planar_group_min_size | INT | 101–1000 | Minimum faces per group (smaller groups merged into neighbors) |
| color_fieldopt | COLOR_FIELD | — | |
| timeoutopt | INT | 60060–3600 | Maximum processing time in seconds |
| debug_pathopt | STRING | Optional: Full path to save debug GLB (e.g., /tmp/decimate_debug.glb) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| mesh | TRIMESH | — |
| status | STRING | — |