CMX VERSION 0 - 12 April 2004 ============= Mesh Export Format for Live for Speed Online Racing Simulator. This document refers to the .CMX files supplied with the CMX Viewer. Important Copyright Notice : ============================ (c) 2004 Scawen Roberts, Eric Bailey, Victor Van Vlaardingen - The CMX models are supplied for use with the CMX Viewer. You may import the models into other software for rendering purposes only. The models may not be used in another racing simulator or for any commercial purpose unless you obtain written permission from the developers of Live for Speed. - Volkswagen Scirocco : Trademark, design patents and copyrights are used with the permission of the owner Volkswagen AG. NOTES : ======= 1) X,Y,Z int values : fixed point world coordinates (1 metre = 65536) 2) Texture flags (MASK) 64 : shiny - use environment map 128 : custom - user defined skin - Non-custom textures are found in the data\pic folder - They are 24-bit raw files unless they have the extension .jpg - Textures marked as custom are jpg and are found in data\skins folder - Textures ending in ALPHA or ATEST are alpha or alphatest textures - They have two files, a 24 bit raw file for colour + 8bit raw for alpha - e.g. xxxATEST - load the two files xxx.raw and xxxATEST.raw 3) Object configs : (track exports only) Bit 0 is always set Bit 1 - on in config 0 Bit 2 - on in config 1 etc... 4) Object flags : (track exports only) 1 : on in forward configs 2 : on in reverse configs 64 : contains ALPHA 128 : contains ATEST 5) Surface types : (track exports only) 0 ROAD 1 RUMBLE 2 DIRT 3 GRASS 4 SAND 5 GRAVEL 6 METAL 7 CONCRETE 8 TREE 9 FENCE 10 WALL 11 DIRT_WALL 6) Vertex colours : 4 bytes - Opacity, R, G, B FILE DESCRIPTION : ================== num unit offset description --- ---- ------ ----------- HEADER BLOCK : 6 char 0 LFSCMX : don't read file if no match 1 byte 6 game version : ignore 1 byte 7 game revision : ignore 1 byte 8 CMX version (0) : don't read file if increased 1 byte 9 export type : track : 0 / car : 0 1 byte 10 0 : 1 byte 11 0 : 4 byte 12 0 : 32 char 16 name : text 1 col 48 ground colour : rgb0 - unlit ground colour 8 byte 52 0 : 1 float 60 sky horiz : radius of sky dome 1 float 64 sky vert : height of sky dome 1 int 68 num lightschemes : number 1 int 72 num configs : number (0 for car exports) 1 int 76 num textures : number 1 int 80 num objects : number ......LIGHTSCHEME BLOCKS ......CONFIG BLOCKS ......TEXTURE BLOCKS ......OBJECT BLOCKS LIGHTSCHEME BLOCK : 16 char 0 lightscheme name : name 16 char 16 sky texture name : texture 16 char 32 environment texture : texture 1 col 48 sky colour : rgb0 - average sky colour 1 col 52 sun colour : rgb0 - artist defined 1 float 56 sun intensity : sun colour multiplier 1 float 60 sky boost : sky colour multiplier 1 float 64 sun heading : radians, CCW from forward(Y) 1 float 68 sun pitch : radians, up from ground CONFIG BLOCK (track exports only) 16 char 0 config name : name 1 int 16 num nodes : number of nodes ......NODE BLOCKS NODE BLOCK (track exports only) 1 int 0 centre X : fp 1 int 4 centre Y : fp 1 int 8 centre Z : fp 1 float 12 dir X : float 1 float 16 dir Y : float 1 float 20 dir Z : float 1 float 24 limit left : lightmap limit 1 float 28 limit right : lightmap limit 1 float 32 drive left : road limit 1 float 36 drive right : road limit TEXTURE BLOCK : 16 char 0 texture name : see NOTES (2) 1 int 16 flags : texture flags - see NOTES(2) OBJECT BLOCK : 1 int 0 centre X : fp 1 int 4 centre Y : fp 1 int 8 centre Z : fp 1 int 12 radius : fp 1 word 16 object configs : SEE NOTES (3) 1 word 18 object flags : SEE NOTES (4) 1 word 20 num textures : number 1 word 22 num points : number 1 word 24 num tris : number 1 word 26 0 : ......TEXTURE INFO BLOCKS ......POINT BLOCKS ......TRIANGLE BLOCKS TEXTURE INFO BLOCK : 1 byte 2 flags : bit 0 : sky reflection 1 byte 3 0 : 1 byte 0 texture index : world texture index 1 byte 1 surface type : see NOTES (5) 1 word 4 num points : points in this texture 1 word 6 num tris : tris in this texture POINT BLOCK : 1 int 0 X : fp 1 int 4 Y : fp 1 int 8 Z : fp 1 float 12 NX : float normal X 1 float 16 NY : float normal Y 1 float 20 NZ : float normal Z 1 float 24 U : float U 1 float 28 V : float V 1 int 32 colour : see NOTES (6) TRIANGLE BLOCK : 1 word 0 vertex A : index 1 word 2 vertex B : index 1 word 4 vertex C : index 1 word 6 flags : bit 0 : GLASS