summaryrefslogtreecommitdiffhomepage
path: root/Doc/3DS File Format.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/3DS File Format.txt')
-rw-r--r--Doc/3DS File Format.txt1557
1 files changed, 1557 insertions, 0 deletions
diff --git a/Doc/3DS File Format.txt b/Doc/3DS File Format.txt
new file mode 100644
index 0000000..64cd23a
--- /dev/null
+++ b/Doc/3DS File Format.txt
@@ -0,0 +1,1557 @@
+
+
+--------------------------------------------------------------------------------
+
+
+The Unofficial 3DStudio 3DS File Format v1.0
+
+By Jeff Lewis (werewolf@worldgate.com)
+
+Notice
+
+This document is an attempt to document the AutoDesk 3DS file format. This was
+made difficult in that I don't own or have access to a copy of the program, only
+to sample files. Fortunately, someone used AutoDesk's own 3DS file development
+kit to create a program which dumps the contents of a 3DS file into a human
+readable form - albeit somewhat inaccurately. The codes listed and their names
+come from that program and have been confirmed by testing.
+
+It should be known that the 3DS format is, as far as I know, a proprietary
+format of AutoDesk and that the format details are not widely known or are
+protected by AutoDesk.
+
+It is not my intent to infringe on AutoDesk's rights, but simply to make a
+large collection of 3D image files accessable to people who do not use 3D
+Studio - or cannot use it because AutoDesk has not chosen to provide a version
+of 3D Studio for the computer they use (ie: The Macintosh in my case).
+
+Warning
+
+This document is not intended to be a definitive definition of the 3DS format
+and is not authorised by AutoDesk. While every effort has been made to ensure
+its accuracy, or at least warn you when there's doubt about its accuracy, no
+guarantee of accuracy in any of it can be given. Use this document at your own
+risk.
+
+
+Document layout and format information
+
+In the following document, chunk names which are in bold mean the chunk format
+has been determined with certainty. Chunk names which are not bold but have
+a struct following means that this is a guess but is not substantiated. All
+others are unknown.
+
+A short is always a two byte integer.
+A long is always a four byte integer.
+A float is always a four byte IEEE floating point number.
+A cstr is a zero byte terminated ASCII string without a length.
+A char is a single byte integer.
+
+
+3DS File Format
+
+A 3DS file consists of blocks of data called chunks. Every chunk starts the
+same way:
+
+ short chunk_id;
+ long chunk_len;
+
+The chunk_id is a unique code which identifies the type of data in this chunk
+and also may indicate the existence of subordinate chunks. The chunk_len
+indicates the length of following data to be associated with this chunk. Note,
+this may contain more data than just this chunk. If the length of data is
+greater than that needed to fill in the information for the chunk, additional
+subordinate chunks are attached to this chunk immediately following any data
+needed for this chunk, and should be parsed out. These subordinate chunks may
+themselves contain subordinate chunks.
+
+Unfortunately, there is no indication of the length of data which is owned by
+the current chunk, only the total length of data attached to the chunk, which
+means that the only way to parse out subordinate chunks is to know the exact
+format of the owning chunk. On the other hand, if a chunk is unknown, the
+parsing program canskip the entire chunk and subordinate chunks in one jump.
+
+In the following list, I try when possible to indicate that a chunk is likely to
+have subordinate chunks and what kinds of subordinate chunks I've seen attached
+to it.
+
+Another problem lies in cstr names. I've seen cases where the space used by a
+name is riddled with fragments of old names. It seems that the space reserved
+for a name is not cleared if a smaller name replaces it. If the name is removed,
+you'll get a zero byte indicating an immediate end of string, followed by an
+undetermined number of characters and nulls. This seems to happen only when the
+cstr is at the end of a block of data and so you can assume that the length of
+the chunk contains no other subchunks. See viewport_data for an example of this.
+
+
+0xxxH Group
+
+ 0000H
+ NULL_CHUNK
+ 0001H
+ Unknown chunk
+ float ???
+ 0002H
+ M3D_VERSION
+ short version;
+ 0005H
+ M3D_KFVERSION
+ 0010H
+ COLOR_F
+ float red, grn, blu;
+ 0011H
+ COLOR_24
+ char red, grn, blu;
+ 0012H
+ LIN_COLOR_24
+ char red, grn, blu;
+ 0013H
+ LIN_COLOR_F
+ float red, grn, blu;
+ 0030H
+ INT_PERCENTAGE
+ short percentage;
+ 0031H
+ FLOAT_PERCENTAGE
+ float percentage;
+ 0100H
+ MASTER_SCALE
+ float scale;
+ 0995H
+ ChunkType
+ 0996H
+ ChunkUnique
+ 0997H
+ NotChunk
+ 0998H
+ Container
+ 0999H
+ IsChunk
+ 0c3cH
+ C_SXP_SELFI_MASKDATA
+
+
+
+1xxxH Group
+
+ 1100H
+ BIT_MAP
+ cstr filename;
+ 1101H
+ USE_BIT_MAP
+ 1200H
+ SOLID_BGND; followed by color_f
+ 1201H
+ USE_SOLID_BGND
+ 1300H
+ V_GRADIENT; followed by three color_f: start, mid, end
+ float midpoint;
+ 1301H
+ USE_V_GRADIENT
+ 1400H
+ LO_SHADOW_BIAS
+ float bias;
+ 1410H
+ HI_SHADOW_BIAS
+ 1420H
+ SHADOW_MAP_SIZE
+ short size;
+ 1430H
+ SHADOW_SAMPLES
+ 1440H
+ SHADOW_RANGE
+ 1450H
+ SHADOW_FILTER
+ float filter;
+ 1460H
+ RAY_BIAS
+ float bias;
+ 1500H
+ O_CONSTS
+ float plane_x, plane_y, plane_z;
+
+
+
+2xxxH Group
+
+ 2100H
+ AMBIENT_LIGHT
+ 2200H
+ FOG; followed by color_f, fog_bgnd
+ float near_plane, near_density;
+ float far_plane, far_density;
+ 2201H
+ USE_FOG
+ 2210H
+ FOG_BGND
+ 2300H
+ DISTANCE_CUE followed by dcue_bgnd
+ float near_plane, near_density;
+ float far_plane, far_density;
+ 2301H
+ USE_DISTANCE_CUE
+ 2302H
+ LAYER_FOG
+ float fog_z_from, fog_z_to;
+ float fog_density;
+ short fog_type;
+ 2303H
+ USE_LAYER_FOG
+ 2310H
+ DCUE_BGND
+ 2d2dH
+ SMAGIC
+ 2d3dH
+ LMAGIC
+
+
+
+3xxxH Group
+
+ 3000H
+ DEFAULT_VIEW
+ 3010H
+ VIEW_TOP
+ float targe_x, target_y, target_z;
+ float view_width;
+ 3020H
+ VIEW_BOTTOM
+ float targe_x, target_y, target_z;
+ float view_width;
+ 3030H
+ VIEW_LEFT
+ float targe_x, target_y, target_z;
+ float view_width;
+ 3040H
+ VIEW_RIGHT
+ float targe_x, target_y, target_z;
+ float view_width;
+ 3050H
+ VIEW_FRONT
+ float targe_x, target_y, target_z;
+ float view_width;
+ 3060H
+ VIEW_BACK
+ float targe_x, target_y, target_z;
+ float view_width;
+ 3070H
+ VIEW_USER
+ float targe_x, target_y, target_z;
+ float view_width;
+ 3080H
+ VIEW_CAMERA
+ cstr camera_name;
+ 3090H
+ VIEW_WINDOW
+ 3d3dH
+ MDATA; Mesh Data Magic Number (.3DS files sub of 4d4d)
+ 3d3eH
+ MESH_VERSION
+ 3daaH
+ MLIBMAGIC; Material Library Magic Number (.MLI files)
+ 3dc2H
+ PRJMAGIC; 3dS Project Magic Number (.PRJ files)
+ 3dffH
+ MATMAGIC; Material File Magic Number (.MAT files)
+
+
+
+4xxxH Group
+
+ 4000H
+ NAMED_OBJECT
+ cstr name;
+ 4010H
+ OBJ_HIDDEN
+ 4011H
+ OBJ_VIS_LOFTER
+ 4012H
+ OBJ_DOESNT_CAST
+ 4013H
+ OBJ_MATTE
+ 4014H
+ OBJ_FAST
+ 4015H
+ OBJ_PROCEDURAL
+ 4016H
+ OBJ_FROZEN
+ 4017H
+ OBJ_DONT_RCVSHADOW
+ 4100H
+ N_TRI_OBJECT
+ named triangle object
+ followed by point_array, point_flag_array, mesh_matrix,
+ face_array
+ 4110H
+ POINT_ARRAY
+ short npoints;
+ struct {
+ float x, y, z;
+ } points[npoints];
+ 4111H
+ POINT_FLAG_ARRAY
+ short nflags;
+ short flags[nflags];
+ 4120H
+ FACE_ARRAY may be followed by smooth_group
+ short nfaces;
+ struct {
+ short vertex1, vertex2, vertex3;
+ short flags;
+ } facearray[nfaces];
+ 4130H
+ MSH_MAT_GROUP mesh_material_group
+ cstr material_name;
+ short nfaces;
+ short facenum[nfaces];
+ 4131H
+ OLD_MAT_GROUP
+ 4140H
+ TEX_VERTS
+ short nverts;
+ struct {
+ float x, y;
+ } vertices[nverts];
+ 4150H
+ SMOOTH_GROUP
+ short grouplist[n]; determined by length, seems to be 4 per face
+ 4160H
+ MESH_MATRIX
+ float matrix[4][3];
+ 4165H
+ MESH_COLOR
+ short color_index;
+ 4170H
+ MESH_TEXTURE_INFO
+ short map_type;
+ float x_tiling, y_tiling;
+ float icon_x, icon_y, icon_z;
+ float matrix[4][3];
+ float scaling, plan_icon_w, plan_icon_h, cyl_icon_h;
+ 4181H
+ PROC_NAME
+ 4182H
+ PROC_DATA
+ 4190H
+ MSH_BOXMAP
+ 4400H
+ N_D_L_OLD
+ 4500H
+ N_CAM_OLD
+ 4600H
+ N_DIRECT_LIGHT; followed by color_f
+ float x, y, z;
+ 4610H
+ DL_SPOTLIGHT
+ float target_x, target_y, target_z;
+ float hotspot_ang;
+ float falloff_ang;
+ 4620H
+ DL_OFF
+ 4625H
+ DL_ATTENUATE
+ 4627H
+ DL_RAYSHAD
+ 4630H
+ DL_SHADOWED
+ 4640H
+ DL_LOCAL_SHADOW
+ 4641H
+ DL_LOCAL_SHADOW2
+ 4650H
+ DL_SEE_CONE
+ 4651H
+ DL_SPOT_RECTANGULAR
+ 4652H
+ DL_SPOT_OVERSHOOT
+ 4653H
+ DL_SPOT_PROJECTOR
+ 4654H
+ DL_EXCLUDE
+ 4655H
+ DL_RANGE
+ 4656H
+ DL_SPOT_ROLL
+ float roll_ang;
+ 4657H
+ DL_SPOT_ASPECT
+ 4658H
+ DL_RAY_BIAS
+ float bias;
+ 4659H
+ DL_INNER_RANGE
+ float range;
+ 465aH
+ DL_OUTER_RANGE
+ float range;
+ 465bH
+ DL_MULTIPLIER
+ float multiple;
+ 4680H
+ N_AMBIENT_LIGHT
+ 4700H
+ N_CAMERA
+ float camera_x, camera_y, camera_z;
+ float target_x, target_y, target_z;
+ float bank_angle;
+ float focus;
+ 4710H
+ CAM_SEE_CONE
+ 4720H
+ CAM_RANGES
+ float near_range, far_range;
+ 4d4dH
+ M3DMAGIC; 3DS Magic Number (.3DS file)
+ 4f00H
+ HIERARCHY
+ 4f10H
+ PARENT_OBJECT
+ 4f20H
+ PIVOT_OBJECT
+ 4f30H
+ PIVOT_LIMITS
+ 4f40H
+ PIVOT_ORDER
+ 4f50H
+ XLATE_RANGE
+
+
+
+5xxxH Group
+
+ 5000H
+ POLY_2D
+ 5010H
+ SHAPE_OK
+ 5011H
+ SHAPE_NOT_OK
+ 5020H
+ SHAPE_HOOK
+
+
+
+6xxxH Group
+
+ 6000H
+ PATH_3D
+ 6005H
+ PATH_MATRIX
+ 6010H
+ SHAPE_2D
+ 6020H
+ M_SCALE
+ 6030H
+ M_TWIST
+ 6040H
+ M_TEETER
+ 6050H
+ M_FIT
+ 6060H
+ M_BEVEL
+ 6070H
+ XZ_CURVE
+ 6080H
+ YZ_CURVE
+ 6090H
+ INTERPCT
+ 60a0H
+ DEFORM_LIMIT
+ 6100H
+ USE_CONTOUR
+ 6110H
+ USE_TWEEN
+ 6120H
+ USE_SCALE
+ 6130H
+ USE_TWIST
+ 6140H
+ USE_TEETER
+ 6150H
+ USE_FIT
+ 6160H
+ USE_BEVEL
+
+
+
+7xxxH Group
+
+ 7000H
+ VIEWPORT_LAYOUT_OLD
+ 7001H
+ VIEWPORT_LAYOUT; followed by viewport_size, viewport_data
+ short form, top, ready, wstate, swapws, swapport, swapcur;
+ 7010H
+ VIEWPORT_DATA_OLD
+ 7011H
+ VIEWPORT_DATA
+ short flags, axis_lockout;
+ short win_x, win_y, win_w, winh_, win_view;
+ float zoom;
+ float worldcenter_x, worldcenter_y, worldcenter_z;
+ float horiz_ang, vert_ang;
+ cstr camera_name;
+ 7012H
+ VIEWPORT_DATA_3
+ short flags, axis_lockout;
+ short win_x, win_y, win_w, winh_, win_view;
+ float zoom;
+ float worldcenter_x, worldcenter_y, worldcenter_z;
+ float horiz_ang, vert_ang;
+ cstr camera_name;
+ 7020H
+ VIEWPORT_SIZE
+ short x, y, w, h;
+ 7030H
+ NETWORK_VIEW
+
+
+
+8xxxH Group
+
+ 8000H
+ XDATA_SECTION
+ 8001H
+ XDATA_ENTRY
+ 8002H
+ XDATA_APPNAME
+ 8003H
+ XDATA_STRING
+ 8004H
+ XDATA_FLOAT
+ 8005H
+ XDATA_DOUBLE
+ 8006H
+ XDATA_SHORT
+ 8007H
+ XDATA_LONG
+ 8008H
+ XDATA_VOID
+ 8009H
+ XDATA_GROUP
+ 800aH
+ XDATA_RFU6
+ 800bH
+ XDATA_RFU5
+ 800cH
+ XDATA_RFU4
+ 800dH
+ XDATA_RFU3
+ 800eH
+ XDATA_RFU2
+ 800fH
+ XDATA_RFU1
+ 80f0H
+ PARENT_NAME
+
+
+
+AxxxH Group
+
+ a000H
+ MAT_NAME
+ cstr material_name;
+ a010H
+ MAT_AMBIENT; followed by color chunk
+ a020H
+ MAT_DIFFUSE; followed by color chunk
+ a030H
+ MAT_SPECULAR; followed by color chunk
+ a040H
+ MAT_SHININESS; followed by percentage chunk
+ a041H
+ MAT_SHIN2PCT; followed by percentage chunk
+ a042H
+ MAT_SHIN3PCT; followed by percentage chunk
+ a050H
+ MAT_TRANSPARENCY; followed by percentage chunk
+ a052H
+ MAT_XPFALL; followed by percentage chunk
+ a053H
+ MAT_REFBLUR; followed by percentage chunk
+ a080H
+ MAT_SELF_ILLUM
+ a081H
+ MAT_TWO_SIDE
+ a082H
+ MAT_DECAL
+ a083H
+ MAT_ADDITIVE
+ a084H
+ MAT_SELF_ILPCT; followed by percentage chunk
+ a085H
+ MAT_WIRE
+ a086H
+ MAT_SUPERSMP
+ a087H
+ MAT_WIRESIZE
+ float wire_size;
+ a088H
+ MAT_FACEMAP
+ a08aH
+ MAT_XPFALLIN
+ a08cH
+ MAT_PHONGSOFT
+ a08eH
+ MAT_WIREABS
+ a100H
+ MAT_SHADING
+ short shading_value;
+ a200H
+ MAT_TEXMAP; followed by percentage chunk, mat_mapname,
+ mat_map_tiling, mat_map_texblur...
+ a204H
+ MAT_SPECMAP; followed by percentage_chunk, mat_mapname
+ a210H
+ MAT_OPACMAP; followed by percentage_chunk, mat_mapname
+ a220H
+ MAT_REFLMAP; followed by percentage_chunk, mat_mapname
+ a230H
+ MAT_BUMPMAP; followed by percentage_chunk, mat_mapname
+ a240H
+ MAT_USE_XPFALL
+ a250H
+ MAT_USE_REFBLUR
+ a252H
+ MAT_BUMP_PERCENT
+ a300H
+ MAT_MAPNAME
+ cstr filename;
+ a310H
+ MAT_ACUBIC
+ a320H
+ MAT_SXP_TEXT_DATA
+ a321H
+ MAT_SXP_TEXT2_DATA
+ a322H
+ MAT_SXP_OPAC_DATA
+ a324H
+ MAT_SXP_BUMP_DATA
+ a325H
+ MAT_SXP_SPEC_DATA
+ a326H
+ MAT_SXP_SHIN_DATA
+ a328H
+ MAT_SXP_SELFI_DATA
+ a32aH
+ MAT_SXP_TEXT_MASKDATA
+ a32cH
+ MAT_SXP_TEXT2_MASKDATA
+ a32eH
+ MAT_SXP_OPAC_MASKDATA
+ a330H
+ MAT_SXP_BUMP_MASKDATA
+ a332H
+ MAT_SXP_SPEC_MASKDATA
+ a334H
+ MAT_SXP_SHIN_MASKDATA
+ a336H
+ MAT_SXP_SELFI_MASKDATA
+ a338H
+ MAT_SXP_REFL_MASKDATA
+ a33aH
+ MAT_TEX2MAP
+ a33cH
+ MAT_SHINMAP
+ a33dH
+ MAT_SELFIMAP
+ a33eH
+ MAT_TEXMASK
+ a340H
+ MAT_TEX2MASK
+ a342H
+ MAT_OPACMASK
+ a344H
+ MAT_BUMPMASK
+ a346H
+ MAT_SHINMASK
+ a348H
+ MAT_SPECMASK
+ a34aH
+ MAT_SELFIMASK
+ a34cH
+ MAT_REFLMASK
+ a350H
+ MAT_MAP_TILINGOLD
+ a351H
+ MAT_MAP_TILING
+ short flags;
+ a352H
+ MAT_MAP_TEXBLUR_OLD
+ a353H
+ MAT_MAP_TEXBLUR
+ float blurring;
+ a354H
+ MAT_MAP_USCALE
+ a356H
+ MAT_MAP_VSCALE
+ a358H
+ MAT_MAP_UOFFSET
+ a35aH
+ MAT_MAP_VOFFSET
+ a35cH
+ MAT_MAP_ANG
+ a360H
+ MAT_MAP_COL1
+ a362H
+ MAT_MAP_COL2
+ a364H
+ MAT_MAP_RCOL
+ a366H
+ MAT_MAP_GCOL
+ a368H
+ MAT_MAP_BCOL
+ afffH
+ MAT_ENTRY
+
+
+
+BxxxH Group
+
+ b000H
+ KFDATA; followed by kfhdr
+ b001H
+ AMBIENT_NODE_TAG
+ b002H
+ OBJECT_NODE_TAG; followed by node_hdr, pivot, pos_track_tag,
+ rot_track_tag, scl_track_tag, morph_smooth...
+ b003H
+ CAMERA_NODE_TAG; followed by node_hdr, pos_track_tag, fov_track_tag,
+ roll_track_tag...
+ b004H
+ TARGET_NODE_TAG; followed by node_hdr, pos_track_tag...
+ b005H
+ LIGHT_NODE_TAG; followed by node_hdr, pos_track_tag, col_track_tag...
+ b006H
+ L_TARGET_NODE_TAG; followed by node_id, node_hdr, pos_track_tag
+ b007H
+ SPOTLIGHT_NODE_TAG; followed by node_id, node_hdr, pos_track_tag,
+ hot_track_tag, fall_track_tag, roll_track_tag, col_track_tag...
+ b008H
+ KFSEG
+ short start, end;
+ b009H
+ KFCURTIME
+ short curframe;
+ b00aH
+ KFHDR followed by viewport_layout, kfseg, kfcurtime, object_node_tag,
+ light_node_tag, target_node_tag, camera_node_tag, l_target_node_tag,
+ spotlight_node_tag, ambient_node_tag...
+ short revision;
+ cstr filename;
+ short animlen;
+ b010H
+ NODE_HDR
+ cstr objname;
+ short flags1;
+ short flags2;
+ short heirarchy; ?
+ b011H
+ INSTANCE_NAME
+ b012H
+ PRESCALE
+ b013H
+ PIVOT
+ float pivot_x, pivot_y, pivot_z;
+ b014H
+ BOUNDBOX
+ b015H
+ MORPH_SMOOTH
+ float morph_smoothing_angle_rad;
+ b020H
+ POS_TRACK_TAG
+ short flags;
+ short unknown[4];
+ short keys;
+ short unknown;
+ struct {
+ short framenum;
+ long unknown;
+ float pos_x, pos_y, pos_z;
+ } pos[keys];
+ b021H
+ ROT_TRACK_TAG
+ short flags;
+ short unknown[4];
+ short keys;
+ short unknown;
+ struct {
+ short framenum;
+ long unknown;
+ float rotation_rad;
+ float axis_x, axis_y, axis_z;
+ } rot[keys];
+ b022H
+ SCL_TRACK_TAG
+ short flags;
+ short unknown[4];
+ short keys;
+ short unknown;
+ struct {
+ short framenum;
+ long unknown;
+ float scale_x, scale_y, scale_z;
+ } scale[keys];
+ b023H
+ FOV_TRACK_TAG
+ short flags;
+ short unknown[4];
+ short keys;
+ short unknown;
+ struct {
+ short framenum;
+ long unknown;
+ float camera_field_of_view;
+ } fov[keys]
+ b024H
+ ROLL_TRACK_TAG
+ short flags;
+ short unknown[4];
+ short keys;
+ short unknown;
+ struct {
+ short framenum;
+ long unknown;
+ float camera_roll;
+ } roll[keys];
+ b025H
+ COL_TRACK_TAG
+ short flags;
+ short unknown[4];
+ short keys;
+ short unknown;
+ struct {
+ short framenum;
+ long unknown;
+ float red, rgn, blu;
+ } color[keys];
+ b026H
+ MORPH_TRACK_TAG
+ short flags;
+ short unknown[4];
+ short keys;
+ short unknown;
+ struct {
+ short framenum;
+ long unknown;
+ cstr obj_name;
+ } morph[keys];
+ b027H
+ HOT_TRACK_TAG
+ short flags;
+ short unknown[4];
+ short keys;
+ short unknown;
+ struct {
+ short framenum;
+ long unknown;
+ float hotspot_ang;
+ } hotspot[keys];
+ b028H
+ FALL_TRACK_TAG
+ short flags;
+ short unknown[4];
+ short keys;
+ short unknown;
+ struct {
+ short framenum;
+ long unknown;
+ float falloff_ang;
+ } falloff[keys];
+ b029H
+ HIDE_TRACK_TAG
+ b030H
+ NODE_ID
+ short id;
+
+
+
+CxxxH Group
+
+ c010H
+ C_MDRAWER
+ c020H
+ C_TDRAWER
+ c030H
+ C_SHPDRAWER
+ c040H
+ C_MODDRAWER
+ c050H
+ C_RIPDRAWER
+ c060H
+ C_TXDRAWER
+ c062H
+ C_PDRAWER
+ c064H
+ C_MTLDRAWER
+ c066H
+ C_FLIDRAWER
+ c067H
+ C_CUBDRAWER
+ c070H
+ C_MFILE
+ c080H
+ C_SHPFILE
+ c090H
+ C_MODFILE
+ c0a0H
+ C_RIPFILE
+ c0b0H
+ C_TXFILE
+ c0b2H
+ C_PFILE
+ c0b4H
+ C_MTLFILE
+ c0b6H
+ C_FLIFILE
+ c0b8H
+ C_PALFILE
+ c0c0H
+ C_TX_STRING
+ c0d0H
+ C_CONSTS
+ c0e0H
+ C_SNAPS
+ c0f0H
+ C_GRIDS
+ c100H
+ C_ASNAPS
+ c110H
+ C_GRID_RANGE
+ c120H
+ C_RENDTYPE
+ c130H
+ C_PROGMODE
+ c140H
+ C_PREVMODE
+ c150H
+ C_MODWMODE
+ c160H
+ C_MODMODEL
+ c170H
+ C_ALL_LINES
+ c180H
+ C_BACK_TYPE
+ c190H
+ C_MD_CS
+ c1a0H
+ C_MD_CE
+ c1b0H
+ C_MD_SML
+ c1c0H
+ C_MD_SMW
+ c1c3H
+ C_LOFT_WITH_TEXTURE
+ c1c4H
+ C_LOFT_L_REPEAT
+ c1c5H
+ C_LOFT_W_REPEAT
+ c1c6H
+ C_LOFT_UV_NORMALIZE
+ c1c7H
+ C_WELD_LOFT
+ c1d0H
+ C_MD_PDET
+ c1e0H
+ C_MD_SDET
+ c1f0H
+ C_RGB_RMODE
+ c200H
+ C_RGB_HIDE
+ c202H
+ C_RGB_MAPSW
+ c204H
+ C_RGB_TWOSIDE
+ c208H
+ C_RGB_SHADOW
+ c210H
+ C_RGB_AA
+ c220H
+ C_RGB_OVW
+ c230H
+ C_RGB_OVH
+ c23dH
+ CMAGIC
+ c240H
+ C_RGB_PICTYPE
+ c250H
+ C_RGB_OUTPUT
+ c253H
+ C_RGB_TODISK
+ c254H
+ C_RGB_COMPRESS
+ c255H
+ C_JPEG_COMPRESSION
+ c256H
+ C_RGB_DISPDEV
+ c259H
+ C_RGB_HARDDEV
+ c25aH
+ C_RGB_PATH
+ c25bH
+ C_BITMAP_DRAWER
+ c260H
+ C_RGB_FILE
+ c270H
+ C_RGB_OVASPECT
+ c271H
+ C_RGB_ANIMTYPE
+ c272H
+ C_RENDER_ALL
+ c273H
+ C_REND_FROM
+ c274H
+ C_REND_TO
+ c275H
+ C_REND_NTH
+ c276H
+ C_PAL_TYPE
+ c277H
+ C_RND_TURBO
+ c278H
+ C_RND_MIP
+ c279H
+ C_BGND_METHOD
+ c27aH
+ C_AUTO_REFLECT
+ c27bH
+ C_VP_FROM
+ c27cH
+ C_VP_TO
+ c27dH
+ C_VP_NTH
+ c27eH
+ C_REND_TSTEP
+ c27fH
+ C_VP_TSTEP
+ c280H
+ C_SRDIAM
+ c290H
+ C_SRDEG
+ c2a0H
+ C_SRSEG
+ c2b0H
+ C_SRDIR
+ c2c0H
+ C_HETOP
+ c2d0H
+ C_HEBOT
+ c2e0H
+ C_HEHT
+ c2f0H
+ C_HETURNS
+ c300H
+ C_HEDEG
+ c310H
+ C_HESEG
+ c320H
+ C_HEDIR
+ c330H
+ C_QUIKSTUFF
+ c340H
+ C_SEE_LIGHTS
+ c350H
+ C_SEE_CAMERAS
+ c360H
+ C_SEE_3D
+ c370H
+ C_MESHSEL
+ c380H
+ C_MESHUNSEL
+ c390H
+ C_POLYSEL
+ c3a0H
+ C_POLYUNSEL
+ c3a2H
+ C_SHPLOCAL
+ c3a4H
+ C_MSHLOCAL
+ c3b0H
+ C_NUM_FORMAT
+ c3c0H
+ C_ARCH_DENOM
+ c3d0H
+ C_IN_DEVICE
+ c3e0H
+ C_MSCALE
+ c3f0H
+ C_COMM_PORT
+ c400H
+ C_TAB_BASES
+ c410H
+ C_TAB_DIVS
+ c420H
+ C_MASTER_SCALES
+ c430H
+ C_SHOW_1STVERT
+ c440H
+ C_SHAPER_OK
+ c450H
+ C_LOFTER_OK
+ c460H
+ C_EDITOR_OK
+ c470H
+ C_KEYFRAMER_OK
+ c480H
+ C_PICKSIZE
+ c490H
+ C_MAPTYPE
+ c4a0H
+ C_MAP_DISPLAY
+ c4b0H
+ C_TILE_XY
+ c4c0H
+ C_MAP_XYZ
+ c4d0H
+ C_MAP_SCALE
+ c4e0H
+ C_MAP_MATRIX_OLD
+ c4e1H
+ C_MAP_MATRIX
+ c4f0H
+ C_MAP_WID_HT
+ c500H
+ C_OBNAME
+ c510H
+ C_CAMNAME
+ c520H
+ C_LTNAME
+ c525H
+ C_CUR_MNAME
+ c526H
+ C_CURMTL_FROM_MESH
+ c527H
+ C_GET_SHAPE_MAKE_FACES
+ c530H
+ C_DETAIL
+ c540H
+ C_VERTMARK
+ c550H
+ C_MSHAX
+ c560H
+ C_MSHCP
+ c570H
+ C_USERAX
+ c580H
+ C_SHOOK
+ c590H
+ C_RAX
+ c5a0H
+ C_STAPE
+ c5b0H
+ C_LTAPE
+ c5c0H
+ C_ETAPE
+ c5c8H
+ C_KTAPE
+ c5d0H
+ C_SPHSEGS
+ c5e0H
+ C_GEOSMOOTH
+ c5f0H
+ C_HEMISEGS
+ c600H
+ C_PRISMSEGS
+ c610H
+ C_PRISMSIDES
+ c620H
+ C_TUBESEGS
+ c630H
+ C_TUBESIDES
+ c640H
+ C_TORSEGS
+ c650H
+ C_TORSIDES
+ c660H
+ C_CONESIDES
+ c661H
+ C_CONESEGS
+ c670H
+ C_NGPARMS
+ c680H
+ C_PTHLEVEL
+ c690H
+ C_MSCSYM
+ c6a0H
+ C_MFTSYM
+ c6b0H
+ C_MTTSYM
+ c6c0H
+ C_SMOOTHING
+ c6d0H
+ C_MODICOUNT
+ c6e0H
+ C_FONTSEL
+ c6f0H
+ C_TESS_TYPE
+ c6f1H
+ C_TESS_TENSION
+ c700H
+ C_SEG_START
+ c705H
+ C_SEG_END
+ c710H
+ C_CURTIME
+ c715H
+ C_ANIMLENGTH
+ c720H
+ C_PV_FROM
+ c725H
+ C_PV_TO
+ c730H
+ C_PV_DOFNUM
+ c735H
+ C_PV_RNG
+ c740H
+ C_PV_NTH
+ c745H
+ C_PV_TYPE
+ c750H
+ C_PV_METHOD
+ c755H
+ C_PV_FPS
+ c765H
+ C_VTR_FRAMES
+ c770H
+ C_VTR_HDTL
+ c771H
+ C_VTR_HD
+ c772H
+ C_VTR_TL
+ c775H
+ C_VTR_IN
+ c780H
+ C_VTR_PK
+ c785H
+ C_VTR_SH
+ c790H
+ C_WORK_MTLS
+ c792H
+ C_WORK_MTLS_2
+ c793H
+ C_WORK_MTLS_3
+ c794H
+ C_WORK_MTLS_4
+ c7a1H
+ C_BGTYPE
+ c7b0H
+ C_MEDTILE
+ c7d0H
+ C_LO_CONTRAST
+ c7d1H
+ C_HI_CONTRAST
+ c7e0H
+ C_FROZ_DISPLAY
+ c7f0H
+ C_BOOLWELD
+ c7f1H
+ C_BOOLTYPE
+ c900H
+ C_ANG_THRESH
+ c901H
+ C_SS_THRESH
+ c903H
+ C_TEXTURE_BLUR_DEFAULT
+ ca00H
+ C_MAPDRAWER
+ ca01H
+ C_MAPDRAWER1
+ ca02H
+ C_MAPDRAWER2
+ ca03H
+ C_MAPDRAWER3
+ ca04H
+ C_MAPDRAWER4
+ ca05H
+ C_MAPDRAWER5
+ ca06H
+ C_MAPDRAWER6
+ ca07H
+ C_MAPDRAWER7
+ ca08H
+ C_MAPDRAWER8
+ ca09H
+ C_MAPDRAWER9
+ ca10H
+ C_MAPDRAWER_ENTRY
+ ca20H
+ C_BACKUP_FILE
+ ca21H
+ C_DITHER_256
+ ca22H
+ C_SAVE_LAST
+ ca23H
+ C_USE_ALPHA
+ ca24H
+ C_TGA_DEPTH
+ ca25H
+ C_REND_FIELDS
+ ca26H
+ C_REFLIP
+ ca27H
+ C_SEL_ITEMTOG
+ ca28H
+ C_SEL_RESET
+ ca29H
+ C_STICKY_KEYINF
+ ca2aH
+ C_WELD_THRESHOLD
+ ca2bH
+ C_ZCLIP_POINT
+ ca2cH
+ C_ALPHA_SPLIT
+ ca30H
+ C_KF_SHOW_BACKFACE
+ ca40H
+ C_OPTIMIZE_LOFT
+ ca42H
+ C_TENS_DEFAULT
+ ca44H
+ C_CONT_DEFAULT
+ ca46H
+ C_BIAS_DEFAULT
+ ca50H
+ C_DXFNAME_SRC
+ ca60H
+ C_AUTO_WELD
+ ca70H
+ C_AUTO_UNIFY
+ ca80H
+ C_AUTO_SMOOTH
+ ca90H
+ C_DXF_SMOOTH_ANG
+ caa0H
+ C_SMOOTH_ANG
+ cb00H
+ C_WORK_MTLS_5
+ cb01H
+ C_WORK_MTLS_6
+ cb02H
+ C_WORK_MTLS_7
+ cb03H
+ C_WORK_MTLS_8
+ cb04H
+ C_WORKMTL
+ cb10H
+ C_SXP_TEXT_DATA
+ cb11H
+ C_SXP_OPAC_DATA
+ cb12H
+ C_SXP_BUMP_DATA
+ cb13H
+ C_SXP_SHIN_DATA
+ cb20H
+ C_SXP_TEXT2_DATA
+ cb24H
+ C_SXP_SPEC_DATA
+ cb28H
+ C_SXP_SELFI_DATA
+ cb30H
+ C_SXP_TEXT_MASKDATA
+ cb32H
+ C_SXP_TEXT2_MASKDATA
+ cb34H
+ C_SXP_OPAC_MASKDATA
+ cb36H
+ C_SXP_BUMP_MASKDATA
+ cb38H
+ C_SXP_SPEC_MASKDATA
+ cb3aH
+ C_SXP_SHIN_MASKDATA
+ cb3eH
+ C_SXP_REFL_MASKDATA
+ cc00H
+ C_NET_USE_VPOST
+ cc10H
+ C_NET_USE_GAMMA
+ cc20H
+ C_NET_FIELD_ORDER
+ cd00H
+ C_BLUR_FRAMES
+ cd10H
+ C_BLUR_SAMPLES
+ cd20H
+ C_BLUR_DUR
+ cd30H
+ C_HOT_METHOD
+ cd40H
+ C_HOT_CHECK
+ cd50H
+ C_PIXEL_SIZE
+ cd60H
+ C_DISP_GAMMA
+ cd70H
+ C_FBUF_GAMMA
+ cd80H
+ C_FILE_OUT_GAMMA
+ cd82H
+ C_FILE_IN_GAMMA
+ cd84H
+ C_GAMMA_CORRECT
+ cd90H
+ C_APPLY_DISP_GAMMA
+ cda0H
+ C_APPLY_FBUF_GAMMA
+ cdb0H
+ C_APPLY_FILE_GAMMA
+ cdc0H
+ C_FORCE_WIRE
+ cdd0H
+ C_RAY_SHADOWS
+ cde0H
+ C_MASTER_AMBIENT
+ cdf0H
+ C_SUPER_SAMPLE
+ ce00H
+ C_OBJECT_MBLUR
+ ce10H
+ C_MBLUR_DITHER
+ ce20H
+ C_DITHER_24
+ ce30H
+ C_SUPER_BLACK
+ ce40H
+ C_SAFE_FRAME
+ ce50H
+ C_VIEW_PRES_RATIO
+ ce60H
+ C_BGND_PRES_RATIO
+ ce70H
+ C_NTH_SERIAL_NUM
+
+
+
+DxxxH Group
+
+ d000H
+ VPDATA
+ d100H
+ P_QUEUE_ENTRY
+ d110H
+ P_QUEUE_IMAGE
+ d114H
+ P_QUEUE_USEIGAMMA
+ d120H
+ P_QUEUE_PROC
+ d130H
+ P_QUEUE_SOLID
+ d140H
+ P_QUEUE_GRADIENT
+ d150H
+ P_QUEUE_KF
+ d152H
+ P_QUEUE_MOTBLUR
+ d153H
+ P_QUEUE_MB_REPEAT
+ d160H
+ P_QUEUE_NONE
+ d180H
+ P_QUEUE_RESIZE
+ d185H
+ P_QUEUE_OFFSET
+ d190H
+ P_QUEUE_ALIGN
+ d1a0H
+ P_CUSTOM_SIZE
+ d210H
+ P_ALPH_NONE
+ d220H
+ P_ALPH_PSEUDO
+ d221H
+ P_ALPH_OP_PSEUDO
+ d222H
+ P_ALPH_BLUR
+ d225H
+ P_ALPH_PCOL
+ d230H
+ P_ALPH_C0
+ d231H
+ P_ALPH_OP_KEY
+ d235H
+ P_ALPH_KCOL
+ d238H
+ P_ALPH_OP_NOCONV
+ d240H
+ P_ALPH_IMAGE
+ d250H
+ P_ALPH_ALPHA
+ d260H
+ P_ALPH_QUES
+ d265H
+ P_ALPH_QUEIMG
+ d270H
+ P_ALPH_CUTOFF
+ d280H
+ P_ALPHANEG
+ d300H
+ P_TRAN_NONE
+ d310H
+ P_TRAN_IMAGE
+ d312H
+ P_TRAN_FRAMES
+ d320H
+ P_TRAN_FADEIN
+ d330H
+ P_TRAN_FADEOUT
+ d340H
+ P_TRANNEG
+ d400H
+ P_RANGES
+ d500H
+ P_PROC_DATA
+
+
+
+FxxxH Group
+
+ f020H
+ POS_TRACK_TAG_KEY
+ f021H
+ ROT_TRACK_TAG_KEY
+ f022H
+ SCL_TRACK_TAG_KEY
+ f023H
+ FOV_TRACK_TAG_KEY
+ f024H
+ ROLL_TRACK_TAG_KEY
+ f025H
+ COL_TRACK_TAG_KEY
+ f026H
+ MORPH_TRACK_TAG_KEY
+ f027H
+ HOT_TRACK_TAG_KEY
+ f028H
+ FALL_TRACK_TAG_KEY
+ f110H
+ POINT_ARRAY_ENTRY
+ f111H
+ POINT_FLAG_ARRAY_ENTRY
+ f120H
+ FACE_ARRAY_ENTRY
+ f130H
+ MSH_MAT_GROUP_ENTRY
+ f140H
+ TEX_VERTS_ENTRY
+ f150H
+ SMOOTH_GROUP_ENTRY
+ ffffH
+ DUMMY
+
+
+
+
+
+
+
+The Unofficial 3DStudio 3DS File Format / CR-MM / mediatel-admin@mediatel.lu
+
+
+
+
+--------------------------------------------------------------------------------
+
+
+Comments? Send them to: webmaster@filespecs.com
+
+
+Copyright 2001 BreakPoint Software, Inc. All Rights Reserved.
+