News . About . Screenshots . Downloads . Forum . Wiki . Tracker . GitLab

FS#41 - LOD entity keys + Automatic patch LOD

Attached to Project: Project::OSiRiON
Opened by Evan Goers (Mega) - Sunday, 08 May 2011, 06:07 GMT
Last edited by Stijn Buys (Ingar) - Sunday, 17 November 2013, 00:59 GMT
Task Type Feature Request
Category src → render
Status New
Assigned To Stijn Buys (Ingar)
Operating System All
Severity Medium
Priority Normal
Reported Version Development
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


The engine needs a way to be able to use a LOD system for performance reasons. I propose a method for this: all brush entities(except worldspawn and misc_model) will have a 'lod' key. The existence of this key in the entity(as in, if it's actually set) tells the engine to enable LOD on the entity. The value for the LOD key would be an integer of 0 through 3. A value of 3 tells the engine to only render the brushes at 75% and above of the detail LOD distance. A value of 2 renders at 50-75%. A value of 1 renders at 25-50%. 0 renders at 0-25% distance. If the key is not set, the brushes will render at all distances(unless set to detail).

This allows two things: Patch meshes get LOD, and LOD gradually degrades with distance.

An alternative would be in patch loading. At model load, bake 4 levels of LOD for the patch meshes into the model, and apply the same rules as above. This may not be desirable because some patch meshes may be required to stay at full LOD for specific reasons.

The only downside to this is that it requires more memory to store the LOD models, but it would cut down on polygon count at render time significantly.
This task depends upon