Part Instancing - pre-release announcement


Will the live time CSG on the roadmap work with instancing as well?




I tested this out with CloneTrooper’s mod manager and it’s amazing. Parts no longer vanish at quality 1. Can’t wait for its official release!


We’ve enabled part instancing again :slight_smile: on desktop (PC & Mac) and in Studio. We don’t have any known bugs and performance should be good in all cases - the issues I’ve mentioned with levels with millions of blocks have been addressed. Don’t hesitate to let us know if you find any rendering issues or performance problems with the new system.

We’re planning to roll this system out to consoles and mobile in the coming weeks, with the exception of Android where instancing isn’t currently active unless your phone has Vulkan support. We have a plan to ship mesh/CSG instancing on GLES3 Android devices, but it’s likely that part instancing will only be active on Vulkan devices on that platform for the remainder of this year.


I hate to potentially burst your bubble but could this bug be related? It popped up within the last hour.


We don’t have any known bugs

This sentence is now false :frowning: We’ll take a look at both issues. FWIW as a work around for special meshes disappearing, you should be able to increase the size of the part they’re attached to until the bug stops happening… edit oops I got it wrong, we don’t actually use part size for this… I think there might not be a good workaround for this, so we’ll probably need to disable this.


Awesome, thanks for all the hard work you guys put into this!


Special meshes strike back. We’ve disabled part instancing to fix issues mentioned in the thread linked above, let’s try this again in a week or two…


Doing awesome so far :+1:

I’m looking forward to see how this will impact some of my part-intensive games.


If you have a link to one of these games we could take a look as well to see if we need to improve anything on our side - we’re going through final phases of polishing performance anyway.


Would it be possible to have another post explaining all of the new optimizations? :heart_eyes:


For anyone still relying on the legacy head scaling behavior, I ported it into Lua. It works with Instancing.


I’ve had to severely cut down on place that suffered from these issues, but I’ll try to setup a demo that reflects the issues we had been facing prior to the introduction of a custom LoD system.



Looks like part instancing has be re-enabled. I noticed that my blockmeshes stopped flickering :slight_smile:


I just noticed that each completely invisible part (Transparency = 1) increases the number of render entities by 1.

Is this supposed to happen?

EDIT: Hiding parts by parenting them to nil instead of setting their transparency to 1 improved my batching efficiency by a lot (a pitiful 4 to >20)


Inverted head meshes have been re-broken here :confused:


That’s likely intentional.


I’m not sure if this is somehow related as a bug to this update but it seems we’re having render issues on our side of things.


This is an internal inefficiency that we need to correct; we aren’t rendering objects with transparency=1 but we are inefficiently distributing them across entities right now. We’ll take a look at improving this.


The fix for this will ship next week.