Non-Uniform Union Scaling Beta

Now Roblox should work on optimizing unions for large scale maps.

8 Likes

Good observation.

What’s going on here is not really anything new with this beta, it’s something that you always have to be aware of when using the CSG system. But it’s also possibly something you’ll have to be a bit more aware of if you’re scaling things in a significantly non-uniform way:

  • The collision geometry of a CSG part does not change when you scale it, it just gets scaled.
  • “Default” collision fidelity is scale-sensitive, it uses a uniform grid system to determine the physics decomposition.

Putting these two facts together, you’ll have to make sure that if you’re using Default collision fidelity, you create your CSG at a large enough scale that any holes you care about don’t get “filled in” by the Default decomposition algorithm, because they’ll still be filled in when you scale up the part, the decomposition won’t be recomputed.

Aside: I would highly recommend using PreciseConvexDecomposition for the majority of your CSG parts. The main case where Precise causes issues is with MeshParts that have complex curved surfaces, but the majority of CSG parts are better served by Precise (or Hull / Box for things you don’t need detailed collisions on)

16 Likes

Maybe just a little bit overdue but still a welcome feature.

6 Likes

You can actually do this now! You just need to union it all by itself and then stretch it!


It would be nice to have a better way to do this though.

This is the best way to do it if you don’t want to make a mesh in another program.

7 Likes

Unions are generally a bad practice imo. I’d rather use a more optimized method.

7 Likes

Unfortunately the ship has sailed on primitive cylinders scaling correctly: We would break way too much existing content out there if we changed them to having scaling that matches the bounding box.

For spheres it would be possible, but have some costs: The cost of physics for a stretched sphere is more than an order of magnitude higher than for a primitive round sphere, so making it easy to stretch spheres could cause some builders to accidentally work themselves into performance issues. On top of being inconsistent with the cylinder behavior since we can’t change that.

As you note, there’s at least now a “native” way to do it without having to resort to the deprecated SpecialMesh Instance.

12 Likes

Is this actually enabled? I’m trying to scale an union but it keeps scaling it uniformly :derp:

2 Likes

This doesn’t seem to work very well with materials. The material just stretches. (2022 Materials)

5 Likes

The beta feature is enabled, but you still have to choose to turn it on, have you?

3 Likes

Yes, I have the beta feature enabled but the Union is still being scaled uniformly instead of stretching

3 Likes

I thought I had the material handling working correctly but it turns out I didn’t look closely enough, I’ll get a fix in for this!

6 Likes

Amazing! We really needed something like this. It’s no longer painful to resize unions!

2 Likes

I literally thought an update like this was an impossible pipe dream. This is incredible. I love this. This is absolutely going to change the way I model forever, and I’m very, very excited to use it. Thank you!

As for rollout, I’m leaning toward option 2 for simplicity’s sake. I imagine there’s not many use cases of letterbox-stretched unions. If there are, they can be fixed, most likely.

2 Likes

It’s an amazing function Thank you.
I’ll test it now
((I have a wish… I wish I could change the color of the union))

1 Like

I have it enabled, but its not working for me.

1 Like

Have you ever restarted Roblox Studio? I restarted the studio and it worked

2 Likes

Yes, but the second attempt apparently got it working lol.

1 Like

A little small issue here. As I unioned the part with NegativePart in middle. The unioned part doesn’t scale properly like BasePart. Was this feature supposed to work?
UwV1mv5ZIc


Never mind! I have to restart my studio and it seems to be working again for me. A great feature to exist!

2 Likes

What if a union is letterboxed pre-update? Will it keep being letterboxed after the update? If not, I fear that could create some backwards compatibility issues.

2 Likes

You already can! Just enable the “UsePartColor” property of the resulting union.

Currently the beta is changing the existing letterboxed unions. Our analytics suggest that the number of existing letterboxed unions is low enough number that we might be able to just change them, but high enough that we’re not decided yet, please let us know whether you run into issues.

4 Likes