Bring real world creation to your experience with Constructive Solid Geometry (CSG) improvements [Beta]

Feel free to play with it. The bridge is in the simple tools example. (Example #2)

The bridge probably would be the highest performance example shown there as it is just breaking a simple part. Constraint preservation is very fast

~BelgianBikeGuy

11 Likes

Absolute W update, Iā€™ve been waiting ages for something like procedural destruction and mesh modification to be possible! This is super cool!

Does the new system also have a function for removing or decimating excessive triangles or merging vertices that are super close to each other?
Basically Blenderā€™s clean-up tools but for CSG.

The one issue I often had with CSG is that operations often create a lot of unnecessary triangles.
Sometimes resulting in near-zero-length edges or near-zero-distance vertices and it just seems like a waste of performance to have ultra-slim triangles that are nearly invisible to the naked eye.

4 Likes

There are significant improvements to the meshing of CSG parts and more are coming.

8 Likes

Just really far away from the origin, right now thereā€™s no real way to have objects larger than 2048 studs on all axis (without the use of special meshes, pretty sure those also canā€™t really be used by the CSG system). Right now Iā€™m trying to experiment with some pretty large maps and having the game magically no longer run any sort of CSG operation past 131k studs is a little weird (the game is supposed to have some level of environment destruction). I can get why there would be such a limit in place but personally i would much rather have some slightly more broken/inaccurate unions than just an error message.

As for those points, i think its fair enough. However when said OpenGL limitation gets finally removed, could we potentially at least see said triangle limit being lifted on the client? For the server i can understand but i do think there could be some headroom for the client to have higher quality CSG operations.

Thatā€™s fair enough. (pls rewrite engine)

Thanks for answering all of those questions!

3 Likes

Youā€™ll be glad to know the new system actually does the operations in local coordinates. so objects far away from the origin shouldnā€™t matter. If you have an issue, please send rbxl :slight_smile:

6 Likes

This is one of the best roblox updates, holy crap, for a long time I never tried to use unions for anything due to how poorly they perform and flicker, but with this update literally roblox games can now have even more destructible environments, Shame these dont work on meshparts or there isnt a way to convert meshparts to the CSG format to destroy them.

Amazing update

8 Likes

Oh, Iā€™m really glad to hear that. Iā€™m that the actual Solid Modeling section within ROBLOX Studio still uses the old system? Tried out the tank place at like 290k studs away from the origin and every csg operation worked fine, itā€™s just the solid modeling tools and buttons that seem to still use the 131k stud limit.

3 Likes

This system is very much for the new API only. Some improvements might be ported over and some not.

To clarify: A lot of changes were done behind the scenes to support some of these features and they require some relatively large changes. We do want to unify the code (or at least bring over the majority of improvements), it is not a guarantee.

The Solid Modeling document needs to be updated in light of these improvements but it was delayed slightly as this is still a beta

6 Likes

O yea, a bit off topic but the M1 tank i believe is broken? Canā€™t drive it at all nor shoot it. These are the errors it prints out whenever you enter and leave the tank.
image

2 Likes

NNNNice

Regardless of Robloxā€™es decisions in the past its great to see awesome updates like this. Honestly they fill me with hope for the future of the platform.

Awesome job guys. cant wait to see what you bring next !

5 Likes

Oh no. I donā€™t know how I made that mistake.
Here is a fixed file
TankDestruction_Fixed.rbxl (1.5 MB)

I will get someone to fix main post (Done)

6 Likes

Even with these improvements to CSG, the lighting bug when using GeometryService:SubtractAsync() still exists. Below is another example of it in action.
bug_report.rbxl (47.9 KB)

2 Likes

Currently the splitapart setting for SubtractAsync() has a problem where the split partā€™s cframe doesnt change, the cframe of the part remains the origin of the original part that was subtracted overall great update though


roblox pls fix

2 Likes

This is intentional behaviour, use BasePart.ExtentsCFrame

6 Likes

Iā€™m not sure why, but CSG is crashing my Roblox Studio every time I try to use it. I have attached repo place, and a video. Crashes caused by this issue often do not involve an error message, the studio just crashes without a warning. The crash usually occurs after closing, or when beginning a new play test session.

RobloxStudioBeta_s8rSTMUPtg

CSG Crashing Studio.rbxl (44.7 KB)

2 Likes

I absolutely love this update, would this also affect collision precision? I remember making a massive mesh and I could walk on the invisible geometry which affected a few of my games and with this update, I am wondering if there is more flexibility with that.

1 Like

Could we get the example place where you split the bridge planks in half? Nice update!

1 Like

The bridge is in Example #2: Simple Tools. It should be to the right once you spawn in

3 Likes

hope this brings better poly counts later on, still suffering from terrible poly counts, just so much unneeded geometry

2 Likes

Damn, Roblox created a feature that I originally had to create myself! Maps like Battlefield or Rainbow Six. And I think you can do amazing things like VR pottery games and more!

1 Like