Work with Level of Detail and GeoGroup Nodes
Using Lua to interact with LOD and GeoGroup nodes
Level of Detail (LOD) nodes control the visibility of geogroups based on camera distance. Geogroup nodes contain renderable meshes.
LOD Properties
Property | Type | Description |
---|
Enabled | boolean | Enabled or disabled. When disabled, no models under this LOD are rendered. |
InOut | number[2] | Distance between which this LOD is rendered (rendered when view is at least In metres away, no longer rendered when further than Out metres away) |
RefPoint | number[3] | Local coordinate from which the LOD distance is calculated |
LOD Example
Simple script example which prints to the Log window details of the LOD including the in-out distances and the LOD reference point.
-- Drag/Drop section BEGINS - Do not edit between BEGINS and ENDS.
local LODX = __Script.dragdrop.LODX
-- Drag/Drop section ENDS
-- Simply prints out the attributes of a LOD
print(LODX.Enabled)
print("In distance ", LODX.InOut[1], " Out distance ", LODX.InOut[2])
print("Ref pt ", LODX.RefPoint)
GeoGroup Properties
Property | Type | Description |
---|
Enabled | boolean | Enabled or disabled. When disabled, child meshes are not rendered. |
Material | vrnode | Link to a material to render this GeoGroup with |
CullFace | number | Cull face mode. See the Cull Face mode table below. |
LockMaterial | boolean | Indicates if the material can be overridden on the Visual level. |
DrawMode | number | Draw mode overriding the values in the GeoGroups. See the Draw Mode table below. |
BakedLighting | boolean | Apply the GeoGroup's stored baked lighting. NOTE: The GeoGroup needs to contain baked lighting information for this property to have any effect. This is usually read from imported files. |
ShadowCaster | boolean | Indicates that the GeoGroup should cast shadows when lit by a shadow casting light. |
IgnoreCoverageLOD | boolean | Indicates whether this GeoGroup should ignore the coverage LOD setting and render even when failing the test. |
Cull Face Modes
These modes control which faces of geometry in the model are rendered.
Mode | Description |
---|
__GeoGroup_CullFaceNone
| Does not cull any faces (both back and front are drawn) |
__GeoGroup_CullFaceBack
| Culls back faces |
__GeoGroup_CullFaceFront
| Culls front faces |
Draw Modes
These modes control how the model is rendered
Mode | Description |
---|
__GeoGroup_DrawModeSolid
| Forces solid rendering (model faces are filled) |
__GeoGroup_DrawModeLines
| Forces line rendering (model is drawn as wireframe) |
__GeoGroup_DrawModePoints
| Forces point rendering (only the vertices are drawn) |
GeoGroup Example
Simple script which checks the current DrawMode of a GeoGroup and changes it to the next possible Mode. This script would typically be called on a keypress event.
-- Drag/Drop section BEGINS - Do not edit between BEGINS and ENDS.
local Geo = __Script.dragdrop.Geo
-- Drag/Drop section ENDS
-- Geogroup example
-- Simple check of current GeoGroup DrawMode
-- then change it to another mode
if Geo.DrawMode == __GeoGroup_DrawModeSolid then
print("__GeoGroup_DrawModeSolid")
Geo.DrawMode = __GeoGroup_DrawModeLines
elseif Geo.DrawMode == __GeoGroup_DrawModeLines then
print("__GeoGroup_DrawModeLines")
Geo.DrawMode = __GeoGroup_DrawModePoints
elseif Geo.DrawMode == __GeoGroup_DrawModePoints then
print("__GeoGroup_DrawModePoints")
Geo.DrawMode = __GeoGroup_DrawModeSolid
end