Log inGet started
World

Builtin Library

Branchmain
Branchesmainpublish
Commit61a33237e0

README.md

meshLod.module

Owns which level each tracked entity draws at, and the arithmetic that decides it.

screenFraction(radius, distance, fovDegrees) returns the fraction of the viewport's height a sphere of that radius spans — 1.0 fills the frame, 0.05 spans a twentieth of it.

selectLevel(fraction, thresholds, current, hysteresis) maps that fraction to a level. thresholds are ordered largest to smallest, one per cheaper level; level 0 is the authored full-detail mesh. Passing current lets the climb back to a richer level require 1 + hysteresis times the threshold that was crossed, so a camera resting on a boundary settles instead of alternating.

Both are pure, so a level can be checked for a given size and range without a camera or a scene.

register / unregister track an entity, evaluate measures one against the camera and returns the level, the mesh to draw and whether that changed. The caller applies the mesh — the module never writes another component's fields.

levelOf, fractionOf and stats report what is being drawn and the measurement it came from.