Level of Detail - Mesh Reduction |
(September 2003) |
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. |
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”;
}
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\ | |||||||