Also Known As: 3DS, ASC
Type | Scene |
Colors | Unlimited |
Compression | None |
Maximum Image Size | None |
Multiple Images Per File | NA |
Numerical Format | Multiple |
Originator | Autodesk |
Platform | MS-DOS |
Supporting Applications | 3D Studio, Caligari trueSpace, other 3D programs |
See Also | None |
Usage
Storage of 3D scene information for use by rendering
applications.
Comments
Autodesk 3D Studio has come to be used as an
interchange format. Many 3D modeling and rendering applications
read and write 3DS, as well as their own formats. Why this is so
is not clear but may be due to Autodesk 3D Studio's longevity
and visibility in the market. The program implements a large
number of functions, however, and this is reflected in the
file.
Autodesk 3D Studio (3DS) is a relatively high-end program used for the modeling and rendering of 3D scenes. It runs under MS-DOS and uses a third-party memory manager to make optimum use of the resources available on the PC platform. Output compares favorably to many higher end platforms. It has thus become one of the platforms of choice for people doing detailed construction of 3D scenes.
Contents:
File Organization
File Details
For Further Information
Unfortunately, Autodesk has chosen to make information about this format available only through purchase of their developer's kit. Information for this article was accordingly obtained from public sources and is necessarily incomplete. We would appreciate any further information available on this format.
There are two formats used by 3D Studio:
Both are used as interchange formats. This article concentrates on the binary version of the file, because the ASCII version is usually used for the storage of object definitions and closely follows the tags defined in the binary version. At the end of this article, we provide an example of a simple ASC file.
3DS files consist of tags, called chunks by Autodesk. Each chunk consists of an ID value and an offset to the start of the next chunk. Data associated with each chunk follows the ID and offset information.
typedef struct _CHUNK { WORD Chunk_ID; /* Tag type */ DWORD Chunk_length; /* Relative offset in bytes to next chunk */ } CHUNK;
Chunks are classified as either Primary, Main, or Subordinate and are arranged in a hierarchy as follows:
Primary Chunk Main Chunk #1 Subordinate Chunk #1 Subordinate Chunk #2
.
.
.
Main Chunk #2 Subordinate Chunk #1 Subordinate Chunk #2
.
.
.
Main Chunk #3
.
.
.
The Main chunks are said to be "owned" by the Primary chunk, and the Subordinate chunks associated with the Main chunks are owned by the Main chunk. Note that many of the chunks defined below are associated with the behavior of 3D Studio at run-time. They are listed here because your rendering application or file conversion program may be able to make use of them as clues to the appearance and behavior of the objects found in the file.
There is only one Primary chunk per file, located at the start of the file. Following the Primary chunk tag is the first Main tag. The chunk_length field of Main chunk tags is generally an offset to the next Main chunk.
Following each Main chunk tag is data associated with the Main chunk and/or Subordinate chunk tags. Thus, the reader/parser must understand the format and length of the data associated with each Main chunk in order to extract information contained in Subordinate chunks owned by the Main chunk.
The first tag of the file, the Primary chunk, has an ID of 4D4Dh. Beneath the Primary chunk in the tag hierarchy are Main chunks.
Table Autodesk 3D Studio-1 lists the possible chunks known at this time:
ID | Name | Data Type | Description |
---|---|---|---|
0000 |
NULL_CHUNK |
NA |
|
0001 |
unknown |
(possibly FLOAT) |
|
0002 |
M3D_VERSION |
SHORT |
Version |
0005 |
M3D_KFVERSION |
NA |
|
0010 |
COLOR_F |
FLOAT R,G,B |
Floating-point color description |
0011 |
COLOR_24 |
BYTE R,G,B |
24-bit color description |
0012 |
LIN_COLOR_24 |
BYTE R,G,B |
24-bit color description |
0013 |
LIN_COLOR_F |
FLOAT R,G,B |
Floating-point color description |
0030 |
INT_PERCENTAGE |
SHORT |
Percentage value |
0031 |
FLOAT_PERCENTAGE |
FLOAT |
Percentage value |
0100 |
MASTER_SCALE |
FLOAT |
Scale factor |
0995 |
ChunkType |
NA |
|
0996 |
ChunkUnique |
NA |
|
0997 |
NotChunk |
NA |
|
0998 |
Container |
NA |
|
0999 |
IsChunk |
NA |
|
0c3c |
C_SXP_SELFI_MASKDATA |
NA |
|
1100 |
BIT_MAP |
CHAR[] |
0-terminated ASCII string |
1101 |
USE_BIT_MAP |
NA |
|
1200 |
SOLID_BGND |
FLOAT R,G,B |
|
1201 |
USE_SOLID_BGND |
NA |
|
1300 |
V_GRADIENT |
FLOAT |
Midpoint of gradient |
1301 |
USE_V_GRADIENT |
NA |
|
1400 |
LO_SHADOW_BIAS |
FLOAT |
Bias |
1410 |
HI_SHADOW_BIAS |
NA |
|
1420 |
SHADOW_MAP_SIZE |
SHORT |
Size |
1430 |
SHADOW_SAMPLES |
NA |
|
1430 |
SHADOW_RANGE |
NA |
|
1430 |
SHADOW_FILTER |
FLOAT |
Filter |
1460 |
RAY_BIAS |
FLOAT |
Bias |
1500 |
O_CONSTS |
FLOAT x,y,z |
Plane values |
2100 |
AMBIENT_LIGHT |
NA |
|
2200 |
FOG |
FLOAT[4] |
near_plane, near_density, far_plane, far_density |
2201 |
USE_FOG |
NA |
|
2210 |
FOG_BGND |
NA |
|
2300 |
DISTANCE_CUE |
FLOAT[4] |
near_plane, near_density, far_plane, far_density |
2301 |
USE_DISTANCE_CUE |
NA |
|
2302 |
LAYER_FOG |
FLOAT[3], |
fog_z_from, fog_z_to, fog_density |
|
|
SHORT |
fog_type |
2303 |
USE_LAYER_FOG |
NA |
|
2310 |
DCUE_BGND |
NA |
|
2d2d |
SMAGIC |
NA |
|
2d3d |
LMAGIC |
NA |
|
3000 |
DEFAULT_VIEW |
NA |
|
3010 |
VIEW_TOP |
FLOAT[4] |
target_x, target_y, target_z, view_width |
3020 |
VIEW_BOTTOM |
FLOAT[4] |
target_x, target_y, target_z, view_width |
3030 |
VIEW_LEFT |
FLOAT[4] |
target_x, target_y, target_z, view_width |
3040 |
VIEW_RIGHT |
FLOAT[4] |
target_x, target_y, target_z, view_width |
3050 |
VIEW_FRONT |
FLOAT[4] |
target_x, target_y, target_z, view_width |
3060 |
VIEW_BACK |
FLOAT[4] |
target_x, target_y, target_z, view_width |
3070 |
VIEW_USER |
FLOAT[4] |
target_x, target_y, target_z, view_width |
3080 |
VIEW_CAMERA |
CHAR[] |
0-terminated ASCII string |
3090 |
VIEW_WINDOW |
NA |
|
3d3d |
MDATA |
WORD |
Mesh data magic number 4d4d |
3d3e |
MESH_VERSION |
NA |
|
3daa |
MLIBMAGIC |
WORD |
Material library magic number |
3dc2 |
PRJMAGIC |
WORD |
Project number magic number |
3dff |
MATMAGIC |
WORD |
Material file magic number |
4000 |
NAMED_OBJECT |
CHAR[] |
0-terminated ASCII string |
4010 |
OBJ_HIDDEN |
NA |
|
4011 |
OBJ_VIS_LOFTER |
NA |
|
4012 |
OBJ_DOESNT_CAST |
NA |
|
4013 |
OBJ_MATTE |
NA |
|
4014 |
OBJ_FAST |
NA |
|
4015 |
OBJ_PROCEDURAL |
NA |
|
4016 |
OBJ_FROZEN |
NA |
|
4017 |
OBJ_DONT_RCVSHADOW |
NA |
|
4100 |
N_TRI_OBJECT |
NA |
Named triangle object |
4110 |
POINT_ARRAY |
SHORT, |
Number of points |
|
|
POINT[] |
Array of POINT structs |
4111 |
POINT_FLAG_ARRAY |
SHORT, |
Number of flags |
|
|
SHORT[] |
Array of SHORT flags |
4120 |
FACE_ARRAY |
SHORT, |
Number of faces |
|
|
FACE[] |
Array of FACE structs |
4130 |
MSH_MAT_GROUP |
CHAR[], |
Material name |
|
|
SHORT, |
Number of faces |
|
|
SHORT[] |
Face numbers |
4140 |
TEX_VERTS |
SHORT, |
Number of vertices |
|
|
VERTEX[] |
Array of VERTEX structs |
4150 |
SMOOTH_GROUP |
SHORT[] |
Groups = faces x 4 |
4160 |
MESH_MATRIX |
FLOAT[4][3] |
4x3 FLOAT matrix |
4170 |
MESH_TEXTURE_INFO |
SHORT, |
map_type |
|
|
FLOAT[2], |
x_tiling, y_tiling |
|
|
FLOAT[3], |
icon_x, icon_y, icon_z |
|
|
FLOAT[4][3], |
4x3 FLOAT matrix |
|
|
FLOAT[4] |
scaling, plan_icon_w, plan_icon_h, cyl_icon_h |
4181 |
PROC_NAME |
NA |
|
4182 |
PROC_DATA |
NA |
|
4190 |
MSH_BOXMAP |
NA |
|
4400 |
N_D_L_OLD |
NA |
|
4500 |
N_CAM_OLD |
NA |
|
4600 |
N_DIRECT_LIGHT |
FLOAT[3] |
x,y,z of light |
4610 |
DL_SPOTLIGHT |
FLOAT[5] |
target_x, target_y, target_z, hotspot_ang, falloff_ang |
4620 |
DL_OFF |
NA |
|
4625 |
DL_ATTENUATE |
NA |
|
4627 |
DL_RAYSHAD |
NA |
|
4630 |
DL_SHADOWED |
NA |
|
4640 |
DL_LOCAL_SHADOW |
NA |
|
4641 |
DL_LOCAL_SHADOW2 |
NA |
|
4650 |
DL_SEE_CONE |
NA |
|
4651 |
DL_SPOT_RECTANGULAR |
NA |
|
4652 |
DL_SPOT_OVERSHOOT |
NA |
|
4653 |
DL_SPOT_PROJECTOR |
NA |
|
4654 |
DL_EXCLUDE |
NA |
|
4655 |
DL_RANGE |
NA |
|
4656 |
DL_SPOT_ROLL |
FLOAT |
Roll angle |
4657 |
DL_SPOT_ASPECT |
NA |
|
4658 |
DL_RAY_BIAS |
FLOAT |
Bias |
4659 |
DL_INNER_RANGE |
FLOAT |
Range |
465a |
DL_OUTER_RANGE |
FLOAT |
Range |
465b |
DL_MULTIPLIER |
FLOAT |
Multiplier value |
4680 |
N_AMBIENT_LIGHT |
NA |
|
4700 |
N_CAMERA |
FLOAT[3], |
camera_x, camera_y, camera_z |
|
|
FLOAT[3], |
target_x, target_y, target_z |
|
|
FLOAT[2] |
bank_angle, focus |
4710 |
CAM_SEE_CONE |
NA |
|
4720 |
CAM_RANGES |
FLOAT[2] |
near_range, far_range |
4d4d |
M3DMAGIC |
NA |
3DS file magic number |
4f00 |
HIERARCHY |
NA |
|
4f10 |
PARENT_OBJECT |
NA |
|
4f20 |
PIVOT_OBJECT |
NA |
|
4f30 |
PIVOT_LIMITS |
NA |
|
4f40 |
PIVOT_ORDER |
NA |
|
4f50 |
XLATE_RANGE |
NA |
|
5000 |
POLY_2D |
NA |
|
5010 |
SHAPE_OK |
NA |
|
5011 |
SHAPE_NOT_OK |
NA |
|
5020 |
SHAPE_HOOK |
NA |
|
6000 |
PATH_3D |
NA |
|
6005 |
PATH_MATRIX |
NA |
|
6010 |
SHAPE_2D |
NA |
|
6020 |
M_SCALE |
NA |
|
6030 |
M_TWIST |
NA |
|
6040 |
M_TEETER |
NA |
|
6050 |
M_FIT |
NA |
|
6060 |
M_BEVEL |
NA |
|
6070 |
XZ_CURVE |
NA |
|
6080 |
YZ_CURVE |
NA |
|
6090 |
INTERPCT |
NA |
|
60a0 |
DEFORM_LIMIT |
NA |
|
6100 |
USE_CONTOUR |
NA |
|
6110 |
USE_TWEEN |
NA |
|
6120 |
USE_SCALE |
NA |
|
6130 |
USE_TWIST |
NA |
|
6140 |
USE_TEETER |
NA |
|
6150 |
USE_FIT |
NA |
|
6160 |
USE_BEVEL |
NA |
|
7000 |
VIEWPORT_LAYOUT_OLD |
NA |
|
7001 |
VIEWPORT_LAYOUT |
SHORT[7] |
form, top, ready, wstate, swapws, swapport, swapcur |
7010 |
VIEWPORT_DATA_OLD |
NA |
|
7011 |
VIEWPORT_DATA |
SHORT[7], |
flags, axis_lockout, win_x, win_y, win_w, win_h, win_view |
|
|
FLOAT[6], |
zoom, worldcenter_x, worldcenter_y, worldcenter_z, horiz_and, vert_ang |
|
|
CHAR[] |
0-terminated ASCII string--camera name |
7011 |
VIEWPORT_DATA_3 |
SHORT[7], |
flags, axis_lockout, win_x, win_y, win_w, win_h, win_view |
|
|
FLOAT[6], |
zoom, worldcenter_x, worldcenter_y, worldcenter_z, horiz_and, vert_ang |
|
|
CHAR[] |
0-terminated ASCII string--camera name |
7020 |
VIEWPORT_SIZE |
SHORT[4] |
x,y,width,height |
7030 |
NETWORK_VIEW |
NA |
|
8000 |
XDATA_SECTION |
NA |
|
8001 |
XDATA_ENTRY |
NA |
|
8002 |
XDATA_APPNAME |
NA |
|
8003 |
XDATA_STRING |
NA |
|
8004 |
XDATA_FLOAT |
NA |
|
8005 |
XDATA_DOUBLE |
NA |
|
8006 |
XDATA_SHORT |
NA |
|
8007 |
XDATA_LONG |
NA |
|
8008 |
XDATA_VOID |
NA |
|
8009 |
XDATA_GROUP |
NA |
|
800a |
XDATA_RFU6 |
NA |
|
800b |
XDATA_RFU5 |
NA |
|
800c |
XDATA_RFU4 |
NA |
|
800d |
XDATA_RFU3 |
NA |
|
800e |
XDATA_RFU2 |
NA |
|
800f |
XDATA_RFU1 |
NA |
|
80f0 |
PARENT_NAME |
NA |
|
a000 |
MAT_NAME |
CHAR[] |
0-terminated ASCII string--material name |
a010 |
MAT_AMBIENT |
NA |
|
a020 |
MAT_DIFFUSE |
NA |
|
a030 |
MAT_SPECULAR |
NA |
|
a040 |
MAT_SHININESS |
NA |
|
a041 |
MAT_SHIN2PCT |
NA |
|
a042 |
MAT_SHIN3PCT |
NA |
|
a050 |
MAT_TRANSPARENCY |
NA |
|
a052 |
MAT_XPFALL |
NA |
|
a053 |
MAT_REFBLUR |
NA |
|
a080 |
MAT_SELF_ILLUM |
NA |
|
a081 |
MAT_TWO_SIDE |
NA |
|
a082 |
MAT_DECAL |
NA |
|
a083 |
MAT_ADDITIVE |
NA |
|
a084 |
MAT_SELF_ILPCT |
NA |
|
a085 |
MAT_WIRE |
NA |
|
a086 |
MAT_SUPERSMP |
NA |
|
a087 |
MAT_WIRESIZE |
FLOAT |
Wire size |
a088 |
MAT_FACEMAP |
NA |
|
a08a |
MAT_XPFALLIN |
NA |
|
a08c |
MAT_PHONGSOFT |
NA |
|
a08e |
MAT_WIREABS |
NA |
|
a100 |
MAT_SHADING |
SHORT |
Shading value |
a200 |
MAT_TEXMAP |
NA |
|
a204 |
MAT_SPECMAP |
NA |
|
a210 |
MAT_OPACMAP |
NA |
|
a220 |
MAT_REFLMAP |
NA |
|
a230 |
MAT_BUMPMAP |
NA |
|
a240 |
MAT_USE_XPFALL |
NA |
|
a250 |
MAT_USE_REFBLUR |
NA |
|
a252 |
MAT_BUMP_PERCENT |
NA |
|
a300 |
MAT_MAPNAME |
CHAR[] |
0-terminated ASCII filename |
a310 |
MAT_ACUBIC |
NA |
|
a320 |
MAT_SXP_TEXT_DATA |
NA |
|
a321 |
MAT_SXP_TEXT2_DATA |
NA |
|
a322 |
MAT_SXP_OPAC_DATA |
NA |
|
a324 |
MAT_SXP_BUMP_DATA |
NA |
|
a325 |
MAT_SXP_SPEC_DATA |
NA |
|
a326 |
MAT_SXP_SHIN_DATA |
NA |
|
a328 |
MAT_SXP_SELF1_DATA |
NA |
|
a32a |
MAT_SXP_TEXT_DATA |
NA |
|
a32c |
MAT_SXP_TEXT2_MASKDATA |
NA |
|
a32e |
MAT_SXP_OPAC_MASKDATA |
NA |
|
a330 |
MAT_SXP_BUMP_MASKDATA |
NA |
|
a332 |
MAT_SXP_SPEC_MASKDATA |
NA |
|
a334 |
MAT_SXP_SHIN_MASKDATA |
NA |
|
a336 |
MAT_SXP_SELF1_MASKDATA |
NA |
|
a338 |
MAT_SXP_REFL_MASKDATA |
NA |
|
a33a |
MAT_TEX2MAP |
NA |
|
a33c |
MAT_SHINMAP |
NA |
|
a33d |
MAT_SELFIMAP |
NA |
|
a33e |
MAT_TEXMASK |
NA |
|
a340 |
MAT_TEX2MASK |
NA |
|
a342 |
MAT_OPACMASK |
NA |
|
a344 |
MAT_BUMPMASK |
NA |
|
a346 |
MAT_SHINMASK |
NA |
|
a348 |
MAT_SPECMASK |
NA |
|
a34a |
MAT_SELFIMASK |
NA |
|
a34c |
MAT_REFLMASK |
NA |
|
a350 |
MAT_MAP_TILINGOLD |
NA |
|
a351 |
MAT_MAP_TILING |
SHORT |
Flags |
a352 |
MAT_MAP_TEXBLUR_OLD |
NA |
|
a353 |
MAT_MAP_TEXBLUR |
FLOAT |
Blurring value |
a354 |
MAT_MAP_USCALE |
NA |
|
a356 |
MAT_MAP_VSCALE |
NA |
|
a358 |
MAT_MAP_UOFFSET |
NA |
|
a35a |
MAT_MAP_VOFFSET |
NA |
|
a35c |
MAT_MAP_ANG |
NA |
|
a360 |
MAT_MAP_COL1 |
NA |
|
a362 |
MAT_MAP_COL2 |
NA |
|
a364 |
MAT_MAP_RCOL |
NA |
|
a366 |
MAT_MAP_GCOL |
NA |
|
a368 |
MAT_MAP_BCOL |
NA |
|
afff |
MAP_ENTRY |
NA |
|
b000 |
KFDATA |
NA |
|
b001 |
AMBIENT_NODE_TAG |
NA |
|
b002 |
OBJECT_NODE_TAG |
NA |
|
b003 |
CAMERA_NODE_TAG |
NA |
|
b004 |
TARGET_NODE_TAG |
NA |
|
b005 |
LIGHT_NODE_TAG |
NA |
|
b006 |
L_TARGET_NODE_TAG |
NA |
|
b007 |
SPOTLIGHT_NODE_TAG |
NA |
|
b008 |
KFSEG |
SHORT[2] |
start, end |
b009 |
KFCURTIME |
SHORT |
curframe |
b00a |
KFHDR |
SHORT, |
Revision number |
|
|
CHAR[], |
0-terminated ASCII filename |
|
|
SHORT |
Animation length |
b010 |
NODE_HDR |
CHAR[], |
0-terminated ASCII object name |
|
|
SHORT[3] |
flags1, flags2, hierarchy |
b011 |
INSTANCE_NAME |
NA |
|
b012 |
PRESCALE |
NA |
|
b013 |
PIVOT |
FLOAT[3] |
pivot_x, pivot_y, pivot_z |
b014 |
BOUNDBOX |
NA |
|
b015 |
MORPH_SMOOTH |
FLOAT |
Smoothing angle (radians) |
b020 |
POS_TRACK_TAG |
SHORT, |
Flags |
|
|
SHORT[4], |
Unknown |
|
|
SHORT, |
Keys |
|
|
SHORT |
Unknown |
|
|
POSITION[keys] |
Array of POSITION structs |
b021 |
ROT_TRACK_TAG |
SHORT, |
Flags |
|
|
SHORT[4], |
Unknown |
|
|
SHORT, |
Keys |
|
|
SHORT, |
Unknown |
|
|
ROTATION[keys] |
Array of ROTATION structs |
b022 |
SCL_TRACK_TAG |
SHORT, |
Flags |
|
|
SHORT[4], |
Unknown |
|
|
SHORT, |
Keys |
|
|
SHORT, |
Unknown |
|
|
SCALE[keys] |
Array of SCALE structs |
b023 |
FOV_TRACK_TAG |
SHORT, |
Flags |
|
|
SHORT[4], |
Unknown |
|
|
SHORT, |
Keys |
|
|
SHORT, |
Unknown |
|
|
FOV[keys] |
Array of FOV structs |
b024 |
ROLL_TRACK_TAG |
SHORT, |
Flags |
|
|
SHORT[4], |
Unknown |
|
|
SHORT, |
Keys |
|
|
SHORT, |
Unknown |
|
|
ROLL[keys] |
Array of ROLL structs |
b025 |
COL_TRACK_TAG |
SHORT, |
Flags |
|
|
SHORT[4], |
Unknown |
|
|
SHORT, |
Keys |
|
|
SHORT, |
Unknown |
|
|
COLOR[keys] |
Array of COLOR structs |
b026 |
MORPH_TRACK_TAG |
SHORT, |
Flags |
|
|
SHORT[4], |
Unknown |
|
|
SHORT, |
Keys |
|
|
SHORT, |
Unknown |
|
|
MORPH[keys] |
Array of MORPH structs |
b027 |
HOT_TRACK_TAG |
SHORT, |
Flags |
|
|
SHORT[4], |
Unknown |
|
|
SHORT, |
Keys |
|
|
SHORT, |
Unknown |
|
|
HOTSPOT[keys] |
Array of HOTSPOT structs |
b028 |
FALL_TRACK_TAG |
SHORT, |
Flags |
|
|
SHORT[4], |
Unknown |
|
|
SHORT, |
Keys |
|
|
SHORT, |
Unknown |
|
|
FALLOFF[keys] |
Array of FALLOFF structs |
b029 |
HIDE_TRACK_TAG |
NA |
|
b030 |
NODE_ID |
SHORT |
ID value |
c010 |
C_MDRAWER |
NA |
|
c020 |
C_TDRAWER |
NA |
|
c030 |
C_SHPDRAWER |
NA |
|
c040 |
C_MODDRAWER |
NA |
|
c050 |
C_RIPDRAWER |
NA |
|
c060 |
C_TXDDRAWER |
NA |
|
c062 |
C_PDRAWER |
NA |
|
c064 |
C_MTLDRAWER |
NA |
|
c066 |
C_FLIDRAWER |
NA |
|
c067 |
C_CUBDRAWER |
NA |
|
c070 |
C_MFILE |
NA |
|
c080 |
C_SHPFILE |
NA |
|
c090 |
C_MODFILE |
NA |
|
c0a0 |
C_RIPFILE |
NA |
|
c0b0 |
C_TXFILE |
NA |
|
c0b2 |
C_PFILE |
NA |
|
c0b4 |
C_MTLFILE |
NA |
|
c0b6 |
C_FLIFILE |
NA |
|
c0b8 |
C_PALFILE |
NA |
|
c0c0 |
C_TX_STRING |
NA |
|
c0d0 |
C_CONSTS |
NA |
|
c0e0 |
C_SNAPS |
NA |
|
c0f0 |
C_GRIDS |
NA |
|
c100 |
C_ASNAPS |
NA |
|
c110 |
C_GRID_RANGE |
NA |
|
c120 |
C_RENDTYPE |
NA |
|
c130 |
C_PROGMODE |
NA |
|
c140 |
C_PREVMODE |
NA |
|
c150 |
C_MODWMODE |
NA |
|
c160 |
C_MODMODEL |
NA |
|
c170 |
C_ALL_LINES |
NA |
|
c180 |
C_BACK_TYPE |
NA |
|
c190 |
C_MD_CS |
NA |
|
c1a0 |
C_MD_CE |
NA |
|
c1b0 |
C_MD_SML |
NA |
|
c1c0 |
C_MD_SMW |
NA |
|
c1c3 |
C_LOFT_WITH_TEXTURE |
NA |
|
c1c4 |
C_LOFT_L_REPEAT |
NA |
|
c1c5 |
C_LOFT_W_REPEAT |
NA |
|
c1c6 |
C_LOFT_UV_NORMALIZE |
NA |
|
c1c7 |
C_WELD_LOFT |
NA |
|
c1d0 |
C_MD_PDET |
NA |
|
c1e0 |
C_MD_SDET |
NA |
|
c1f0 |
C_RGB_MODE |
NA |
|
c200 |
C_RGB_HIDE |
NA |
|
c202 |
C_RGB_MAPSW |
NA |
|
c204 |
C_RGB_TWOSIDE |
NA |
|
c208 |
C_RGB_SHADOW |
NA |
|
c210 |
C_RGB_AA |
NA |
|
c220 |
C_RGB_OVW |
NA |
|
c230 |
C_RGB_OVH |
NA |
|
c23d |
CMAGIC |
NA |
|
c240 |
C_RGB_PICTYPE |
NA |
|
c250 |
C_RGB_OUTPUT |
NA |
|
c253 |
C_RGB_TODISK |
NA |
|
c254 |
C_RGB_COMPRESS |
NA |
|
c255 |
C_JPEG_COMPRESSION |
NA |
|
c256 |
C_RGB_DISPDEV |
NA |
|
c259 |
C_RGB_HARDDEV |
NA |
|
c25a |
C_RGB_PATH |
NA |
|
c25b |
C_BITMAP_DRAWER |
NA |
|
c260 |
C_RGB_FILE |
NA |
|
c270 |
C_RGB_OVASPECT |
NA |
|
c271 |
C_RGB_ANIMTYPE |
NA |
|
c272 |
C_RENDER_ALL |
NA |
|
c273 |
C_REND_FROM |
NA |
|
c274 |
C_REND_TO |
NA |
|
c275 |
C_REND_NTH |
NA |
|
c276 |
C_PAL_TYPE |
NA |
|
c277 |
C_RND_TURBO |
NA |
|
c278 |
C_RND_MIP |
NA |
|
c279 |
C_BGND_METHOD |
NA |
|
c27a |
C_AUTO_REFLECT |
NA |
|
c27b |
C_VP_FROM |
NA |
|
c27c |
C_VP_TO |
NA |
|
c27d |
C_VP_NTH |
NA |
|
c27e |
C_REND_TSTEP |
NA |
|
c27f |
C_VP_TSTEP |
NA |
|
c280 |
C_SRDIAM |
NA |
|
c290 |
C_SRDEG |
NA |
|
c2a0 |
C_SRSEG |
NA |
|
c2b0 |
C_SRDIR |
NA |
|
c2c0 |
C_HETOP |
NA |
|
c2d0 |
C_HEBOT |
NA |
|
c2e0 |
C_HEHT |
NA |
|
c2f0 |
C_HETURNS |
NA |
|
c300 |
C_HEDEG |
NA |
|
c310 |
C_HESEG |
NA |
|
c320 |
C_HEDIR |
NA |
|
c330 |
C_QUIKSTUFF |
NA |
|
c340 |
C_SEE_LIGHTS |
NA |
|
c350 |
C_SEE_CAMERAS |
NA |
|
c360 |
C_SEE_3D |
NA |
|
c370 |
C_MESHSEL |
NA |
|
c380 |
C_MESHUNSEL |
NA |
|
c390 |
C_POLYSEL |
NA |
|
c3a0 |
C_POLYUNSEL |
NA |
|
c3a2 |
C_SHPLOCAL |
NA |
|
c3a4 |
C_MSHLOCAL |
NA |
|
c3b0 |
C_NUM_FORMAT |
NA |
|
c3c0 |
C_ARCH_DENOM |
NA |
|
c3d0 |
C_IN_DEVICE |
NA |
|
c3e0 |
C_MSCALE |
NA |
|
c3f0 |
C_COMM_PORT |
NA |
|
c400 |
C_TAB_BASES |
NA |
|
c410 |
C_TAB_DIVS |
NA |
|
c420 |
C_MASTER_SCALES |
NA |
|
c430 |
C_SHOW_1STVERT |
NA |
|
c440 |
C_SHAPER_OK |
NA |
|
c450 |
C_LOFTER_OK |
NA |
|
c460 |
C_EDITOR_OK |
NA |
|
c470 |
C_KEYFRAMER_OK |
NA |
|
c480 |
C_PICKSIZE |
NA |
|
c490 |
C_MAPTYPE |
NA |
|
c4a0 |
C_MAP_DISPLAY |
NA |
|
c4b0 |
C_TILE_XY |
NA |
|
c4c0 |
C_MAP_XYZ |
NA |
|
c4d0 |
C_MAP_SCALE |
NA |
|
c4e0 |
C_MAP_MATRIX_OLD |
NA |
|
c4e1 |
C_MAP_MATRIX |
NA |
|
c4f0 |
C_MAP_WID_HT |
NA |
|
c500 |
C_OBNAME |
NA |
|
c510 |
C_CAMNAME |
NA |
|
c520 |
C_LTNAME |
NA |
|
c525 |
C_CUR_MNAME |
NA |
|
c526 |
C_CURMTL_FROM_MESH |
NA |
|
c527 |
C_GET_SHAPE_MAKE_FACES |
NA |
|
c530 |
C_DETAIL |
NA |
|
c540 |
C_VERTMARK |
NA |
|
c550 |
C_MSHAX |
NA |
|
c560 |
C_MSHCP |
NA |
|
c570 |
C_USERAX |
NA |
|
c580 |
C_SHOOK |
NA |
|
c590 |
C_RAX |
NA |
|
c5a0 |
C_STAPE |
NA |
|
c5b0 |
C_LTAPE |
NA |
|
c5c0 |
C_ETAPE |
NA |
|
c5c8 |
C_KTAPE |
NA |
|
c5c0 |
C_ETAPE |
NA |
|
c5d0 |
C_SPHSEGS |
NA |
|
c5e0 |
C_GEOSMOOTH |
NA |
|
c5f0 |
C_HEMISEGS |
NA |
|
c600 |
C_PRISMSEGS |
NA |
|
c610 |
C_PRISMSIDES |
NA |
|
c620 |
C_TUBESEGS |
NA |
|
c630 |
C_TUBESIDES |
NA |
|
c640 |
C_TORSEGS |
NA |
|
c650 |
C_TORSIDES |
NA |
|
c660 |
C_CONESIDES |
NA |
|
c661 |
C_CONESEGS |
NA |
|
c670 |
C_NGPARMS |
NA |
|
c680 |
C_PTHLEVEL |
NA |
|
c690 |
C_MSCSYM |
NA |
|
c6a0 |
C_MFTSYM |
NA |
|
c6b0 |
C_MTTSYM |
NA |
|
c6c0 |
C_SMOOTHING |
NA |
|
c6d0 |
C_MODICOUNT |
NA |
|
c6e0 |
C_FONTSEL |
NA |
|
c6f0 |
C_TESS_TYPE |
NA |
|
c6f1 |
C_TESS_TENSION |
NA |
|
c700 |
C_SEG_START |
NA |
|
c705 |
C_SEG_END |
NA |
|
c710 |
C_CURTIME |
NA |
|
c715 |
C_ANIMLENGTH |
NA |
|
c720 |
C_PV_FROM |
NA |
|
c725 |
C_PV_TO |
NA |
|
c730 |
C_PV_DOFNUM |
NA |
|
c735 |
C_PV_RNG |
NA |
|
c740 |
C_PV_NTH |
NA |
|
c745 |
C_PV_TYPE |
NA |
|
c750 |
C_PV_METHOD |
NA |
|
c755 |
C_PV_FPS |
NA |
|
c765 |
C_VTR_FRAMES |
NA |
|
c770 |
C_VTR_HDTL |
NA |
|
c771 |
C_VTR_HD |
NA |
|
c772 |
C_VTR_TL |
NA |
|
c775 |
C_VTR_IN |
NA |
|
c780 |
C_VTR_PK |
NA |
|
c785 |
C_VTR_SH |
NA |
|
c790 |
C_WORK_MTLS |
NA |
|
c792 |
C_WORK_MTLS_2 |
NA |
|
c793 |
C_WORK_MTLS_3 |
NA |
|
c794 |
C_WORK_MTLS_4 |
NA |
|
c7a1 |
C_BGTYPE |
NA |
|
c7b0 |
C_MEDTILE |
NA |
|
c7d0 |
C_LO_CONTRAST |
NA |
|
c7d1 |
C_HI_CONTRAST |
NA |
|
c7e0 |
C_FROZ_DISPLAY |
NA |
|
c7f0 |
C_BOOLWELD |
NA |
|
c7f1 |
C_BOOLTYPE |
NA |
|
c900 |
C_AND_THRESH |
NA |
|
c901 |
C_SS_THRESH |
NA |
|
c903 |
C_TEXTURE_BLUR_DEFAULT |
NA |
|
ca00 |
C_MAPDRAWER |
NA |
|
ca01 |
C_MAPDRAWER1 |
NA |
|
ca02 |
C_MAPDRAWER2 |
NA |
|
ca03 |
C_MAPDRAWER3 |
NA |
|
ca04 |
C_MAPDRAWER4 |
NA |
|
ca05 |
C_MAPDRAWER5 |
NA |
|
ca06 |
C_MAPDRAWER6 |
NA |
|
ca07 |
C_MAPDRAWER7 |
NA |
|
ca08 |
C_MAPDRAWER8 |
NA |
|
ca09 |
C_MAPDRAWER9 |
NA |
|
ca10 |
C_MAPDRAWER_ENTRY |
NA |
|
ca20 |
C_BACKUP_FILE |
NA |
|
ca21 |
C_DITHER_256 |
NA |
|
ca22 |
C_SAVE_LAST |
NA |
|
ca23 |
C_USE_ALPHA |
NA |
|
ca24 |
C_TGA_DEPTH |
NA |
|
ca25 |
C_REND_FIELDS |
NA |
|
ca26 |
C_REFLIP |
NA |
|
ca27 |
C_SEL_ITEMTOG |
NA |
|
ca28 |
C_SEL_RESET |
NA |
|
ca29 |
C_STICKY_KEYINF |
NA |
|
ca2a |
C_WELD_THRESHOLD |
NA |
|
ca2b |
C_ZCLIP_POINT |
NA |
|
ca2c |
C_ALPHA_SPLIT |
NA |
|
ca30 |
C_KF_SHOW_BACKFACE |
NA |
|
ca40 |
C_OPTIMIZE_LOFT |
NA |
|
ca42 |
C_TENS_DEFAULT |
NA |
|
ca44 |
C_CONT_DEFAULT |
NA |
|
ca46 |
C_BIAS_DEFAULT |
NA |
|
ca50 |
C_DXFNAME_SRC |
NA |
|
ca60 |
C_AUTO_WELD |
NA |
|
ca70 |
C_AUTO_UNIFY |
NA |
|
ca80 |
C_AUTO_SMOOTH |
NA |
|
ca90 |
C_DXF_SMOOTH_ANG |
NA |
|
caa0 |
C_SMOOTH_ANG |
NA |
|
cb00 |
C_WORK_MTLS_5 |
NA |
|
cb01 |
C_WORK_MTLS_6 |
NA |
|
cb02 |
C_WORK_MTLS_7 |
NA |
|
cb03 |
C_WORK_MTLS_8 |
NA |
|
cb04 |
C_WORKMTL |
NA |
|
cb10 |
C_SXP_TEXT_DATA |
NA |
|
cb11 |
C_SXP_OPAC_DATA |
NA |
|
cb12 |
C_SXP_BUMP_DATA |
NA |
|
cb13 |
C_SXP_SHIN_DATA |
NA |
|
cb20 |
C_SXP_TEXT2_DATA |
NA |
|
cb24 |
C_SXP_SPEC_DATA |
NA |
|
cb28 |
C_SXP_SELFI_DATA |
NA |
|
cb30 |
C_SXP_TEXT_MASKDATA |
NA |
|
cb32 |
C_SXP_TEXT2_MASKDATA |
NA |
|
cb34 |
C_SXP_OPAC_MASKDATA |
NA |
|
cb36 |
C_SXP_BUMP_MASKDATA |
NA |
|
cb38 |
C_SXP_SPEC_MASKDATA |
NA |
|
cb3a |
C_SXP_SHIN_MASKDATA |
NA |
|
cb3e |
C_SXP_REFL_MASKDATA |
NA |
|
cc00 |
C_NET_USE_VPOST |
NA |
|
cc10 |
C_NET_USE_GAMMA |
NA |
|
cc20 |
C_NET_FIELD_ORDER |
NA |
|
cd00 |
C_BLUR_FRAMES |
NA |
|
cd10 |
C_BLUR_SAMPLES |
NA |
|
cd20 |
C_BLUR_DUR |
NA |
|
cd30 |
C_HOT_METHOD |
NA |
|
cd40 |
C_HOT_CHECK |
NA |
|
cd50 |
C_PIXEL_SIZE |
NA |
|
cd60 |
C_DISP_GAMMA |
NA |
|
cd70 |
C_FBUF_GAMMA |
NA |
|
cd80 |
C_FILE_OUT_GAMMA |
NA |
|
cd82 |
C_FILE_IN_GAMMA |
NA |
|
cd84 |
C_GAMMA_CORRECT |
NA |
|
cd90 |
C_APPLY_DISP_GAMMA |
NA |
|
cda0 |
C_APPLY_FBUF_GAMMA |
NA |
|
cdb0 |
C_APPLY_FILE_GAMMA |
NA |
|
cdc0 |
C_FORCE_WIRE |
NA |
|
cdd0 |
C_RAY_SHADOWS |
NA |
|
cde0 |
C_MASTER_AMBIENT |
NA |
|
cdf0 |
C_SUPER_SAMPLE |
NA |
|
ce00 |
C_OBJECT_MBUR |
NA |
|
ce10 |
C_MBLUR_DITHER |
NA |
|
ce20 |
C_DITHER_24 |
NA |
|
ce30 |
C_SUPER_BLACK |
NA |
|
ce40 |
C_SAFE_FRAME |
NA |
|
ce50 |
C_VIEW_PRES_RATIO |
NA |
|
ce60 |
C_BGND_PRES_RATIO |
NA |
|
ce70 |
C_NTH_SERIAL_NUM |
NA |
|
d000 |
VPDATA |
NA |
|
d100 |
P_QUEUE_ENTRY |
NA |
|
d110 |
P_QUEUE_IMAGE |
NA |
|
d114 |
P_QUEUE_USEIGAMMA |
NA |
|
d120 |
P_QUEUE_PROC |
NA |
|
d130 |
P_QUEUE_SOLID |
NA |
|
d140 |
P_QUEUE_GRADIENT |
NA |
|
d150 |
P_QUEUE_KF |
NA |
|
d152 |
P_QUEUE_MOTBLUR |
NA |
|
d153 |
P_QUEUE_MB_REPEAT |
NA |
|
d160 |
P_QUEUE_NONE |
NA |
|
d180 |
P_QUEUE_RESIZE |
NA |
|
d185 |
P_QUEUE_OFFSET |
NA |
|
d190 |
P_QUEUE_ALIGN |
NA |
|
d1a0 |
P_CUSTOM_SIZE |
NA |
|
d210 |
P_ALPH_NONE |
NA |
|
d220 |
P_ALPH_PSEUDO |
NA |
|
d221 |
P_ALPH_OP_PSEUDO |
NA |
|
d222 |
P_ALPH_BLUR |
NA |
|
d225 |
P_ALPH_PCOL |
NA |
|
d230 |
P_ALPH_CO |
NA |
|
d231 |
P_ALPH_OP_KEY |
NA |
|
d235 |
P_ALPH_KCOL |
NA |
|
d238 |
P_ALPH_OP_NOCONV |
NA |
|
d240 |
P_ALPH_IMAGE |
NA |
|
d250 |
P_ALPH_ALPHA |
NA |
|
d260 |
P_ALPH_QUES |
NA |
|
d265 |
P_ALPH_QUEIMG |
NA |
|
d270 |
P_ALPH_CUTOFF |
NA |
|
d280 |
P_ALPHANEG |
NA |
|
d300 |
P_TRAN_NONE |
NA |
|
d310 |
P_TRAN_IMAGE |
NA |
|
d312 |
P_TRAN_FRAMES |
NA |
|
d320 |
P_TRAN_FADEIN |
NA |
|
d330 |
P_TRAN_FADEOUT |
NA |
|
d340 |
P_TRANNEG |
NA |
|
d400 |
P_RANGES |
NA |
|
d500 |
P_PROC_DATA |
NA |
|
f020 |
POS_TRACK_TAG_KEY |
NA |
|
f021 |
ROT_TRACK_TAG_KEY |
NA |
|
f022 |
SCL_TRACK_TAG_KEY |
NA |
|
f023 |
FOV_TRACK_TAG_KEY |
NA |
|
f024 |
ROLL_TRACK_TAG_KEY |
NA |
|
f025 |
COL_TRACK_TAG_KEY |
NA |
|
f026 |
MORPH_TRACK_TAG_KEY |
NA |
|
f027 |
HOT_TRACK_TAG_KEY |
NA |
|
f028 |
FALL_TRACK_TAG_KEY |
NA |
|
f110 |
POINT_ARRAY_ENTRY |
NA |
|
f120 |
POINT_FLAG_ARRAY_ENTRY |
NA |
|
f130 |
FACE_ARRAY_ENTRY |
NA |
|
f140 |
TEX_VERTS_ENTRY |
NA |
|
f150 |
SMOOTH_GROUP_ENTRY |
NA |
|
ffff |
DUMMY |
NA |
|
Below is a list of data chunks, and beneath each one a list of chunks or subordinate chunks which usually follow them.
COLOR_F fog_bgnd
dcue_bgnd (data type unknown)
COLOR_F
COLOR_F (start of color gradient)
COLOR_F (middle)
COLOR_F (end of gradient)
COLOR_F
VIEWPORT_SIZE
VIEWPORT_DATA
COLOR_F or COLOR_24
percentage chunk 0030 or 0031
percentage chunk
MAT_MAPNAME
MAT_MAP_TILING
MAT_MAP_TEXBLUR
possibly other material modifier chunks
percentage chunk
MAT_MAPNAME
KFHDR
NODE_HDR
PIVOT
POS_TRACK_TAG
ROT_TRACK_TAG
SCL_TRACK_TAG
possibly others
NODE_HDR
POS_TRACK_TAG
FOV_TRACK_TAG
ROLL_TRACK_TAG
possibly others
NODE_HDR
POS_TRACK_TAG
possibly others
NODE_HDR
POS_TRACK_TAG
COL_TRACK_TAG
possibly others
NODE_ID
NODE_HDR
POS_TRACK_TAG
NODE_ID
NODE_HDR
POS_TRACK_TAG
HOT_TRACK_TAG
FALL_TRACK_TAG
ROLL_TRACK_TAG
COL_TRACK_TAG
possibly others
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
possibly others
Chunk 4110 (POINT_ARRAY) relies on the following POINT definition:
typedef struct _POINT { FLOAT x, y, z; } POINT;
Chunk 4120 (FACE_ARRAY) relies on the following FACE definition:
typedef struct _FACE { SHORT vertex1, vertex2, vertex3, flags; } FACE;
Chunk 4140 (TEX_VERTS) relies on the following VERTEX definition:
typedef struct _VERTEX { FLOAT x,y; } VERTEX;
Chunk b020 (POS_TRACK_TAG) relies on the following POSITION definition:
typedef struct _POSITION { SHORT frame_number; DWORD unknown; FLOAT position_x, position_y, position_z; } POSITION;
Chunk b021 (ROT_TRACK_TAG) relies on the following ROTATION definition:
typedef struct _ROTATION { SHORT frame_number; DWORD unknown; FLOAT rotation; /* in radians */ FLOAT axis_x, axis_y, axis_z; } ROTATION;
Chunk b022 (SCL_TRACK_TAG) relies on the following definition of SCALE:
typedef _SCALE { SHORT frame_number; DWORD unknown; FLOAT scale_x, scale_y, scale_z; } SCALE;
Chunk b023 (FOV_TRACK_TAG) relies on the following definition of FOV:
typedef _FOV { SHORT frame_number; DWORD unknown; FLOAT field_of_view; } FOV
Chunk b024 (ROLL_TRACK_TAG) relies on the following ROLL definition:
typedef _ROLL { SHORT frame_number; DWORD unknown; FLOAT camera_roll; } ROLL;
Chunk b025 (COL_TRACK_TAG) relies on the following definition of COLOR:
typedef _COLOR { SHORT frame_number; DWORD unknown; FLOAT r,g,b; } COLOR;
Chunk b026 (MORPH_TRACK_TAG) relies on the following definition of MORPH:
typedef _MORPH { SHORT frame_number; DWORD unknown; CHAR object_name[]; /* 0-terminated ASCII string */ } MORPH;
Chunk b027 (HOT_TRACK_TAG) relies on the following definition of HOTSPOT:
typedef _HOTSPOT { SHORT frame_number; DWORD unknown; FLOAT falloff_angle; } HOTSPOT;
This is a definition of a cube, centered at the origin, and saved in 3D Studio ASC format:
Ambient light color: Red=0.3 Green=0.3 Blue=0.3 Named object: "Cube" Tri-mesh, Vertices: 8 Faces: 12 Vertex list: Vertex 0: X:-1.000000 Y:-1.000000 Z:0.000000 Vertex 1: X:-1.000000 Y:-1.000000 Z:2.000000 Vertex 2: X:1.000000 Y:-1.000000 Z:0.000000 Vertex 3: X:1.000000 Y:-1.000000 Z:2.000000 Vertex 4: X:-1.000000 Y:1.000000 Z:0.000000 Vertex 5: X:1.000000 Y:1.000000 Z:0.000000 Vertex 6: X:1.000000 Y:1.000000 Z:2.000000 Vertex 7: X:-1.000000 Y:1.000000 Z:2.000000 Face list: Face 0: A:2 B:3 C:1 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 1: A:2 B:1 C:0 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 2: A:4 B:5 C:2 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 3: A:4 B:2 C:0 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 4: A:6 B:3 C:2 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 5: A:6 B:2 C:5 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 6: A:6 B:7 C:1 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 7: A:6 B:1 C:3 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 8: A:6 B:5 C:4 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 9: A:6 B:4 C:7 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 10: A:1 B:7 C:4 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1 Face 11: A:1 B:4 C:0 AB:1 BC:1 CA:1 Material:"r210g210b210a0" Smoothing: 1
Autodesk sells a package that includes documentation on the 3DS file format. Please contact them for further details.
Autodesk Developer Marketing
2320 Marinship Way
Sausalito, CA 94965
Voice: 415-491-8719
WWW: http://www.autodesk.com
Information in this article was obtained from the following two documents:
Lewis, Jeff, The Unofficial 3D Studio 3DS File Format, v1.0, 1 December 1995.
Pitts, Jim, 3D Studio File Format (3dS), Document Revision 0.8, 18 December 1994.
These can be found at:
http://www.europa.com/~keithr/
[Previous]
[Next]
[Up]
[Index]
Contents |
Glossary |
Main |
Formats |
Software |
Internet |
Book
Copyright © 1996, 1994 O'Reilly & Associates, Inc. All Rights Reserved.