Skip to content
Environments 2 - Synced to students

icon picker
EXTRA: Optimization

What is LOD?

LODs are a way to optimize the amount of triangles being rendered on screen, with increasing levels of detail the closer the object is to the camera or player.
This is a standard in most games, and used extremely heavily in open world games.
Popping: When the assets on screen can’t be changed quickly enough, the low resolution meshes will be closer to the screen than they should. When they finally load the correct LOD “pops” into place.
Unreal Engine 5 can support up to 5 LOD levels. Some other game engines can support up to 8.
Unreal Engine will make LOD distances by default, don’t forget to tweak these values. LOD distances are based on how much percentage an asset takes up. When a certain percentage is reached, it will change LOD.

Optimization checklist

1) Minimize the number of elements per object.
2) Reasonable polycounts → We can go high on polycount these days, but you can still break it.
3) Overdraw can have a big impact on performance. Use opaque materials wherever possible, and avoid translucent as much as possible.

4) As little UV seams and hard edges as possible. → Remember from GAP? 😉
5) Split up large meshes to improve culling. ​Culling → Meshes that are not seen, aren’t drawn.
6) Use textures with smaller res and smaller texture formats.
7) Materials with less textures and texture complexity are cheaper. Examples: Nodes like Multiply, Subtract and Clamp are very cheap.
8) Unlit shading model is the fastest. Use Lit as much as possible. Other shading models are more expensive.
9) Static lighting is the cheapest.
10) Limit the light attenuation and the cone angle to the minimum needed.
11) Spot lights are the cheapest.
12) Use billboards, imposter meshes or skybox textures to fake detailed geometry.
13) Disable shadows wherever possible.
14) Avoid light propagation volumes where possible.
15) For game projects: avoid profiling in editor, minimize the editor, turn off frame rate smoothing, turn off vsync.
16) Minimize the amount of Draw Calls. Fewer larger models are better than many small ones, but this is worse for occlusion, lightmapping, collision and memory. Aim for a ballpark of 1000. Keep it below 2000.
17) Keep Draw Calls in mind when working with a modular workflow. Keep them down by merging groups of meshes into one or use HLODs for objects that are further away.
18) Use LODs on your meshes.
19) HLODs are an ideal tool for dealing with asset groups that are further away.
20) Cut all alpha/translucent/masked planes very close. More geometry is a good tradeoff versus overdraw! ​And many more...

How to check performance?

You can also look for this in ‘stat’:
Or look for this in Render modes:
Everything in “optimization viewmodes”
Use these to monitor where issues may lie when monitoring performance.

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
) instead.