So for optimization reasons with building assets, I decided to check out the roblox r6 character model in blender to see if there was anything I could make better. I look in the corner and see about 1.1k triangles, which was really strange. I suspected it was the head, so imagine my suprise when I look at the amount of triangles the head had and see this:
Almost 80% of the triangles in the R6 rig is taken up by the head
Yikes.
I think one of the biggest reasons for this is probably because of how high-poly the head is. Looking at the top view of the head, it has 36 “edges.” Basically, it’s the equivalent of this cylinder + smooth shading.
While it does make for a nice round looking model, personally I don’t think it’s really worth the performance, which I will get to in a second when comparing it to the new model I made:
I used 16 edges instead for the cylinder + smooth shading. You can only really notice a big difference when you’re staring at the top, but if you’re looking at it from a mostly horizontal angle (which is probably how you’ll see it most of the time in-game) there isn’t really much of a difference besides sun reflection.
The game I’m working on also has characters that usually wear hats or some kind of headgear anyway, so the fact that the head looks kinda low poly from the top doesn’t really matter, and most people probably won’t freak out over your heads not being super round.
Left = Roblox head, Right = My head
Now, on to performance. The biggest thing is the triangle reduction, and the head is now at a more comfortable 320 tris rather than 846. That’s almost a 62% reduction in triangle count. And while the difference may not be big for say, a single character, it may make a noticeable boost in performance. The following example is actually something @Bethezer pointed out to me when I first told him about this whole thing, so credit to him because otherwise I might have not thought about this:
Lets say you had 30 players in a game.
25380 triangles would be taken up just by 30 Roblox heads.
With the one I created, it would only take up 9600 triangles
That’s over a 15k triangle difference just by 30 players
So yeah, definitely take this into consideration if your game uses the default Roblox character rig.
Disregard the above! One big thing I forgot is mesh instancing:
Basically, it wouldn’t make such a major performance hit as I mistakenly represented. Thanks to @Aotrou for clearing this up!
And for those who are unable to use Blender, here’s the head I made. 100% open source, you don’t have to credit me or ask for permission to use it in your game at all:
NewHead.rbxm (7.3 KB)