Tips on fixing 0-width CSG slices?

I need two unions to be completely solid (one for cutting, the other so it looks fine at partial transparency), but CSGv2 leaves 0-width slivers as a consequence of its new implementation:


I tried switching back to v1, but v1 can’t solve the one on the left, and there are still some slivers even with v1 when I union the one on the right. I’ve tried using Stravant’s ResizeAlign to make the faces line up exactly, but the slivers still appear. Is there anything else I can try to remove the 0-width slices? I don’t want to resize parts into wedges because I’ll get artifacts like this.

Unions for reference:
badunions.rbxm (82.5 KB)

You could export the CSG and edit it in a 3D modeling program to fix, maybe.

1 Like

This is a pretty simple shape, can’t you just build this union subjectively from one part instead of additively from multiple parts and wedges? You could even use the union you already have as reference for placing the subtraction parts.

4 Likes

I believe you can solve these by making sure there’s a bit of overlap between parts. ResizeAlign and other plugins can’t guarantee that the amount of space is zero in some cases because of floating-point precision issues.

(also cc @linearcomplex)

2 Likes

I use 2 techniques:

  • I drag the disconnected parts onto the main part (it’s a good practice to fix the position of that main part first), so it sticks to it’s surface. This will (in most cases) get rid of tiny space between them.

  • I fix parts’ positions

But as Defaultio already mentioned, it’s best to sculpt a shape out of one, main part.

And btw, this isn’t exclusive to CSGv2. Switching to v1 can’t affect this issue.

Tiny overlap may help (although not always), but it affects triangle count very often.

I know your question’s been answered, but you also may want to consider using meshparts made in a third party software. Unions can often be really messy meshes full of redundancies, as shown by the sliver.

Often enough that I don’t use unions anymore.

So can be MeshParts :stuck_out_tongue:
You just have more control over them, when with CSGs you have limited options. But it’s not impossible to make a Union clean (beside the triangle count).