mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-04-20 07:22:34 +08:00
corrected simplification logic
This commit is contained in:
parent
4e14d42da1
commit
937faafe21
@ -639,18 +639,19 @@ class PostProcessMesh(IO.ComfyNode):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def execute(cls, mesh, simplify, fill_holes_perimeter):
|
def execute(cls, mesh, simplify, fill_holes_perimeter):
|
||||||
# TODO: batched mode may break
|
# TODO: batched mode may break
|
||||||
mesh = copy.deepcopy(mesh)
|
|
||||||
verts, faces = mesh.vertices, mesh.faces
|
verts, faces = mesh.vertices, mesh.faces
|
||||||
colors = None
|
colors = None
|
||||||
if hasattr(mesh, "colors"):
|
if hasattr(mesh, "colors"):
|
||||||
colors = mesh.colors
|
colors = mesh.colors
|
||||||
|
|
||||||
|
actual_face_count = faces.shape[1] if faces.ndim == 3 else faces.shape[0]
|
||||||
if fill_holes_perimeter > 0:
|
if fill_holes_perimeter > 0:
|
||||||
verts, faces = fill_holes_fn(verts, faces, max_perimeter=fill_holes_perimeter)
|
verts, faces = fill_holes_fn(verts, faces, max_perimeter=fill_holes_perimeter)
|
||||||
|
|
||||||
if simplify > 0 and faces.shape[0] > simplify:
|
if simplify > 0 and actual_face_count > simplify:
|
||||||
verts, faces, colors = simplify_fn(verts, faces, target=simplify, colors=colors)
|
verts, faces, colors = simplify_fn(verts, faces, target=simplify, colors=colors)
|
||||||
|
|
||||||
|
mesh = type(mesh)(vertices=verts, faces=faces)
|
||||||
mesh.vertices = verts
|
mesh.vertices = verts
|
||||||
mesh.faces = faces
|
mesh.faces = faces
|
||||||
if colors is not None:
|
if colors is not None:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user