GeometryService CSG producing unions that become invisible from certain angles & faulty collisions

I’ve recently switched to using GeometryService’s UnionAsync from the Part’s UnionAsync method to see if it improves CSG reliability in any way. It seems good except the fact that the unions it produces disappear when looking at them from certain angles. The issue appears both when testing and when using studio mode (when testing using play solo shown on video, the walls only
seem to lose textures but that’s because there were untextured parts (not unions) under them - in reality the unions fully disappear both within studio mode and play solo).

It does not matter whether I use Automatic or Precise RenderFidelity. I use the below method for the unions generation:

GeometryService:UnionAsync(PrimaryFloorCell, Structures.MixTable(FloorCells), {
					CollisionFidelity = Enum.CollisionFidelity.Box,
					RenderFidelity = Enum.RenderFidelity.Automatic,
					SplitApart = true
				})

If necessary, I can also send the original parts used to create this union.

The unions that are not working correctly:
FaultyCSG.rbxm (66.4 KB)
Only unions generated using GeometryService are affected; This wasnt happening with the Part’s UnionAsync results.

On top of that the floor / roof (ceiling) unions do not have proper collisions even though they have CanCollide property turned on (Please see post #2).

Expected behavior

I would except the parts not to disappear like shown in the following video and have proper collisions.

On top of that (as shown in the video by the way) - the roof collisions are not working properly. The roof / ceiling unions have CanCollide true and Box fidelity, so they should stop the character from jumping through them but it’s also not working correctly. Sending an updated CSG model that includes the roof.
FaultyCSG2.rbxm (80.0 KB)

Thanks for the report, I’m looking at the rbxm file that was sent. I’m a little confused by the parts themselves. when you select each component, the outline doesn’t seem to match. Additionally, when looking at the convex decomposition, it doesn’t match with the parts either.

Could you explain how the part was created?
Thanks
~BelgianBikeGuy

Oh I see, they’re PartOperations you created in experience then copied out? Could you provide the raw pieces used to create these?

Yes, that is correct. Apologies for the confusion. Let me prepare raw parts and the exact script I had used to create those. I’ll send that in PM if that’s not a problem.

1 Like

Hey @Etheroit ,
Thanks for the repro case, I was able to figure out the issue. It turns out that’s it’s caused by an interaction on features and the off center fix for box collisions. Hopefully it should be trivial to merge in a fix and have it enabled next week.
If you need it faster, lmk and I can turn off the conflicting flag for specific places for you
~BelgianBikeGuy

Thanks for the offer. Atm I don’t need manual fix by flipping the flags. Will wait for the actual fix. Thanks for figuring it out so quick!

1 Like