virtualx-engine/doc/classes/LOD.xml
lawnjelly 1b5fa74e39 Discrete Level of Detail
Add scene side discrete level of detail.

New node `LOD` for UI, and `LODManager` within `World` for automatically updating child visibilities based on distance from cameras.
2024-02-10 18:54:25 +00:00

27 lines
1.5 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="LOD" inherits="Spatial" version="3.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Provides discrete level of detail.
</brief_description>
<description>
Automatically hides and shows [Spatial] children depending on the distance from the closest [Camera] to the [LOD] node. Child nodes that don't inherit from [Spatial] are ignored by the LOD system.
Children are shown in order with the first children shown when closest to the [Camera], and the latter children shown when further away.
The threshold distances for changes are determined by [member Spatial.lod_range].
For example, a first child with a range of [code]2[/code] will be shown from distance 0 to 2. A second child with a range of [code]5[/code] will be shown from distance 2 to 7, etc.
</description>
<tutorials>
</tutorials>
<methods>
</methods>
<members>
<member name="hysteresis" type="float" setter="set_hysteresis" getter="get_hysteresis" default="1.0">
To prevent flickering at borders, a hysteresis distance will be added to threshold distances when the object is moving away from the [Camera].
</member>
<member name="lod_priority" type="int" setter="set_lod_priority" getter="get_lod_priority" default="0">
Determines the rate at which level of detail will be updated.
Higher priorities will update faster, but use more CPU.
</member>
</members>
<constants>
</constants>
</class>