Why Meshes Are Superior To Unions And How To Easily Convert Them

Ok this is an old topic but it was marked as solution for some reason when its not right. When you export the mesh into blender and remove the triangulation, if you import it back to roblox it will retriangulate itself. So you’re not actually cleaning up the mesh at all. Every mesh gets triangulated when you import it to roblox automatically to be compatible with game rendering. So if blender says you have a mesh with 500 triangles, sorry to break it to you but in reality you will end up with 1000 triangles once you import to studios.

So if you’re trying to optimize unions you created in studios, the only way to do that is to just learn blender and recreate the model there.

3 Likes

(Sorry for late response)

Thats what I thought of at first when I was re-reading the post however:

Roblox’s triangulation system is different than blender’s way of triangulation. This method works the best when:

The object is complex/complicated CSG.
The object has messy triangluation/wireframe.


To test this theory, I took an object with a fairly complex CSG. (The wireframe in studio and in blender)

As you can see, yes, the object has the same wireframe and contains roughly the same amount of triangles. (You can read the “TriangleCount” which is 1668 in studio and 1664 which is close enough, roblox does something odd I guess).


So, as the test, I took the mesh from studio (In picture) and did the same process, Merge by distance, tris to quads.

After that, I checked the tri count.

The amount is 973 HOWEVER. As you stated:

So, as a test, I exported the optimized mesh back to studio and compared:

The highlighted object is the one with the optimizations, the one infront is the csg.

Of course, we want to check the tri amount but for some reason mesh parts cant show TriangleCount.
So instead, we’ll be exporting the optimized meshpart back into blender.


The results?

Non-optimized

Optimized

Of course, if I’m wrong, please correct me, ty :+1:

Something I’d like to mention that is slightly interesting: (Ignore my awful naming)
image
“testingtrianglesobject” is the original csg model exported from studio. It has 219 KiB.
“testingobjectagainmeshed” is the optimized model that was exported from blender. It has 66 KiB.
:testingAGINONELASTTIME" is the optimized model that was exported from studio. It has 212 KiB.
Also, the mtl for the optimized one contains more?

:man_shrugging:

2 Likes

Not really. Meshes have different system that allows for pre-baked geometry and strengthened support for instancing.

Unions use an active CSG binary tree calculation.

Just gonna say that the later versions of Blender don’t do that anymore and instead you should press F3.

Also, there shouldn’t be any problem if this method is applied for every union that’s created no matter the size or complexity?