Part Instancing - pre-release announcement

Yes

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!

8 Likes

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.

5 Likes

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

2 Likes

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.

3 Likes

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

1 Like

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…

5 Likes

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.

2 Likes

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

4 Likes

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

8 Likes

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.

image

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

3 Likes

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)

4 Likes

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

That’s likely intentional.

2 Likes

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.

10 Likes

The fix for this will ship next week.

10 Likes

This is now fixed in the new Studio/Client (354); as usual, mobile, console and Win 10 store app will take a week or two to catch up.

While unparenting can still result in slightly faster processing compared to setting Transparency to 1 - for example, updates to properties of invisible objects will still be processed whereas updates to properties of unparented objects won’t - the difference in rendering efficiency should be minimal.

On the bright side, toggling Transparency between 0 & 1 should be noticeably faster than unparenting/reparenting so if you want to do this frequently, Transparency is a good option.

13 Likes