see: http://area.autodesk.com/blogs/chris/reading_and_modifying_asset_file_paths_in_the_3ds_max_file file:///usr/share/doc/libgsf-1-dev/html/gsf/api.html (max 3.x) /srv/work/database/interfaces/anims_max/cp_fy_hof_species.max: d 0 *root* f 52 VideoPostQueue f 2159653 Scene f 1228 DllDirectory f 18700 Config f 3194 ClassDirectory3 f 176 ClassData f 34780 SummaryInformation f 3352 DocumentSummaryInformation (max 2010) /home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max: d 0 *root* f 52 VideoPostQueue <- not important f 147230 Scene <- the main scene, todo f 366 FileAssetMetaData2 <- this is new in max2010! (it is unfortunately in a different format ...) f 2198 DllDirectory <- a listing of dlls used by this file f 29605 Config <- contains stuff related to the paramblocks in max scripts, needed for handling nel material f 3438 ClassDirectory3 <- a listing of used classes, the index in this list may be relevant to chunk ids f 691 ClassData <- maybe contains global class data f 29576 SummaryInformation <- standard windows stuff, different format f 2320 DocumentSummaryInformation kaetemi@benzaiten ~/source/minimax/build $ gsf dump /home/kaetemi/source/minimax/GE_Acc_MikotoBaniere.max VideoPostQueue VideoPostQueue [ 50 00 (id: 0x0050) 0a 00 00 00 (size: 10 - 6 = 4) [ 01 00 00 00 (value: 1) ] ] [ 60 00 (id: 0x0060) 2a 00 00 80 (size: 42 - 6 = 36) (note: negative bit = container) [ 10 00 (id: 0x0010) 1e 00 00 00 (size: 30 - 6 = 24) [ 07 00 00 00 (value: 7) 01 00 00 00 (value: 1) 00 00 00 00 00 00 00 00 20 12 00 00 (value: 4610) 00 00 00 00 ] 20 00 (id: 0x0020) 06 00 00 00 (size: 6 - 6 = 0) ] ] Pipeline Max Dump (Temporary Tool) /srv/work/database/interfaces/anims_max/cp_fy_hof_species.max DllDirectory CHUNK ID: 8248, SIZE: 112, CONTAINER: 1 CHUNK ID: 8249, SIZE: 80, CONTAINER: 0 UTF16: Default materials and textures (Kinetix) SKIPPED: 0 CHUNK ID: 8247, SIZE: 20, CONTAINER: 0 UTF16: mtlgen.dlt SKIPPED: 0 SKIPPED: 0 CHUNK ID: 8248, SIZE: 108, CONTAINER: 1 CHUNK ID: 8249, SIZE: 82, CONTAINER: 0 UTF16: Standard materials and textures (Kinetix) SKIPPED: 0 CHUNK ID: 8247, SIZE: 14, CONTAINER: 0 UTF16: mtl.dlt SKIPPED: 0 SKIPPED: 0 CHUNK ID: 8248, SIZE: 90, CONTAINER: 1 CHUNK ID: 8249, SIZE: 54, CONTAINER: 0 UTF16: Standard samplers (Kinetix) SKIPPED: 0 CHUNK ID: 8247, SIZE: 24, CONTAINER: 0 UTF16: samplers.dlh SKIPPED: 0 SKIPPED: 0 CHUNK ID: 8248, SIZE: 88, CONTAINER: 1 CHUNK ID: 8249, SIZE: 60, CONTAINER: 0 UTF16: Standard controllers (Kinetix) SKIPPED: 0 CHUNK ID: 8247, SIZE: 16, CONTAINER: 0 UTF16: ctrl.dlc SKIPPED: 0 SKIPPED: 0 CHUNK ID: 8248, SIZE: 128, CONTAINER: 1 CHUNK ID: 8249, SIZE: 92, CONTAINER: 0 UTF16: Physique Modifier: a skeletal deformation tool SKIPPED: 0 CHUNK ID: 8247, SIZE: 24, CONTAINER: 0 UTF16: physique.dlm SKIPPED: 0 SKIPPED: 0 CHUNK ID: 8248, SIZE: 94, CONTAINER: 1 CHUNK ID: 8249, SIZE: 60, CONTAINER: 0 UTF16: Editable mesh object (Kinetix) SKIPPED: 0 CHUNK ID: 8247, SIZE: 22, CONTAINER: 0 UTF16: update1.dlo SKIPPED: 0 SKIPPED: 0 CHUNK ID: 8248, SIZE: 84, CONTAINER: 1 CHUNK ID: 8249, SIZE: 54, CONTAINER: 0 UTF16: BIPED.DLC: Biped Controller SKIPPED: 0 CHUNK ID: 8247, SIZE: 18, CONTAINER: 0 UTF16: biped.dlc SKIPPED: 0 SKIPPED: 0 CHUNK ID: 8248, SIZE: 260, CONTAINER: 1 CHUNK ID: 8249, SIZE: 218, CONTAINER: 0 UTF16: Map extender plug-in --- made by 3DSMax Team - UBI Soft Romania & Daniel Raviart - Ubi Research & Development SKIPPED: 0 CHUNK ID: 8247, SIZE: 30, CONTAINER: 0 UTF16: mapext198m3.dlm SKIPPED: 0 SKIPPED: 0 CHUNK ID: 8248, SIZE: 106, CONTAINER: 1 CHUNK ID: 8249, SIZE: 74, CONTAINER: 0 UTF16: Standard pre-filter kernels (Kinetix) SKIPPED: 0 CHUNK ID: 8247, SIZE: 20, CONTAINER: 0 UTF16: kernel.dlk SKIPPED: 0 SKIPPED: 0 CHUNK ID: 8248, SIZE: 98, CONTAINER: 1 CHUNK ID: 8249, SIZE: 70, CONTAINER: 0 UTF16: Default scanline renderer (Kinetix) SKIPPED: 0 CHUNK ID: 8247, SIZE: 16, CONTAINER: 0 UTF16: rend.dlr SKIPPED: 0 SKIPPED: 0 Chunk Header As follows: 2 bytes ID, interpretation context (parent) dependent, often refers to a class or version configuration used to parse this chunk 4 bytes Size, most significant bit flags whether the chunk is a container if Size is 0: 8 bytes Size64, idem meaning Size, support for large files Scene The Scene stream contains 1 root chunk, with as ID the version that the max file is stored in. 0x2004 3 0x2006 4 0x2008 5 0x2009 6 ? 7 ? 8 0x200E 9 0x200F 2008 (10) ? 2009 (11) 0x2012 2010 (12) ? 2011 (13) ? 2012 (14) ? 2013 (15) The size of this chunk, including the header size, is equal to the size of the Scene stream. max 3 0 | 04 20 (id version) 25 f4 20 80 (size + containerflag) 00 00 (id) 40 00 00 80 (size + containerflag) 35 20 0a 00 | ..%.....@...5... 10 | 00 00 02 00 00 00 01 25 0a 00 00 00 00 00 80 3f | .......%.......? 20 | 00 25 0e 00 00 00 00 00 00 80 00 00 00 80 02 30 | .%.............0 30 | 0a 00 00 00 00 00 00 00 03 30 0e 00 00 00 00 00 | .........0...... 40 | 00 80 00 00 00 80 01 00 b8 01 00 80 01 00 0a 00 | ................ 50 | 00 00 0d 00 00 00 05 00 08 00 00 00 06 00 02 00 | ................ 60 | 20 00 00 80 03 00 0a 00 00 00 00 00 00 00 04 00 | ................ 70 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................ 80 | 20 00 00 80 03 00 0a 00 00 00 01 00 00 00 04 00 | ................ 90 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................ a0 | 20 00 00 80 03 00 0a 00 00 00 02 00 00 00 04 00 | ................ b0 | 06 00 00 00 00 01 0a 00 00 00 00 00 80 3f 02 00 | .............?.. c0 | 20 00 00 80 03 00 0a 00 00 00 03 00 00 00 04 00 | ................ d0 | 06 00 00 00 00 01 0a 00 00 00 00 00 80 3f 02 00 | .............?.. e0 | 20 00 00 80 03 00 0a 00 00 00 04 00 00 00 04 00 | ................ f0 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................ 100 | 20 00 00 80 03 00 0a 00 00 00 05 00 00 00 04 00 | ................ 110 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................ 120 | 20 00 00 80 03 00 0a 00 00 00 06 00 00 00 04 00 | ................ 130 | 06 00 00 00 00 01 0a 00 00 00 00 00 00 00 02 00 | ................ 140 | 20 00 00 80 03 00 0a 00 00 00 07 00 00 00 04 00 | ................ 150 | 06 00 00 00 00 01 0a 00 00 00 00 00 80 3f 02 00 | .............?.. 160 | 20 00 00 80 03 00 0a 00 00 00 08 00 00 00 04 00 | ................ max 9 (stored under wine) Scene: 0 | 0e 20 (id version) 00 00 00 00 (missing size) 01 49 40 00 00 00 00 80 00 00 | .......I@....... 10 | 00 00 00 00 d0 00 00 00 00 00 00 80 0b 00 00 00 | ................ 20 | 00 00 26 00 00 00 00 00 00 00 3c 29 06 5a 1e 0c | ..&.......<).Z.. 30 | 42 30 60 11 00 00 00 00 00 15 28 23 04 00 01 00 | B0`.......(#.... 40 | 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 00 00 | ........!....... 50 | 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 | ..............@. 60 | 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 00 | .........!...... 70 | 00 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 | ...............@ 80 | 00 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 | ..........!..... 90 | 00 00 02 00 04 00 00 00 00 00 82 00 00 00 00 00 | ................ a0 | 40 00 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 | @..........!.... b0 | 00 00 00 04 00 09 00 00 00 00 00 80 06 00 00 00 | ................ c0 | 00 40 ff ff ff ff 0c 00 00 00 00 00 18 00 00 00 | .@.............. d0 | 00 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 | ................ e0 | 00 00 00 00 ac 00 00 00 00 00 00 80 34 20 00 00 | ............4... f0 | 00 00 16 00 00 00 00 00 00 00 00 00 00 00 ff ff | ................ 100 | ff ff 45 20 00 00 00 00 12 00 00 00 00 00 00 00 | ..E............. 110 | 00 00 00 00 47 20 00 00 00 00 64 00 00 00 00 00 | ....G.....d..... 120 | 00 80 48 20 00 00 00 00 24 00 00 00 00 00 00 80 | ..H.....$....... 130 | 00 27 00 00 00 00 16 00 00 00 00 00 00 00 02 00 | .'.............. 140 | 00 00 00 00 00 00 49 20 00 00 00 00 24 00 00 00 | ......I.....$... 150 | 00 00 00 80 00 27 00 00 00 00 16 00 00 00 00 00 | .....'.......... 160 | 00 00 02 00 00 00 01 00 00 00 4a 20 00 00 00 00 | ..........J..... 170 | 0e 00 00 00 00 00 00 00 00 10 00 00 00 00 12 00 | ................ 180 | 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 | ................ max 2008 (stored under wine) Scene: 0 | 0f 20 (id version) 00 00 00 00 (missing size) 17 fe 01 00 00 00 00 80 (unknown 64 bits) 00 00 | ................ 10 | 00 00 00 00 d0 00 00 00 00 00 00 80 0b 00 (id) 00 00 | ................ 20 | 00 00 (missing size) 26 00 00 00 00 00 00 00 (unknown 64 bits) 3c 29 06 5a 1e 0c | ..&.......<).Z.. 30 | 42 30 60 11 00 00 00 00 00 17 10 27 04 00 01 00 | B0`........'.... 40 | 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 00 00 | ........!....... 50 | 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 | ..............@. 60 | 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 00 | .........!...... 70 | 00 01 00 01 00 00 00 00 00 82 00 00 00 00 00 40 | ...............@ 80 | 00 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 00 | ..........!..... 90 | 00 00 02 00 04 00 00 00 00 00 82 00 00 00 00 00 | ................ a0 | 40 00 00 00 00 0e 00 00 00 00 00 21 00 00 00 00 | @..........!.... b0 | 00 00 00 04 00 09 00 00 00 00 00 80 06 00 00 00 | ................ c0 | 00 40 ff ff ff ff 0c 00 00 00 00 00 18 00 00 00 | .@.............. d0 | 00 00 00 00 01 00 00 00 01 00 00 00 11 00 01 00 | ................ e0 | 00 00 00 00 45 00 00 00 00 00 00 80 34 20 00 00 | ....E.......4... f0 | 00 00 16 00 00 00 00 00 00 00 00 00 00 00 ff ff | ................ 100 | ff ff 4b 20 00 00 00 00 0f 00 00 00 00 00 00 00 | ..K............. 110 | 2e 00 10 00 00 00 00 12 00 00 00 00 00 00 00 00 | ................ max 2010 Scene: 0 | 12 20 (id version) 1e 3f 02 80 (size+containerflag) 00 00 (id) 98 00 00 80 (size+containerflag) 0b 00 (id) 1e 00 | ...?............ 10 | 00 00 (size 30-6=24) 3c 29 06 5a 1e 0c 42 30 60 11 00 00 00 00 | ..<).Z..B0`..... 20 | 00 21 e0 2e 04 00 01 00 00 00 0e 00 (id) 19 00 00 00 (size 25-6=19) | .!.............. 30 | 00 00 04 00 00 00 00 00 82 00 00 00 00 00 40 00 | ..............@. 40 | 00 00 00 0e 00 19 00 00 00 01 00 01 00 00 00 00 | ................ 50 | 00 82 00 00 00 00 00 40 00 00 00 00 0e 00 19 00 | .......@........ 60 | 00 00 02 00 04 00 00 00 00 00 82 00 00 00 00 00 | ................ 70 | 40 00 00 00 00 0e 00 19 00 00 00 04 00 09 00 00 | @............... 80 | 00 00 00 80 06 00 00 00 00 40 ff ff ff ff 0c 00 | .........@...... 90 | 10 00 00 00 01 00 00 00 01 00 00 00 00 00 01 00 | ................ a0 | 25 00 00 80 34 20 0e 00 00 00 00 00 00 00 ff ff | %...4........... b0 | ff ff 4b 20 07 00 00 00 2e 00 10 0a 00 00 00 00 | ..K............. c0 | 00 00 00 00 00 be 03 00 80 35 20 0a 00 00 00 09 | .........5...... d0 | 00 00 00 4b 20 07 00 00 00 2e 0b 00 1e 00 00 00 | ...K............ e0 | 59 b4 8a 21 80 89 dc 25 60 11 00 00 00 00 00 21 | Y..!...%`......! f0 | e0 2e 25 00 03 00 00 00 0e 00 19 00 00 00 00 00 | ..%............. 100 | 04 00 00 00 01 00 82 00 00 00 00 00 c0 00 00 00 | ................ 110 | 00 0e 00 15 00 00 00 01 00 0f 00 00 00 40 20 81 | .............@.. 120 | 10 00 00 00 00 40 0e 00 15 00 00 00 02 00 0f 00 | .....@.......... 130 | 00 00 40 20 81 10 00 00 00 00 40 0e 00 15 00 00 | ..@.......@..... 140 | 00 03 00 0f 00 00 00 40 20 81 10 00 00 00 00 40 | .......@.......@ 150 | 0e 00 15 00 00 00 04 00 0f 00 00 00 40 00 81 10 | ............@... 160 | 00 00 00 00 40 0e 00 15 00 00 00 05 00 0f 00 00 | ....@........... 170 | 00 40 00 81 10 00 00 00 00 40 0e 00 15 00 00 00 | .@.......@...... 180 | 06 00 0f 00 00 00 40 00 81 10 00 00 00 00 40 0e | ......@.......@. 190 | 00 15 00 00 00 07 00 0f 00 00 00 40 20 81 10 00 | ...........@.... 1a0 | 00 00 00 40 0e 00 15 00 00 00 08 00 0f 00 00 00 | ...@............ 1b0 | 40 00 81 10 00 00 00 00 40 0e 00 15 00 00 00 09 | @.......@....... max 2010 (DllDirectory) { 0x21c0: (CStorageValue) { 786432216 } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Viewport Manager for DirectX (Autodesk) } 0x2037: (CStorageValue) { ViewportManager.gup } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { mental ray: Material Custom Attributes (Autodesk) } 0x2037: (CStorageValue) { mrMaterialAttribs.gup } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Custom Attribute Container (Autodesk) } 0x2037: (CStorageValue) { CustAttribContainer.dlo } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Standard Materials and Textures (Autodesk) } 0x2037: (CStorageValue) { mtl.dlt } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Standard Samplers (Autodesk) } 0x2037: (CStorageValue) { samplers.dlh } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Default Materials and Textures (Autodesk) } 0x2037: (CStorageValue) { mtlgen.dlt } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { ProSound - Multitrack Audio } 0x2037: (CStorageValue) { ProSound.dlc } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Editable Poly Object (Autodesk) } 0x2037: (CStorageValue) { EPoly.dlo } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Standard Pre-Filter Kernels (Autodesk) } 0x2037: (CStorageValue) { kernel.dlk } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Default Scanline Renderer (Autodesk) } 0x2037: (CStorageValue) { rend.dlr } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Standard Controllers (Autodesk) } 0x2037: (CStorageValue) { ctrl.dlc } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Block Manager Utility (Autodesk) } 0x2037: (CStorageValue) { AcadBlocks.dlu } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Propagation Manager Utility (Autodesk) } 0x2037: (CStorageValue) { InstanceMgr.dlu } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Scene Effect Manager (Autodesk) } 0x2037: (CStorageValue) { SceneEffectLoader.dlu } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Change Reaction Controller (Autodesk) } 0x2037: (CStorageValue) { reactor.dlc } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { ParameterEditor (Autodesk) } 0x2037: (CStorageValue) { ParamEditor.gup } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Bitmap Proxies (Autodesk) } 0x2037: (CStorageValue) { BitmapProxies.dlu } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Standard Bitmap Storages and Filters (Autodesk) } 0x2037: (CStorageValue) { StorageAndFilter.bms } } 0x2038: (DllEntry) { 0x2039: (CStorageValue) { Biped Controller (Autodesk) } 0x2037: (CStorageValue) { biped.dlc } } } max 2010 (ClassDirectory3) { 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00000082) SuperClassID: 130} 0x2042: (CStorageValue) { ParamBlock2 } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 0 ClassID: (0x30420c1e, 0x5a06293c) SuperClassID: 4448} 0x2042: (CStorageValue) { ViewportManager } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 1 ClassID: (0x25dc8980, 0x218ab459) SuperClassID: 4448} 0x2042: (CStorageValue) { mental ray: material custom attribute } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 2 ClassID: (0x23b708db, 0x5ddb3626) SuperClassID: 256} 0x2042: (CStorageValue) { CustAttribContainer } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 3 ClassID: (0x00000000, 0x00001200) SuperClassID: 4224} 0x2042: (CStorageValue) { Texmaps } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 3 ClassID: (0x00000000, 0x00000038) SuperClassID: 4272} 0x2042: (CStorageValue) { Blinn } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00000008) SuperClassID: 8} 0x2042: (CStorageValue) { ParamBlock } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 4 ClassID: (0x00000000, 0x25773211) SuperClassID: 4368} 0x2042: (CStorageValue) { Max 2.5 Star } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 3 ClassID: (0x00000000, 0x00000002) SuperClassID: 3072} 0x2042: (CStorageValue) { Standard } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00002007) SuperClassID: 36867} 0x2042: (CStorageValue) { Bezier Float } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 5 ClassID: (0x00000000, 0x00000100) SuperClassID: 3104} 0x2042: (CStorageValue) { Placement } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 5 ClassID: (0x00000000, 0x00000100) SuperClassID: 3136} 0x2042: (CStorageValue) { Output } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 3 ClassID: (0x00000000, 0x00000240) SuperClassID: 3088} 0x2042: (CStorageValue) { Bitmap } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -2 ClassID: (0x222b9eb9, 0x64c75fec) SuperClassID: 3072} 0x2042: (CStorageValue) { NeL Material } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00000c80) SuperClassID: 256} 0x2042: (CStorageValue) { Material Editor } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00003333) SuperClassID: 256} 0x2042: (CStorageValue) { MtlBaseLib } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 6 ClassID: (0x5b918e4e, 0x476fa9de) SuperClassID: 3328} 0x2042: (CStorageValue) { WaveMaster } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 6 ClassID: (0x5b918e4a, 0x476fa9de) SuperClassID: 3328} 0x2042: (CStorageValue) { ProSound } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00000002) SuperClassID: 1} 0x2042: (CStorageValue) { RootNode } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00002008) SuperClassID: 36875} 0x2042: (CStorageValue) { Bezier Position } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00442313) SuperClassID: 36876} 0x2042: (CStorageValue) { TCB Rotation } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00002010) SuperClassID: 36877} 0x2042: (CStorageValue) { Bezier Scale } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00002005) SuperClassID: 36872} 0x2042: (CStorageValue) { Position/Rotation/Scale } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x0d9c20ff) SuperClassID: 36880} 0x2042: (CStorageValue) { Master Point Controller } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 7 ClassID: (0x192f6098, 0x1bf8338d) SuperClassID: 16} 0x2042: (CStorageValue) { Editable Poly } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x1dba1df0, 0x7e9858fe) SuperClassID: 4336} 0x2042: (CStorageValue) { Base Layer } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00000001) SuperClassID: 1} 0x2042: (CStorageValue) { Node } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 8 ClassID: (0x00000000, 0x77912301) SuperClassID: 4256} 0x2042: (CStorageValue) { Area } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 9 ClassID: (0x00000000, 0x00000001) SuperClassID: 3840} 0x2042: (CStorageValue) { Default Scanline Renderer } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x06546546, 0x46576167) SuperClassID: 512} 0x2042: (CStorageValue) { RenderElementMgr } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00002011) SuperClassID: 36869} 0x2042: (CStorageValue) { Bezier Color } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0xee448b23) SuperClassID: 4112} 0x2042: (CStorageValue) { RenderEnvironment } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00008d52) SuperClassID: 256} 0x2042: (CStorageValue) { NamedSelSetList } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x90f2ee71, 0x8d73b8aa) SuperClassID: 512} 0x2042: (CStorageValue) { TVNode } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 10 ClassID: (0x00000000, 0x4b4b1000) SuperClassID: 36867} 0x2042: (CStorageValue) { Float List } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 10 ClassID: (0x00000000, 0x4b4b1001) SuperClassID: 36869} 0x2042: (CStorageValue) { Point3 List } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 10 ClassID: (0x00000000, 0x4b4b1005) SuperClassID: 36882} 0x2042: (CStorageValue) { Point4 List } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 10 ClassID: (0x00000000, 0x4b4b1002) SuperClassID: 36875} 0x2042: (CStorageValue) { Position List } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 10 ClassID: (0x00000000, 0x4b4b1003) SuperClassID: 36876} 0x2042: (CStorageValue) { Rotation List } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 10 ClassID: (0x00000000, 0x4b4b1004) SuperClassID: 36877} 0x2042: (CStorageValue) { Scale List } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 10 ClassID: (0x00000000, 0x4b4b1015) SuperClassID: 36881} 0x2042: (CStorageValue) { Block Control } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 11 ClassID: (0x11793bed, 0x1f8c3646) SuperClassID: 36867} 0x2042: (CStorageValue) { Block Manager Wrapper } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 12 ClassID: (0x7620792b, 0x5a1b661e) SuperClassID: 36867} 0x2042: (CStorageValue) { Propagation Manager Wrapper } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 13 ClassID: (0xf4044794, 0x368d1139) SuperClassID: 36867} 0x2042: (CStorageValue) { Scene Effect Loader } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 14 ClassID: (0x087906d7, 0x294a389c) SuperClassID: 256} 0x2042: (CStorageValue) { Reaction Manager } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 15 ClassID: (0x265a2326, 0x28250b30) SuperClassID: 4448} 0x2042: (CStorageValue) { ParameterCollectorCA } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 16 ClassID: (0x01513165, 0x4a0c66e1) SuperClassID: 2912} 0x2042: (CStorageValue) { } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x2c1a0a7b, 0x0c6f6387) SuperClassID: 36879} 0x2042: (CStorageValue) { SceneAppData Latch } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 17 ClassID: (0x68c22d6f, 0x5bf94f11) SuperClassID: 2912} 0x2042: (CStorageValue) { BitmapPagerData } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 10 ClassID: (0x781f1430, 0x0f4871a5) SuperClassID: 36879} 0x2042: (CStorageValue) { MasterLayerControlManager } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 18 ClassID: (0x30935afc, 0x57a52b8c) SuperClassID: 36879} 0x2042: (CStorageValue) { Max Mixer Clip } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00000001) SuperClassID: 4294966784} 0x2042: (CStorageValue) { Grid Reference } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x17356912) SuperClassID: 4240} 0x2042: (CStorageValue) { RenderEffects } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: 9 ClassID: (0x00000000, 0x00000100) SuperClassID: 4304} 0x2042: (CStorageValue) { Shadow Map } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x51ff028e, 0x0d7374fc) SuperClassID: 512} 0x2042: (CStorageValue) { Layer Manager } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x2cf03595) SuperClassID: 256} 0x2042: (CStorageValue) { TrackSetList } } 0x2040: (ClassEntry) { 0x2060: (ClassDirectoryHeader) { DllIndex: -1 ClassID: (0x00000000, 0x00002222) SuperClassID: 256} 0x2042: (CStorageValue) { Scene } } } Config nel script material id: 0x64c75fec, 0x222b9eb9 ec 5f c7 64 b9 9e 2b 22 0x2180: (StorageContainer) { 0x0040: (StorageContainer) { 0x0050: (StorageRaw) { Size: 12 String: ....._.d..+" Hex: 00 0c 00 00 ec 5f c7 64 b9 9e 2b 22 } 0x0007: (StorageContainer) { 0x0060: (StorageRaw) { Size: 4 String: .... Hex: 09 00 00 00 } 0x0007: (StorageContainer) { 0x0060: (StorageRaw) { Size: 4 String: .... Hex: 0e 00 00 00 } 0x0006: (StorageRaw) { Size: 9 String: ....nlbp. Hex: 05 00 00 00 6e 6c 62 70 00 } 0x0003: (StorageRaw) { Size: 4 String: .... } 0x0003: (StorageRaw) { Size: 4 String: .... Hex: 01 00 00 00 } 0x0007: (StorageContainer) { 0x0060: (StorageRaw) { Size: 4 String: .... Hex: 02 00 00 00 } max3 (Config) { 0x20e0: (StorageContainer) { 0x0100: (StorageRaw) { Size: 12 String: ...=........ Hex: cd cc cc 3d 0a 00 00 00 01 00 00 00 } 0x0200: (StorageRaw) { Size: 48 String: ...@.. A........................................ Hex: 00 00 a0 40 00 00 20 41 01 00 00 00 03 00 00 00 08 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 } 0x0300: (StorageRaw) { Size: 0 String: Hex: } } 0x20a0: (StorageContainer) { 0x0100: (StorageRaw) { Size: 4 String: .... max2010 (Config) { 0x20e0: (StorageContainer) { 0x0100: (StorageRaw) { Size: 12 String: .. A........ Hex: 00 00 20 41 0a 00 00 00 01 00 00 00 } 0x0400: (StorageRaw) { Size: 8 String: ........ Hex: 07 00 00 00 01 00 00 00 } 0x0200: (StorageRaw) { Size: 40 String: ...@.. A................................ Hex: 00 00 a0 40 00 00 20 41 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 } 0x0300: (StorageRaw) { Size: 0 String: Hex: } } 0x20a0: (StorageContainer) { 0x0100: (StorageRaw) { Size: 4 String: .... Hex: 01 00 00 00 } max2010 scene, near no fx 2f 27 02 05 std::string CExportNel::getScriptAppData (Animatable *node, uint32 id, const std::string& def) AppDataChunk *ap=node->GetAppDataChunk (MAXSCRIPT_UTILITY_CLASS_ID, UTILITY_CLASS_ID, id); MAXSCRIPT_UTILITY_CLASS_ID Class_ID(0x4d64858, 0x16d1751d) UTILITY_CLASS_ID 0x001020 #define NEL3D_APPDATA_ENV_FX (84682543) 0x50C272F 0x0110: (StorageContainer) [2] { 0x0120: (StorageRaw) { Size: 20 String: XH...u.. .../'...... Hex: 58 48 d6 04 1d 75 d1 16 // MAXSCRIPT_UTILITY_CLASS_ID 20 10 00 00 // UTILITY_CLASS_ID 2f 27 0c 05 // NEL3D_APPDATA_ENV_FX 06 00 00 00 } // size??? 0x0130: (StorageRaw) { Size: 6 String: no fx. } } Scene class references ver3 References 0x2034: PARSED { 0: (Material Editor, (0x00000c80, 0x00000000)) 1: (MtlBaseLib, (0x00003333, 0x00000000)) 2: (Default Sound, (0x00000001, 0x00000000)) 3: (RootNode, (0x00000002, 0x00000000)) 4: (RenderEnvironment, (0xee448b23, 0x00000000)) 5: (NamedSelSetList, (0x00008d52, 0x00000000)) 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) 7: (Grid Reference, (0x00000001, 0x00000000)) 8: (RenderEffects, (0x17356912, 0x00000000)) 9: (Shadow Map, (0x00000100, 0x00000000)) 10: (Layer Manager, (0x0d7374fc, 0x51ff028e)) } ver9 References 0x2034: PARSED { 0: (Material Editor, (0x00000c80, 0x00000000)) 1: (MtlBaseLib, (0x00003333, 0x00000000)) 2: (Default Sound, (0x00000001, 0x00000000)) 3: (RootNode, (0x00000002, 0x00000000)) 4: (RenderEnvironment, (0xee448b23, 0x00000000)) 5: (NamedSelSetList, (0x00008d52, 0x00000000)) 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) 7: (Grid Reference, (0x00000001, 0x00000000)) 8: (RenderEffects, (0x17356912, 0x00000000)) 9: (Shadow Map, (0x00000100, 0x00000000)) 10: (Layer Manager, (0x0d7374fc, 0x51ff028e)) 11: (TrackSetList, (0x2cf03595, 0x00000000)) } ver2008 References 0x2034: PARSED { 0: (Material Editor, (0x00000c80, 0x00000000)) 1: (MtlBaseLib, (0x00003333, 0x00000000)) 2: (Default Sound, (0x00000001, 0x00000000)) 3: (RootNode, (0x00000002, 0x00000000)) 4: (RenderEnvironment, (0xee448b23, 0x00000000)) 5: (NamedSelSetList, (0x00008d52, 0x00000000)) 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) 7: (Grid Reference, (0x00000001, 0x00000000)) 8: (RenderEffects, (0x17356912, 0x00000000)) 9: (Shadow Map, (0x00000100, 0x00000000)) 10: (Layer Manager, (0x0d7374fc, 0x51ff028e)) 11: (TrackSetList, (0x2cf03595, 0x00000000)) } ver2010 References 0x2034: PARSED { 0: (Material Editor, (0x00000c80, 0x00000000)) 1: (MtlBaseLib, (0x00003333, 0x00000000)) 2: (ProSound, (0x476fa9de, 0x5b918e4a)) 3: (RootNode, (0x00000002, 0x00000000)) 4: (RenderEnvironment, (0xee448b23, 0x00000000)) 5: (NamedSelSetList, (0x00008d52, 0x00000000)) 6: (TVNode, (0x8d73b8aa, 0x90f2ee71)) 7: (Grid Reference, (0x00000001, 0x00000000)) 8: (RenderEffects, (0x17356912, 0x00000000)) 9: (Shadow Map, (0x00000100, 0x00000000)) 10: (Layer Manager, (0x0d7374fc, 0x51ff028e)) 11: (TrackSetList, (0x2cf03595, 0x00000000)) } 01 00 00 00 // one face 04 00 00 00 // four edges/vertices 02 00 00 00 // 2 00 00 00 00 // 0 01 00 00 00 // 1 03 00 00 00 // 3 30 00 // nomnom 01 00 00 00 // nomnom 01 00 00 00 // nomnom 03 00 00 00 // nomnom ////// banner c2 00 00 00 // 194 faces 04 00 00 00 // four vertices 00 00 00 00 01 00 00 00 2e 00 00 00 2d 00 00 00 31 00 // magic 0c 00 00 00 // magic 08 00 00 00 // more magic?! 01 00 00 00 // cut from local 1 03 00 00 00 // to local 3 04 00 00 00 // four vertices 01 00 00 00 02 00 00 00 2f 00 00 00 2e 00 00 00 31 00 // magic 04 00 00 00 // magic 08 00 00 00 // more magic?! 01 00 00 00 // cut from local 1 03 00 00 00 // to local 3 04 00 00 00 02 00 00 00 03 00 00 00 30 00 00 00 2f 00 00 00 31 00 04 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 31 00 00 00 30 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 00 00 00 00 2d 00 00 00 31 00 00 00 31 00 0c 00 00 00 08 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 14 00 00 00 13 00 00 00 19 00 00 00 18 00 00 00 39 00 0c 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 13 00 00 00 15 00 00 00 1a 00 00 00 19 00 00 00 39 00 04 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 15 00 00 00 16 00 00 00 1b 00 00 00 1a 00 00 00 39 00 04 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 16 00 00 00 17 00 00 00 1c 00 00 00 1b 00 00 00 39 00 0c 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 17 00 00 00 14 00 00 00 18 00 00 00 1c 00 00 00 39 00 0c 00 00 00 09 00 08 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 0b 00 00 00 0a 00 00 00 1f 00 00 00 20 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 0a 00 00 00 09 00 00 00 1e 00 00 00 1f 00 00 00 31 00 0c 00 00 01 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 0c 00 00 00 0b 00 00 00 20 00 00 00 21 00 00 00 31 00 04 00 00 00 08 00 00 00 00 00 00 00 02 00 0 ////// banner 3 0x0100: (StorageArraySizePre) [6] { { 0x0, -5.000000 -5.000000 0.000000 } { 0x1000000, 5.000000 -5.000000 0.000000 } { 0x0, -5.000000 5.000000 0.000000 } { 0x1000000, 5.000000 5.000000 0.000000 } { 0x0, 5.000000 -5.000000 10.000000 } { 0x0, 5.000000 5.000000 10.000000 } } 4 0x010a: (StorageArraySizePre) [7] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 3 } { 0x0, 0 1 } { 0x0, 1 4 } { 0x0, 5 3 } { 0x1, 4 5 } } 5 0x011a: (StorageRaw) { Size: 68 String: ........................0................................. ......... Hex: 02 00 00 00 // 2 faces! 04 00 00 00 // 4 vertices 02 00 00 00 00 00 00 00 01 00 00 00 // shared 03 00 00 00 // shared 30 00 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 // 4 vertices 03 00 00 00 // shared 01 00 00 00 // shared 04 00 00 00 05 00 00 00 20 00 00 00 00 00 02 00 00 00 } 3 0x0100: (StorageArraySizePre) [8] { { 0x0, -5.000000 -5.000000 0.000000 } { 0x0, 5.000000 -5.000000 0.000000 } { 0x0, -5.000000 5.000000 0.000000 } { 0x0, 5.000000 5.000000 0.000000 } { 0x1000000, 5.000000 -5.000000 10.000000 } { 0x1000000, 5.000000 5.000000 10.000000 } { 0x0, -5.000000 -5.000000 10.000000 } { 0x0, -5.000000 5.000000 10.000000 } } 4 0x010a: (StorageArraySizePre) [10] { { 0x8, 2 0 } { 0x8, 3 2 } { 0x8, 1 3 } { 0x8, 0 1 } { 0x8, 1 4 } { 0x8, 5 3 } { 0x0, 4 5 } { 0x0, 4 6 } { 0x0, 7 5 } { 0x0, 6 7 } } 5 0x011a: (StorageRaw) { Size: 106 String: ........................1.....................................!................................. ......... Hex: 03 00 00 00 // 3 faces 04 00 00 00 // 4 vertices 02 00 00 00 00 00 00 00 01 00 00 00 03 00 00 00 31 00 // 0011 0001 08 00 00 00 01 00 00 00 01 00 00 00 03 00 00 00 04 00 00 00 // 4 vertices 03 00 00 00 01 00 00 00 04 00 00 00 // shared vertex 05 00 00 00 // shared vertex 21 00 // 0010 0001 08 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00 // 4 vertices 05 00 00 00 // shared vertex 04 00 00 00 // shared vertex 06 00 00 00 07 00 00 00 20 00 // 0010 0000 00 00 00 00 02 00 00 00 } ** triangulation is stored inside the polyobject somewhere with the faces! 3 0x0100: (StorageArraySizePre) [5] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, -3.931087 3.378710 0.000000 } { 0x0, 3.007738 4.420538 0.000000 } { 0x0, 5.070167 -1.944196 0.000000 } } 4 0x010a: (StorageArraySizePre) [5] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 4 } { 0x0, 0 1 } { 0x0, 4 3 } } 5 0x011a: (StorageRaw) { Size: 50 String: ............................0..................... Hex: 01 00 00 00 // 1 face 05 00 00 00 02 00 00 00 00 00 00 00 // v0 at idx 1 01 00 00 00 04 00 00 00 03 00 00 00 30 00 // triangulation egdes should both touch vertex 0... locally 1? 01 00 00 00 01 00 00 00 03 00 00 00 01 00 00 00 oops deleted Float: 4.2039e-45 } 3 0x0100: (StorageArraySizePre) [5] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, -3.931087 3.378710 0.000000 } { 0x0, 3.007738 4.420538 0.000000 } { 0x0, 5.070167 -1.944196 0.000000 } } 4 0x010a: (StorageArraySizePre) [5] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 4 } { 0x0, 0 1 } { 0x0, 4 3 } } 5 0x011a: (StorageRaw) { Size: 50 String: ............................0..................... Hex: 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 // v1 at idx 2 04 00 00 00 03 00 00 00 30 00 30 00 // triangle edges should both touch vertex 1... locally 2? 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 02 00 00 00 01 00 00 00 // hm! 04 00 00 00 oops deleted } 3 0x0100: (StorageArraySizePre) [5] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, -3.931087 3.378710 0.000000 } { 0x0, 3.007738 4.420538 0.000000 } { 0x1, 5.070167 -1.944196 0.000000 } } 4 0x010a: (StorageArraySizePre) [5] { { 0x0, 2 0 } { 0x0, 3 2 } { 0x0, 1 4 } { 0x0, 0 1 } { 0x0, 4 3 } } 5 0x011a: (StorageRaw) { Size: 50 String: ............................0..................... Hex: 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 30 00 // magic // triangle edges should touch vertex 4 .. locally 3? 01 00 00 00 // magic 01 00 00 00 // triangulate from local 1 03 00 00 00 // to local 3 00 00 00 00 // triangulate from local 0 03 00 00 00 // to local 3 } 3 0x0100: (StorageArraySizePre) [3] { { 0x0, -5.000000 -2.000000 0.000000 } { 0x0, 1.169249 -6.003741 0.000000 } { 0x0, 5.070167 -1.944196 0.000000 } } 4 0x010a: (StorageArraySizePre) [3] { { 0x0, 1 2 } { 0x0, 0 1 } { 0x1, 2 0 } } 5 0x011a: (StorageRaw) { Size: 26 String: .......................... Hex: 01 00 00 00 03 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 10 00 01 00 00 00 } 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 31 00 /// 20 00 = info, last; 10 00 = smoothing groups; 01 00 = ?? 01 00 01 00 ff ff ff ff // smoothing group 01 00 00 00 03 00 00 00 // cut 1 00 00 00 00 03 00 00 00 // cut 1 } bitfield 01 00 = unknown, uint32 or pair '01 00 01 00' 02 00 04 00 08 00 = material id, uint16 (max shows index + 1, so starts at 1, binary starts at 0) 10 00 = smoothing groups, uint32 20 00 = triangulation, pair per cut 40 00 ? 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 21 00 01 00 01 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // selected 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 21 00 00 00 01 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // unselected - no difference *** byte changed from 1 to 0 ??? 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // material id changed to '5', 08 00 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // clear selection unselected -- no diff 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // use subdiv -- no diff 01 00 00 00 05 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 04 00 00 00 03 00 00 00 29 00 01 00 01 00 04 00 01 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 // vertex colors -- no diff