Blisteringly fast Solid Modeling (CSG) Replication with Delta Updates

With all of these new optimizations and improvements, would the roblox engine be able to handle a full on destruction simulator that completely relies on these new features? I’m wondering if making a project that features destruction with CSG in the future would be worth it.

Is this the ProceduralModel instance? Or is this something different perhaps along the lines of this:

This is not the ProceduralModel instance, but that is indeed a very related concept. It is too early to share more details right now, but we do aim to support procedural editing/smart objects in some form.

1 Like

any updates on decals and textures crashing when being parented to the meshpart

Without texture being parented:

With texture being parented:

-- crashes
for _, normalID in Enum.NormalId:GetEnumItems() do
			
	local texture = Instance.new("Texture")
	texture.Texture = TEXTURE_ID
	texture.Transparency = TEXTURE_TRANSPARENCY
	texture.UVScale = TEXTURE_UV
	texture.Face = normalID
	texture.Parent = fracture -- meshpart from geometry service
end

im trying to add a shatter pattern to the glass shards, this is preventing me from doing so

Hey, just rolled out the fix. Should be live in about one hour. You will need to restart studio for the bugfix to take effect.

1 Like

Could we get a way to assign the color of interior faces of fragments if possible? Having a way to change the color of faces that were previously not exposed from the mesh would make it possible to add a new level of depth to the destruction capabilities of the new API. It would make it easy to fake compositing of colors without layering many parts.

This was already possible with unions, which made for convincing destruction, now we just need it for fragmenting.

1 Like

Hi, I’d recommend that you make an experiment to test out the scale of destruction you’re looking for, but in general, yes. Our goal is absolutely to enable games which use these destruction features in their core gameplay.

Keep in mind that triangle count is the most important thing affecting the performance of the operations, and preventing the number of unanchored parts in the place at once from getting too high will be critical for framerate.

1 Like

Hi! It sounds like you’re using Fragment on PartOperations. For those, the PartColor applies to the interior faces, so you should be able to get the desired result.

For MeshParts, there are technical limitations in the rendering code which prevent us from having full control over the color of the interior faces. There’s an ongoing project which will solve this problem, but for now unfortunately you cannot easily control the interior face color.

I see, I’m hoping to hear more on this for meshparts since the fragment api returns that. It wouldn’t make much sense to fracture a piece of a part and have a nice interior color for the first time, only to fracture it again and notice it’s a completely different color LOL. It’d be awesome in the future if we could send the color we want for the interior faces as an argument to the fracture method.

1 Like

That’s amazing, thanks. Perhaps I will do something like this one day. In the meantime, I’ll resort to utilizing the fracture api for breaking windows in my horror game.

I feel a natural disaster survival with these destruction capabilities would be awesome. I love to make maps super interactive, and these APIs would allow me to give players small destruction capabilities without making a whole system.

Genuinely one of my favorite Roblox updates, thank you geometry team :heart:

Stop trying to distract us from the horrible update you’re planning for publishing experiences.

Unfortunately we are seeing some issues with this feature, so we’ve temporarily have turned this feature off. We plan to fix the issue ASAP and turns this back, will keep you folks posted!

1 Like