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

Let me answer those questions in order:

Would there be any chance of the CSG system supporting the ability to carve and apply materials from other parts in the future?

Maybe but it depends on the engine itself supporting multi material parts. As you can imagine, this is not a trivial change

Any chance of the triangle limit being lifted aswell

Somewhat same as the previous one. The triangle limit has two reasons for being: 1. it’s a limit due to some OpenGL implementations on older devices (that hopefully are being phased out). 2. more triangles = more data to transmit. Work is being done to minimize the impact of this. It is on our radar

And this one is a little unreasonable thing for me to ask but is there any chance of having the 131072 stud union range limit?

We can take another look at this. Honestly it hasn’t been much of an issue recently. Are your objects 131K studs wide or are they just far from the origin?

~BelgianBikeGuy

9 Likes

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