Delaney King

Delaney King

28-10-2022

16:23

#gamedev tip: question: what polycount is "optimised". Actually an asset can be optimised in many ways- it's really about shifting the load from the bit of the computer that is bottlenecked to the bits that have room...

A model can have a tonne of polygons ripped out... but it still choke the framerate because the problem isn't processing the polys... it could be the shader complexity, having to switch materials several times per model and juggle 4k textures into the 3d card memory...

There are two types of optimising for art assets. Pre and post. Pre optimising is setting a budget, trying to keep things streamlined and planning ahead. It is a cautious, pre-emptive discipline. Post optimising is when shit is causing problems and needs fixing.

Too many draw calls? Well, the answer is to merge meshes and materials together so they render in one draw call. Too many objects in a scene? Can we cull them using occlusion or lods? Etc etc Each problem has a different solution, and that depends on when everything...

...is thrown together in the scene. Post optimisation has to make use of frame anyalysis to see what the problem is. Pre optimisation is making things intelligently, and conservatively, knowing you can always add more details and things later if everything runs smooth.

Over optimisation is when you blow hours of work trying to fix the wrong problem. Why spend days or weeks making LODs when your game runs perfectly on minimum specs? Why take days making sure you are squeezing the entire level into one texture sheet when your card...

Can hold twenty times that in just the memory on the 3d card? Fuck, treat yourself to a few more textures, why don't you? Optimisation is therefore about learning your craft, what problems arise and what can be done to tackle them- either before or after you add the asset.

A model may be unoptimised because it has unused Uv channels, very high bones per vertex weighting, far too many bones in the rig, a mesh collision object, laminar faces, overdraw... The list goes on. But most of these get better with less data being thrown around...

So in general aim for "looks good enough" at the lowest possible use of resources, and get the job done in time without stressing too much, and each time you make something try and be more efficient.

If you would like to support my free 3d lessons, I appreciate kofis!

A classic optimisation I find myself doing for studios is taking models with several baked 4k maps and reducing them down to a 1k bake with a bunch of small tiled detail maps by making the shaders a little more complex. This makes state switching fast and reduces level load times

Another is to crunch texture memory down by using multiple UVs and decals instead of baked in high detail textures. This also benefits in normal map high frequency detail not turning the whole thing to mush when lodding. I do a lot of this stuff. I have commission slots open


Follow us on Twitter

to be informed of the latest developments and updates!


You can easily use to @tivitikothread bot for create more readable thread!
Donate 💲

You can keep this app free of charge by supporting 😊

for server charges...