Level Of Detail (LOD) Ranges: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(Fix incorrect path to LOD properties.)
 
(4 intermediate revisions by 3 users not shown)
Line 8: Line 8:
|-
|-
| <code>sim/rendering/static-lod/detailed</code> || 1500 m ||All objects (buildings etc) display withing this range.
| <code>sim/rendering/static-lod/detailed</code> || 1500 m ||All objects (buildings etc) display withing this range.
* Building meshes using OBJECT_BUILDING_MESH_DETAILED (Additional 1414 m is added as these meshes are 2000 x 2000 m)
* Building meshes using OBJECT_BUILDING_MESH_DETAILED  
* The actual visibility range is randomly distributed from <code>/sim/static-lod/rough</code> to twice <code>/sim/static-lod/rough</code>, to reduce apparent "popping".
* The actual visibility range is randomly distributed from <code>/sim/static-lod/rough</code> to twice <code>/sim/static-lod/rough</code>, to reduce apparent "popping".
|-
|-
Line 16: Line 16:
* Random trees
* Random trees
* Random buildings
* Random buildings
* Building meshes using OBJECT_BUILDING_MESH_ROUGH. (Additional 1414 m is added as these meshes are 2000 x 2000 m)
* Building meshes using OBJECT_BUILDING_MESH_ROUGH.  


The actual visibility range is randomly distributed from <code>/sim/static-lod/rough</code> to twice <code>/sim/static-lod/rough</code>, to reduce apparent "popping".
The actual visibility range is randomly distributed from <code>/sim/static-lod/rough</code> to twice <code>/sim/static-lod/rough</code>, to reduce apparent "popping".
Line 24: Line 24:


== AI/MP ranges ==
== AI/MP ranges ==
{{Note|For a while now FG supports size based LOD - this is the size of the model on screen in pixels and can be configured in the static lod dialog. All models should have an assigned fallback model; this is a low detail model that can be used for models that are further away.<ref>https://sourceforge.net/p/flightgear/mailman/message/37220137/</ref>}}


AI/MP models (other models that aren't being flown/operated by the user) have two models. The first of these is the low detail (or fallback) model, which can be defined by an model developer (<code>sim/model/fallback-model-index</code>) as one of the values in <code>$FGData/AI/Aircraft/fallback_models.xml</code>. When there is no fallback model defined for a model the blue-yellow glider will be used.
AI/MP models (other models that aren't being flown/operated by the user) have two models. The first of these is the low detail (or fallback) model, which can be defined by an model developer (<code>sim/model/fallback-model-index</code>) as one of the values in <code>$FGData/AI/Aircraft/fallback_models.xml</code>. When there is no fallback model defined for a model the blue-yellow glider will be used.


There are three properties that control the operation of the LOD ranges for
AI/MP ranges can either bet set as pixels of the object on screen, or distance from the viewer in meters.  This is controlled by the <code>/sim/rendering/static-lod/aimp-range-mode-distance</code> property.
We also have the following settings used for AI models:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Property !! Default !! Description
! Property !! Default !! Description
|-
|-
| <code>/sim/rendering/static-lod/aimp-range-mode-distance</code> || false || When true the distances in the following aimp- properties are considered to be the distance from the camera.
| <code>/sim/rendering/static-lod/aimp-range-mode-distance</code> || false || Configures the range mode:
 
* If set to false the values of <code>/sim/rendering/static-lod/aimp-detailed</code> and <code>/sim/rendering/static-lod/aimp-bare</code> are pixels on the screen.  This is default.
* If set to true, the values are distance from the camera in meters.
|-
|-
| <code>/sim/rendering/static-lod/aimp-detailed</code> || 400 px || This property works differently depending on the range mode.  
| <code>/sim/rendering/static-lod/aimp-detailed</code> || 400 px || This property works differently depending on the range mode.  
Line 40: Line 43:
|-
|-
| <code>/sim/rendering/static-lod/aimp-bare</code> || 0 px || This property works differently depending on the range mode.  
| <code>/sim/rendering/static-lod/aimp-bare</code> || 0 px || This property works differently depending on the range mode.  
* In pixel mode it is the maximum size (in pixels) of the object on screen. When below this amount the low detail (fallback) model will be used. It is possible to set this to a non-zero value to stop drawing anything when close (although quite why anyone would want to do that is beyond me), and thus a value of 0 is the expected usage of this in pixel mode.
* In pixel mode it is the minimum size (in pixels) of the object on screen.  
* In range mode it is the distance from the viewpoint, when above this distance the low detail model will be used.
** If the object is below <code>/sim/rendering/static-lod/aimp-bare</code> pixels in size, it will not be displayed.
|}
** When the number of pixels is between <code>/sim/rendering/static-lod/aimp-bare</code> and <code>/sim/rendering/static-lod/aimp-detailed</code>, the low detail (fallback) model will be used.


== Model interiors ==
* In range mode it is the distance beyond the <code>/sim/rendering/static-lod/aimp-detailed value</code>,  at which the low detail model will be used.  I.e. the low detail model will be used in the range from <code>/sim/rendering/static-lod/aimp-detailed to (/sim/rendering/static-lod/aimp-detailed + /sim/rendering/static-lod/aimp-bare)</code> .
{| class="wikitable"
|-
! Property !! Default !! Description
|-
|-
| <code>/sim/rendering/static-lod/aimp-interior</code> || 200 m || Range at which to display the model interior (when the model has a mesh defined as being the interior).
|<code>/sim/rendering/static-lod/aimp-interior</code>
|200m
|Range at which to display the model interior (when the model has a mesh defined as being the interior).
|}
|}


Line 55: Line 57:
=== Wiki articles ===
=== Wiki articles ===
* [[FlightGear configuration via XML]].  See in particular the section [[FlightGear configuration via XML#Adding your own settings|Adding your own settings]].
* [[FlightGear configuration via XML]].  See in particular the section [[FlightGear configuration via XML#Adding your own settings|Adding your own settings]].
=== Forum topics ===
* {{forum link|t=37353|title=3d models, how to produce them in an understandable way}} (April 2020-) - Touches on the subject of not using LOD range animations in scenery models.


=== Source code ===
=== Source code ===

Latest revision as of 20:52, 17 December 2023

Level of detail (LOD) ranges are controlled several properties in FlightGear, with the below default values.

Scenery ranges

Note  The LOD ranges are only set during the scenery loading process. Therefore a scenery reload may be required to change the currently loaded tiles.
Property Default Description
sim/rendering/static-lod/detailed 1500 m All objects (buildings etc) display withing this range.
  • Building meshes using OBJECT_BUILDING_MESH_DETAILED
  • The actual visibility range is randomly distributed from /sim/static-lod/rough to twice /sim/static-lod/rough, to reduce apparent "popping".
/sim/rendering/static-lod/rough 7500 m Terrain and non terrain objects will be displayed within this range, as follows:
  • Objects listed in scenery STG files using OBJECT_STATIC or OBJECT_SHARED verbs
  • Random scenery objects
  • Random trees
  • Random buildings
  • Building meshes using OBJECT_BUILDING_MESH_ROUGH.

The actual visibility range is randomly distributed from /sim/static-lod/rough to twice /sim/static-lod/rough, to reduce apparent "popping".

/sim/rendering/static-lod/bare 21000 m Only terrain after this point

AI/MP ranges

Note  For a while now FG supports size based LOD - this is the size of the model on screen in pixels and can be configured in the static lod dialog. All models should have an assigned fallback model; this is a low detail model that can be used for models that are further away.[1]

AI/MP models (other models that aren't being flown/operated by the user) have two models. The first of these is the low detail (or fallback) model, which can be defined by an model developer (sim/model/fallback-model-index) as one of the values in $FGData/AI/Aircraft/fallback_models.xml. When there is no fallback model defined for a model the blue-yellow glider will be used.

AI/MP ranges can either bet set as pixels of the object on screen, or distance from the viewer in meters. This is controlled by the /sim/rendering/static-lod/aimp-range-mode-distance property.

Property Default Description
/sim/rendering/static-lod/aimp-range-mode-distance false Configures the range mode:
  • If set to false the values of /sim/rendering/static-lod/aimp-detailed and /sim/rendering/static-lod/aimp-bare are pixels on the screen. This is default.
  • If set to true, the values are distance from the camera in meters.
/sim/rendering/static-lod/aimp-detailed 400 px This property works differently depending on the range mode.
  • In pixel mode it is the size (in pixels) of the object on screen. When greater than this amount of pixels the detailed model will be used
  • In range mode it is the distance from the viewpoint, when within this range the detailed model will be used.
/sim/rendering/static-lod/aimp-bare 0 px This property works differently depending on the range mode.
  • In pixel mode it is the minimum size (in pixels) of the object on screen.
    • If the object is below /sim/rendering/static-lod/aimp-bare pixels in size, it will not be displayed.
    • When the number of pixels is between /sim/rendering/static-lod/aimp-bare and /sim/rendering/static-lod/aimp-detailed, the low detail (fallback) model will be used.
  • In range mode it is the distance beyond the /sim/rendering/static-lod/aimp-detailed value, at which the low detail model will be used. I.e. the low detail model will be used in the range from /sim/rendering/static-lod/aimp-detailed to (/sim/rendering/static-lod/aimp-detailed + /sim/rendering/static-lod/aimp-bare) .
/sim/rendering/static-lod/aimp-interior 200m Range at which to display the model interior (when the model has a mesh defined as being the interior).

Related content

Wiki articles

Forum topics

Source code