3D Studio File Format Information (3dsinfo.txt)Introduction============The information contained in this file is only collected by me. The credits go to the following people (in alphabetical order): Christophe Chabanois (Wolverine / Apocalypse) Jim Pitts Niklas Beisert (Pascal / 4711)I think some more people did a good job in discovering unknown chunks, but I don't know them all. The layout is based on 3dsffo10.txt from Christophe Chabanois. I did not include any source code from this info, because it was of no use to me. I used only the standard character set for compatibility with other operating systems.My own extensions and corrections are: - Corrected the hierarchy levels of some chunks, especially the material editor chunk and the spotlight sub-chunks are at the wrong place in some docs - Documented some spotlight and material sub-chunks - Documented most tracks - Made a consistent layout for all chunk descriptionsMy reader is written in object oriented C++ and can read the chunks only if they are in the right hierarchy position. It keeps the structure of the 3DS file in memory and does not jam all vertices into one big array. It also can write this structure back to a 3DS file. This gave me the possibility to convert the data of my world-editor into a 3DS file to see where toplace the animated objects. If you want to convert a mesh object into a 3DS file, you just need this chunk structure:0x4D4D Main chunk 0x3D3D 3D editor chunk 0x4000 Object block (with name of your object) 0x4100 Triangular mesh 0x4110 Your vertices 0x4120 Your facesThe internal reader of 3DS sets all other things to their defaults. The "auto edge" function is good if you dont't want to set the face flags.Index=====1. Fast reference : The chunk treeThis will help you to find rapidly a chunk number and its description.2. A chunk - What's that ?This will explain what a chunk is and help programmers understand thegeneral concept of the 3DS file format.3. Data typesThis short section will describe all data types used.4. Chunks descriptionThis is the most important part of the document. It describes the chunks.
1. Fast reference : The chunk tree==================================Color chunks------------ 0x0010 : Rgb (float) 0x0011 : Rgb (byte) 0x0012 : Rgb (byte) gamma corrected 0x0013 : Rgb (float) gamma corrected Percent chunks-------------- 0x0030 : percent (int) 0x0031 : percent (float) 0x4D4D : Main chunk------------------- 0x0002 : 3DS-Version 0x3D3D : 3D editor chunk ------------------------ 0x0100 : One unit 0x1100 : Background bitmap 0x1101 : Use background bitmap 0x1200 : Background color 0x1201 : Use background color 0x1300 : Gradient colors 0x1301 : Use gradient 0x1400 : Shadow map bias 0x1420 : Shadow map size 0x1450 : Shadow map sample range 0x1460 : Raytrace bias 0x1470 : Raytrace on 0x2100 : Ambient color 0x2200 : Fog 0x2210 : fog background 0x2201 : Use fog 0x2210 : Fog background 0x2300 : Distance queue 0x2310 : Dim background 0x2301 : Use distance queue 0x2302 : Layered fog options 0x2303 : Use layered fog 0x3D3E : Mesh version 0x4000 : Object block --------------------- 0x4010 : Object hidden 0x4012 : Object doesn't cast 0x4013 : Matte object 0x4015 : External process on 0x4017 : Object doesn't receive shadows 0x4100 : Triangular mesh 0x4110 : Vertices list 0x4120 : Faces description 0x4130 : Faces material list 0x4140 : Mapping coordinates list
1. Fast reference : The chunk tree==================================Color chunks------------ 0x0010 : Rgb (float) 0x0011 : Rgb (byte) 0x0012 : Rgb (byte) gamma corrected 0x0013 : Rgb (float) gamma corrected Percent chunks-------------- 0x0030 : percent (int) 0x0031 : percent (float) 0x4D4D : Main chunk------------------- 0x0002 : 3DS-Version 0x3D3D : 3D editor chunk ------------------------ 0x0100 : One unit 0x1100 : Background bitmap 0x1101 : Use background bitmap 0x1200 : Background color 0x1201 : Use background color 0x1300 : Gradient colors 0x1301 : Use gradient 0x1400 : Shadow map bias 0x1420 : Shadow map size 0x1450 : Shadow map sample range 0x1460 : Raytrace bias 0x1470 : Raytrace on 0x2100 : Ambient color 0x2200 : Fog 0x2210 : fog background 0x2201 : Use fog 0x2210 : Fog background 0x2300 : Distance queue 0x2310 : Dim background 0x2301 : Use distance queue 0x2302 : Layered fog options 0x2303 : Use layered fog 0x3D3E : Mesh version 0x4000 : Object block --------------------- 0x4010 : Object hidden 0x4012 : Object doesn't cast 0x4013 : Matte object 0x4015 : External process on 0x4017 : Object doesn't receive shadows 0x4100 : Triangular mesh 0x4110 : Vertices list 0x4120 : Faces description 0x4130 : Faces material list 0x4140 : Mapping coordinates list