Level of Detail - Mesh Reduction 

(September 2003)

General Description:

Level of Detail (or ‘LOD’) is a technique used for asset mesh reduction.

This concept is different from the previous "progressive mesh" (*.PM) reduction as used by UTC. That is, instead of gradually reducing the polycount of a single mesh you can now have several versions of the same asset, each at different polycounts and texture levels. (See ‘Directory Structure’, Page 2)

Assets with LOD reduction must comprise of ‘indexed meshes’ (*.IM) files only (exported from GMax or 3D Max).

No *.PM files in LOD please!

TRS2004 looks for these *.IM files through an *.lm.TXT (LOD mesh file) which is referenced via the asset’s config.TXT file.

Only Figure 4, the hi-res version is bump-mapped. Bump mapping will be ignored if the graphics card does not support it. (Refer to updated document "Assets: Bump Mapping" on 3PS website)

*.lm.TXT File

version 1.0
offset = 0.01;
calcPoint = center;
multiplier = 1.0;
animationCutOff = 0.00;
renderCutOff = 0.00;
attachmentCutOff = 0.06;
mesh(“0.07”)
{
name=”PB_15_body_lowest.im”;
}
mesh(“0.30”)
{
name=”PB_15_body_low.im”;
}
mesh(“0.52”)
{
name=”PB_15_body_med.im”;
}
mesh(“1.0”)
{
name=”PB_15_body.im”;
}
 

Note: Use only non-formatted text to create the .LM file

Use a simple text editor such as notepad.

Breakdown of LOD Mesh File

Version 1.0

offset = 0.01;
The offset that prevents “popping” between two level of details repeatedly.

calcPoint = center;
The position where the level of detail is calculated from (center,near,far)

multiplier = 1.0;
A level of detail multiplier (leave as 1.0) 

animationCutOff = 0.00;
The level of detail where animation stops (to screen width) 1.00 = full width,
0.5 = half screen width, 0.00 = never stop animation.

renderCutOff = 0.00;
The level (to screen width) where rendering stops (no longer visible).

attachmentCutOff = 0.06;
The level where :Cull flagged attachments are dropped. (to screen width) See note below

Note: Meshes referenced within an LOD file must be in ascending screen width order.

mesh(“0.07”)
{
name=”PB_15_body_lowest.im”;
}
When the mesh is displayed at 0.07 of the screen, the mesh ‘PB_15_body_ lowest.IM’ is displayed. Note the figure 
is just bigger then the attachment-CutOff ficure above. This ensures the modeled bogeys in this LOD mesh are
rendered before the actual bogeys are culled.

Note: attachmentCutOff = 0.1;
Attachment cutoff specifies the level
where attachments with the flag “:Cull” are
dropped.
(e.g. To stop drawing the bogies of the trains
at a specific level of detail, append :Cull to
the bogie attachment point.
(e.g. “a.bog0:Cull” ))
Where the above applies (bogies culled)
the body mesh will need a low poly
representation of the bogeys.

mesh(“0.30”)
{
name=”PB_15_body_low.im”;
}

Mesh ‘PB_15_body_low.IM’ is displayed when the mesh is displayed at 0.3 of the screen.

mesh(“0.52”)
{
name=”PB_15_body_med.im”;
}
mesh(“1.0”)
{
name=”PB_15_body.im”;
}

Directory Structure (LOD Loco)

The main thing to remember is that all LOD files, .IM meshes and textures must be located within the same directory. In the case of a locomotive or rolling stock item, it should be in the *_body directory.

World\
Custom\
Trains\
Custom_Traincar
Custom_Traincar_Art\
Custom_Traincar_Body\
Reverser
brake.TGA
cabits.TGA
cabits_low.TGA
catcher.TGA
custom_traincar.TGA
custom_traincar_low.TGA
custom_traincar_lowest.TGA
custom_traincar_med.TGA
custom_traincar_bump.TGA
wheel_lowest.TGA
wheel_sm_lowest.TGA
brake_op.BMP
catcher.BMP
env_metal.BMP
env_metal_low.BMP
wheel_lowest.BMP
wheel_sm_lowest.BMP
custom_traincar_body.IM
custom_traincar_body_low.IM
custom_traincar_body_lowest.IM
custom_traincar_body_med.IM
brake-brake_op.texture.TXT
cabits.texture.TXT
cabits_low.texture.TXT
catcher-catcher.texture.TXT
env_metal.texture.TXT
env_metal_low.texture.TXT
custom_traincar.texture.TXT
custom_traincar_low.texture.TXT
custom_traincar_lowest.texture.TXT
custom_traincar_med.texture.TXT
custom_traincar_body_lm.TXT
custom_traincar_bump.texture.TXT
Custom_Traincar_Shadow\
Custom_Traincar_Alpha_Numbers\