Performance & LOD
LOD Distance Calculator
Direct answer
A LOD screen size is the fraction of the screen height a mesh's bounding sphere fills. Convert it to distance with diameter divided by twice the screen size times the tangent of half the vertical field of view. A 3 m mesh switching at 0.25 screen size with a 60 degree vertical view swaps at about 10.4 m.
Not the height. The diameter of the sphere that encloses the whole mesh.
Result
- Vertical field of view used
- —deg
- LOD1 at
- —m
- LOD2 at
- —m
- LOD3 at
- —m
- Cull or impostor at
- —m
- Mesh height in pixels at the LOD1 switch
- —px
Method & assumptions
How this is worked out
Screen size is the share of the screen's height that the mesh's bounding sphere covers. Geometry gives the rest: a sphere of diameter D at distance d covers D / (2 d tan(fov/2)) of the view, so solving for distance yields d = D / (2 x screen size x tan(fov/2)).
The field of view in that formula is the vertical one. Unreal's FieldOfView is horizontal and Unity's Camera.fieldOfView is vertical, which is exactly why the same LOD setup switches at different distances in the two engines. The calculator converts for you using the aspect ratio.
Distances scale linearly with mesh size and inversely with screen size: double the mesh, double every distance; halve the screen size threshold, double the distance again.
Screen size thresholds that behave
| LOD step | Screen size | What it means |
|---|---|---|
| LOD0 to LOD1 | 0.5 – 0.4 | Mesh fills half the screen height |
| LOD1 to LOD2 | 0.25 – 0.15 | Clearly visible, detail no longer readable |
| LOD2 to LOD3 | 0.1 – 0.06 | A recognisable shape in the mid-distance |
| Impostor or billboard | 0.05 – 0.03 | Silhouette only |
| Cull entirely | 0.02 – 0.01 | A few pixels tall |
Halving the screen size between steps roughly doubles the distance each time, which is what makes a LOD chain feel even rather than lurching.
Questions
What does LOD screen size actually mean?
It is the fraction of the screen's height that the mesh's bounding sphere covers, from 1.0 for a mesh filling the view down to near zero in the far distance. It is resolution-independent, which is why engines use it instead of a distance in metres.
Why do the same LOD settings switch differently in Unreal and Unity?
Because the field of view means different things. Unreal's camera FOV is horizontal, Unity's is vertical. At 16:9 a 90 degree horizontal view is only about 59 degrees vertically, so the same screen size threshold lands at a noticeably different distance.
Should I set LOD distances or screen sizes?
Screen sizes. They stay correct when the player changes resolution, aspect ratio or field of view, and they stay correct when you scale the mesh. A hard-coded distance in metres is right for exactly one camera setup.