Mostrar/Ocultar TOC

Tabla de Contenidos del Libro
Prefacio
Capítulo 1: Introducción
Capítulo 2: Fundamentos
Capítulo 3: Mapas de Bits
Capítulo 4: Archivos Vectoriales
Capítulo 5: Metaarchivos
Capítulo 6: Dependencias de Plataforma
Capítulo 7: Conversión de Formatos
Capítulo 8: Trabajando con Archivos Gráficos  
Capítulo 9: Compresión
Capítulo 10: Multimedia
Formato: Adobe Illustrator
Formato: Adobe Photoshop
Formato: Atari ST
Formato: AutoCAD DXF
Formato: Autodesk 3D Studio
Formato: BDF
Formato: BRL-CAD
Formato: BUFR
Formato: CALS Raster
Formato: CGM
Formato: CMU
Formato: DKB
Formato: Dore Raster
Formato: DPX
Formato: Dr. Halo
Formato: DVM Movie
Formato: PostScript Encapsulado
Formato: FaceSaver
Formato: FAX
Formato: FITS
Formato: FLI
Formato: GEM Raster
Formato: GEM VDI
Formato: GIF
Texto en Inglés de Este Formato de Archivo
Imagen del CD-ROM de la 2° Edición
Imagen del CD-ROM de la 1° Edición (Torrent y HTTPS)
Versión Hipertexto del CD-ROM de la 2° Edición (En Inglés)
Versión Hipertexto del CD-ROM de la 2° Edición (En Ruso)

Formato de Archivo — Autodesk 3D Studio

Formato de Archivo — Autodesk 3D Studio


NOMBRE: Autodesk 3D Studio
TAMBIÉN CONOCIDO COMO: 3DS, ASC
TIPO: Escena
COLORES: Ilimitados
COMPRESIÓN: Ninguna
TAMAÑO MÁXIMO DE IMAGEN: NA
MÚLTIPLES IMÁGENES POR ARCHIVO: No
FORMATO NUMÉRICO: Múltiple
ORIGINADOR: Autodesk
PLATAFORMA: MS-DOS
APLICACIONES SOPORTADAS: 3D Studio, Caligari trueSpace, otros programas 3D
ESPECIFICACIÓN EN CD: No
CÓDIGO EN CD: No
IMÁGENES EN CD: No
MIRA TAMBIÉN: Ninguno
UTILIZACIÓN: Almacenamiento de información de escena 3D para su uso por aplicaciones de renderización.
COMENTARIOS: Autodesk 3d Studio ha llegado a ser usado como un formato de intercambio. Muchas aplicaciones de modelado 3D y renderizado leen y escriben 3DS, así como sus propios formatos. El por qué esto es así no es claro pero puede deberse a la longevidad y visibilidad en el mercado de Autodesk 3D Studio. No obstante, el programa implementa un gran número de funciones, y esto se refleja en el archivo.




Resumen

Autodesk 3D Studio (3DS) es un programa de gama relativamente alta usado para el modelado y renderizado de escenas 3D. Corre bajo MS-DOS y usa un administrador de memoria de un tercero para hacer uso óptimo de los recursos disponibles en la plataforma PC. La salida se compara favorablemente a muchas plataformas de mayor gama. Es así como ha llegado a ser una de las plataformas elegidas por la gente que hace una construcción detallada de escenas 3D.

Desafortunadamente, Autodesk ha elegido hacer la información sobre este formato disponible solo a través de la compra de su kit de desarrollo. La información para este artículo fue obtenida de manera acorde desde fuentes públicas y es necesariamente incompleta. Apreciaríamos cualquier información adicional disponible sobre este formato.

Hay dos formatos usados por 3D Studio:

Ambos se usan como formatos de intercambio. Este artículo se concentra en la versión binaria del archivo, porque la versión ASCII usualmente se usa para almacenar definiciones de objeto y sigue de cerca las etiquetas definidas en la versión binaria. Al final de este artículo, proporcionamos un ejemplo de un archivo ASC simple.



Organización del Archivo

Los archivos 3DS consisten de etiquetas, llamadas porciones (chunks) por Autodesk. Cada porción consiste de un valor de ID y u n offset al inicio de la siguiente porción. Los datos asociados con cada porción siguen la información de ID y de offset.

typedef struct _CHUNK
{
   WORD  Chunk_ID;       /* Tipo de etiqueta */
   DWORD Chunk_length;   /* Offset relativo en bytes a la siguiente porción */
} CHUNK;

Las porciones están clasificadas ya sea como Primarias, Principales o Subordinadas, y están arregladas en una jerarquía como se muestra a continuación:

Porción Primaria
   Porción Primaria #1
      Porción Subordinada #1
      Porción Subordinada #2
   ⋮
   Porción Principal #2
      Porción Subordinada #1
      Porción Subordinada #2
      ⋮
   Porción Principal #3
   ⋮

Se dice que las porciones Principales son propiedad de una porción Primaria, y las porciones Subordinadas asociadas con las porciones Principales le pertenecen a la porción Principal. Nota que muchas de las porciones definidas a continuación están asociadas con el comportamiento de 3D Studio en tiempo de ejecución. Están listadas aquí porque tu aplicación de renderización o programa de conversión de archivo puede ser capaz de hacer uso de ellas como pistas de la apariencia y comportamiento de los objetos encontrados en el archivo.

Solo hay una porción Primaria por archivo, localizada al inicio del archivo. Siguiendo la etiqueta de la porción Primaria está la etiqueta Principal. El campo chunk_lengt de las etiquetas Principales generalmente es un offset a la siguiente porción Principal.

Siguiendo cada etiqueta de porción Principal están los datos asociados con la porción Principal y/o etiquetas de porciones Subordinadas. Así, el lector/analizador debe entender el formato y longitud de los datos asociados con cada porción Principal a fin de extraer la información contenida en porciones subordinadas que son propiedad de la porción Principal.



Detalles del Archivo

La primer etiqueta del archivo, la porción Primaria, tiene un ID de 4D4Dh. Debajo de la porción Primaria en la jerarquía de etiquetas, están las porciones Principales.

Porciones (Chunks)

La Tabla Autodesk 3d Studio-1 lista las porciones posibles conocidas hasta este momento:

TABLA AUTODESK 3D STUDIO-1: Porciones de Autodesk 3D Studio
ID          Nombre                                     Tipo de Datos                   Descripción

0000 NULL_CHUNK NA
0001 desconocido (posiblemente FLOAT)
0002 M3D_VERSION SHORT Versión
0005 M3D_KFVERSION NA
0010 COLOR_F FLOAT Descripción de color de punto flotante
0011 COLOR_24 BYTE R,G,B Descripción de color de 24 bits
0012 LIN_COLOR_24 BYTE R,G,B Descripción de color de 24 bits
0013 LIN_COLOR_F FLOAT R,G,B Descripción de color de punto flotante
0030 INT_PERCENTAGE SHORT Valor de porcentaje
0031 FLOAT_PERCENTAGE FLOAT Valor de porcentaje
0100 MASTER_SCALE FLOAT Factor de escala
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[] Cadena ASCII terminada en cero
1101 USE_BIT_MAP NA
1200 SOLID_BGND FLOAT R,G,B
1201 USE_SOLID_BGND NA
1300 V_GRADIENT FLOAT Punto medio de gradiente
1301 USE_V_GRADIENT NA
1400 LO_SHADOW_BIAS Float Tendencia
1410 HI_SHADOW_BIAS NA
1420 SHADOW_MAP_SIZE SHORT Tamaño
1430 SHADOW_SAMPLES NA
1430 SHADOW_RANGE NA
1460 RAY_BIAS FLOAT Tendencia
1500 O_CONSTS FLOAT x,y,z Valores de plano
2100 AMBIENT_LIGHT
2200 FOG FLOAT[4] near_plane, near_density, far_plane_ far_density
2201 USE_FOG NA
2210 FOG_BGND NA
2300 DISTANCE_CUE NA
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_ target_y, target_z, view_width
3030 VIEW_LEFT FLOAT[4] target_ target_y, target_z, view_width
3040 VIEW_RIGHT FLOAT[4] target_ target_y, target_z, view_width
3050 VIEW_FRONT FLOAT[4] target_ target_y, target_z, view_width
3060 VIEW_BACK FLOAT[4] target_ target_y, target_z, view_width
3070 VIEW_USER FLOAT[4] target_ target_y, target_z, view_width
3080 VIEW_CAMERA CHAR[] Cadena ASCII terminada en 0
3090 VIEW_WINDOW NA
3d3d MDATA WORD Número mágico de malla (mesh) 4d4d
3d3e MESH_VERSION NA
3daa MLIBMAGIC WORD Número mágico de librería de materiales
3dc2 PRJMAGIC WORD Número mágico de proyecto
3dff MATMAGIC WORD Número mágico de archivo de materiales
4000 NAMED_OBJECT CHAR[] Cadena ASCII terminada en 0
4010 OBJ_HIDDEN NA
4010 OBJ_VS_LOFTER NA
4011 OBJ_DOESNT_CAST NA
4012 OBJ_MATTE NA
4013 OBJ_FAST NA
4014 OBJ_PROCEDURAL NA
4015 OBJ_FROZEN NA
4016 OBJ_DONT_RCVSHADOW NA
4100 N_TRL_OBJECT NA Objeto triángulo nombrado
4110 POINT_ARRAY SHORT, Número de puntos
POINT[] Arreglo de estructuras POINT
4111 POINT_FLAG_ARRAY SHORT, Número de banderas
SHORT[] Arreglo de banderas SHORT
4120 FACE_ARRAY SHORT, Número de banderas
FACE[] Arreglo de estructuras FACE
4130 MSH_MAT_GROUP CHAR[], Nombre de material
SHORT, Número de caras
SHORT[] Números de cara
4140 TEX_VERTS SHORT, Número de vértices
VERTEX[] Arreglo de estructuras VERTEX
4150 SMOOTH_GROUP SHORT[] Grupos = caras x 4
4160 MESH_MATRIX FLOAT[4][3] Matriz FLOAT de 4x3
4170 MESH_TEXTURE_INFO SHORT, map_type
FLOAT[2], x_tiling, y_tiling
FLOAT[3], icon_x, icon_y, icon_z
FLOAT[4][3], Matriz FLOAT de 4x3
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 de luz
4610 DL_SPOTLIGHT FLOAT[5] target_x, target_y, target_z, hotspot_ang, fallof_ang
4620 DL_OFF NA
4500 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 Ángulo de rodado
4657 DLSPOT_ASPECT_ NA
4658 DL_RAY_BIAS FLOAT Tendencia
4659 DL_INNER_RANGE FLOAT Rango
465a DL_OUTER_RANGE FLOAT Rango
465b DL_MULTIPLIER FLOAT Valor multiplicador
4680 DL_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 Número mágico de archivo 3DS
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 N_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[] cadena ASCII terminada en 0—nombre de cámara
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[] cadena ASCII terminada en 0—nombre de cámara
7020 VIEPORT_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
809 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[] cadena ASCII terminada en 0 nombre de material
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 Tamaño de alambre
a088 MAT_FACEMAP NA
a08a MAT_XPFALLIN NA
a08c MAT_PHONGSOFT NA
a08e MAT_WIREABS NA
a100 MAT_SHADING SHORT Valor de sombreado
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[] nombre de archivo ASCII terminado en 0
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_SELFI_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_SELFI_MASKDATA NA
a338 MAT_SXP_RELF_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 Banderas
a352 MAT_TEXBLUR_OLD NA
a353 MAT_MAP_TEXBLUR FLOAT Valor de borrosidad
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, Número de revisión
CHAR[], nombre de bjeto ASCII terminado en 0
SHORT Longitud de animación
b010 NODE_HDR CHAR[], nombre de objeto ASCII terminado en 0
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 Ángulo de suavizado (radianes)
b020 POS_TRACK_TAG SHORT, Banderas
SHORT[4], Desconocido
SHORT, Claves
SHORT, Desconocido
SHORT POSITION[keys] Arreglo de estructuras POSITION
b021 ROT_TRACK_TAG SHORT, Banderas
SHORT[4], Desconocido
SHORT, Claves
SHORT, Desconocido
SHORT ROTATION[keys] Arreglo de estructuras ROTATION
b022 SCL_TRACK_TAG SHORT, Banderas
SHORT[4], Desconocido
SHORT, Claves
SHORT, Desconocido
SHORT SCALE[keys] Arreglo de estructuras SCALE
b023 FOV_TRACK_TAG SHORT, Banderas
SHORT[4], Desconocido
SHORT, Claves
SHORT, Desconocido
SHORT FOV[keys] Arreglo de estructuras FOV
b024 ROLL_TRACK_TAG SHORT, Banderas
SHORT[4], Desconocido
SHORT, Claves
SHORT, Desconocido
SHORT ROLL[keys] Arreglo de estructuras ROLL
b025 COL_TRACK_TAG SHORT, Banderas
SHORT[4], Desconocido
SHORT, Claves
SHORT, Desconocido
SHORT COLOR[keys] Arreglo de estructuras COLOR
b026 MORPH_TRACK_TAG SHORT, Banderas
SHORT[4], Desconocido
SHORT, Claves
SHORT, Desconocido
SHORT MORPH[keys] Arreglo de estructuras MORPH
b027 HOT_TRACK_TAG SHORT, Banderas
SHORT[4], Desconocido
SHORT, Claves
SHORT, Desconocido
SHORT HOTSPOT[keys] Arreglo de estructuras HOTSPOT
b028 FALL_TRACK_TAG SHORT, Banderas
SHORT[4], Desconocido
SHORT, Claves
SHORT, Desconocido
SHORT FALLOF[keys] Arreglo de estructuras FALLOF
b029 HIDE_TRACK_TAG NA
b030 NODE_ID SHORT Valor ID
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_RETURNS 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_ISTVERT 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_PT_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_CON_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_SMOOT_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_WORK_MTL 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_GAMA 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 C_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_PROCDATA 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

Order de Porciones

A continuación está una lista de porciones de datos, y debajo de cada una una lista de porciones o porciones subordinadas que usualmente les siguen:

2200 (FOG)
	COLOR_F fog_bgnd

2300 (DISTANCE_CUE)
	dcue_bgnd (tipo de datos desconocido)

1200 (SOLID_BGND)
	COLOR_F

1300 (V_GRADIENT)
	COLOR_F (inicio de gradiente de color)
	COLOR_F (enmedio)
	COLOR_F (fin de gradiente)

4600 (N_DIRECT_LIGHT)
	COLOR_F

7001 (VIEWPORT_LAYOUT)
	VIEWPORT_SIZE
	VIEWPORT_DATA

a010 (MAT_AMBIENT)
a020 (MAT_DIFFUSE)
a030 (MAT_SPECULAR)
	COLOR_F o COLOR_24

a040 (MAT_SHININESS)
a041 (MAT_SHIN2PCT)
a042 (MAT_SHIN3PCT)
a050 (MAT_TRNSPARENCY)
a052 (MAT_XPFALL)
a053 (MAT_REFBLUR)
a084 (MAT_SELF_ILPCT)
	porción de porcentaje 0030 o 0031

a200 (MAT_TEXMAP)
	porción de porcentaje
	MAT_MAPNAME
	MAT_MAP_TILING
	MAT_MAP_TEXBLUR
	posiblemente otras porciones modificadoras de material

a204 (MAT_SPECMAP)
a210 (MAT_OPACMAP)
a220 (MAT_REFLMAP)
a230 (MAT_BUMPMAP)
	porción de porcentaje
	MAT_MAPNAME

b000 (KFDATA)
	KFHDR

b002 (OBJECT_NODE_TAG)
	NODE_HDR
	PIVOT
	POS_TRACK_TAG
	ROT_TRACK_TAG
	SCL_TRACK_TAG
	posiblemente otras

b003 (CAMERA_NODE_TAG)
	NODE_HDR
	POS_TRACK_TAG
	FOV_TRACK_TAG
	ROLL_TRACK_TAG
	posiblemente otras

b004 (TARGET_NODE_TAG)
	NODE_HDR
	POS_TRACK_TAG
	posiblemente otras

b005 (LIGHT_NODE_TAG)
	NODE_HDR
	POS_TRACK_TAG
	COL_TRACK_TAG
	posiblemente otras

b006 (L_TARGET_NODE_TAG)
	NODE_ID
	NODE_HDR
	POS_TRACK_TAG

b007 (SPOTLIGHT_NODE_TAG)
	NODE_ID
	NODE_HDR
	POS_TRACK_TAG
	HOT_TRACK_TAG
	FALL_TRACK_TAG
	ROLL_TRACK_TAG
	COL_TRACK_TAG
	posiblmenete otras

b00a (KFHDR)
	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
	posiblmenete otras

Dependencias de Porciones

La porción 4110 (POINT_ARRAY) depende de la siguiente definición POINT:

  typedef struct _POINT
  {
     FLOAT x, y, z;
  } POINT;

La porción 4120 (FACE_ARRAY) depende de la siguiente definición FACE:

  typedef struct _FACE
  {
     SHORT vertex1, vertex2, vertex3, flags;
  } FACE;

La porción 4140 (TEX_VERTS) depende de la siguiente definición VERTEX:

  typedef struct _VERTEX
  {
     FLOAT x,y;
  } VERTEX;

La porción b020 (POS_TRACK_TAG) depende de la siguiente definición POSITION:

  typedef struct _POSITION 
  {
     SHORT frame_number;
     DWORD unknown;
     FLOAT position_x, position_y, position_z;
  } POSITION;

La porción b021 (ROT_TRACK_TAG) depende de la siguiente definición ROTATION:

  typedef struct _ROTATION
  {
     SHORT frame_number;
     DWORD unknown;
     FLOAT rotation;         /* en radianes */
     FLOAT axis_x, axis_y, axis_z;
  } ROTATION;

La porción b022 (SCL_TRACK_TAG) depende de la siguiente definición SCALE:

  typedef _SCALE
  {
     SHORT frame_number;
     DWORD unknown;
     FLOAT scale_x, scale_y, scale_z;
  } SCALE;

La porción b023 (FOV_TRACK_TAG) depende de la siguiente definición fov:

  typedef _FOV
  {
     SHORT frame_number;
     DWORD unknown;
     FLOAT field_of_view;
  } FOV;

La porción b024 (ROLL_TRACK_TAG) depende de la siguiente definición ROLL:

  typedef _ROLL
  {
     SHORT frame_number;
     DWORD unknown;
     FLOAT camera_roll;
  } ROLL;

La porción b025 (COL_TRACK_TAG) depende de la siguiente definición COLOR:

  typedef _COLOR
 {
     SHORT frame_number;
     DWORD unknown;
     FLOAT r,g,b;
  } COLOR;

La porción b026 (MORPH_TRACK_TAG) depende de la siguiente definición MORPH:

  typedef _MORPH
  {
     SHORT frame_number;
     DWORD unknown;
     CHAR  object_name[]; /* cadena ASCII terminada en 0 */
  } MORPH;

La porción b027 (HOT_TRACK_TAG) depende de la siguiente definición HOTSPOT:

  typedef _HOTSPOT
  {
     SHORT frame_number;
     DWORD unknown;
     FLOAT falloff_angle;
  } HOTSPOT;

Ejemplo de Archivo ASC

Esta es una definición de un cubo en el origen, y guardado en formato ASC de 3D Studio:

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


Para Mayor Información

Autodesk vende un paquete que incluye documentación sobre el formato de archivo 3DS. Por favor contáctalos para mayores detalles:

Autodesk Developer Marketing
2320 Marinship Way
Sausalito, CA 94965
Voice: 415-491-8719
WWW: http://www.autodesk.com

La información en este artículo fue obtenida de los siguientes dos documentos:

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.

Estos pueden encontrarse en:

   http://www.europa.com/~keithr/

 n0HCo(-JT' &N5i5詗7c'wOưQ|c!@|%A"@[0d1̖Y'zb,5͔Ow( 2+FcI`Fqlzv(7LX rfYvNzzYOA#.E-94Zn!S 52@K9my;.}U݀r&jn2WWHJ`Q}u_tro {rWL;=_ؼ