What rendering optimizations does Roblox have?

I kinda want a definitive list. I’m just really curious about what we know so far.

Humanoids = evil.
Meshes = very evil.
PartcleEmiter, guess what? EVIL!

2 Likes

Can you elaborate on how humanoids affect rendering? Simulation maybe, but rendering?

that complicated…
it uses a lot of hacks to render

???

Humanoid is costly in terms of physics and replication but it doesn’t really affect rendering afaik.

it is…
it has to compile separate textures for model
And it renders a little bit differently to other objects if you look closely

Humanoid doesn’t really do anything texture related, except for clothing.

This doesn’t make much sense, what do you mean?

I thought it does though, putting a face into the head of the character always leads to it becoming lower quality because (based on my presumption) roblox shoves the textures alongside the texutres of the clothing, cramming it down. Of course you can bypass this by making a duplicate head (basically going against the humanoid).

It just becomes lower quality usually (exponentially so if you lower your graphics level).

Hmm that’s quite interesting, good to know about using a proxy head.

In the original response they implied that humanoids have a negative impact on rendering performance. I meant that humanoids don’t have texture-related, or any for that matter, features that could cause that. If anything, the lower texture quality you brought up should have the opposite effect.

Well technically they do inadvertently have a negative impact on rendering performance.

Usually, most humanoids will have many textures associated with them:
Accessories
Clothing
Decals (faces/t-shirt)
dynamic heads
basically anything a texture goes for

They’re constantly moving, sometimes deforming, altering/dynamically changing shadows.

Thats also why roblox crams the living world (hence the low quality textures) to save memory/optimize performance (even when sometimes developers dont want that)

Its intended albeit, a bit annoying at times when it doesnt work the way you want it to, hence an evil but necessary optimization.

1 Like

The issue is that humanoids are not the root cause of that. You can have all of the things you’ve listed without a humanoid, and it won’t be more or less performant rendering-wise. Hence I think it’s misleading to say humanoids affect rendering performance at all.

On the other hand humanoids directly worsen simulation performance, and it can be wise not to use them if you don’t need their entire functionality.

Off topic, but I wondered what could cause that low quality on faces. Unlike R15, R6 rigs use CharacterMesh objects to apply appearances, so I wonder if those have some internal limitation on quality?

Hence inadvertently, if you’re using a humanoid without the need for the appearance of the character nor the need for its properties, I think there are bigger issues that system has.

Humanoids, with every state disabled/disabling health display, and potentially any other thing other than the humanoid and it being rendered in workspace, it still does seem to affect rendering of whatever its attached to.

The game takes every texture associated with the humanoid, smushes it down into one texture, and uses that to render the texture of the character instead. If you have a lower end pc, less network, or low quality, then the texture follows suit.

Here is around 9000+ parts anchored with humanoids in them (with the humanoid having statemachine, health display, and other stuff disabled), its giving me 1050ish fps staring at in studio

Here are the exact same parts but without humanoids:

it gets me 1500+ fps.

In addition, humanoids do something weird whenever you parent them to something and that is they flicker? (probably a result of it trying to mess with how the thing is rendered in some fashion?)

In addition, this is shown in the microprofiler:
Without humanoids:

With humanoids:

FPS, as well as Frame time is irrelevant here.

Frame generation includes simulation, meaning that if it’s bottlenecked your FPS drops and your frame time goes up. You bombarded the scheduler with a bunch of humanoids at the simulation step, saw worse performance and presented it like it’s related to rendering.

Let’s analyze these 3 cases, and what we’re interested in is GPU time because that’s what represents rendering graphics:
10000 parts with nothing in them

10000 parts with humanoids in them

and for reference, 10000 parts with particle emitters in them

As you can see, humanoids have little to no effect on GPU time.

1 Like