.3ds
.3ds es la extensión de archivo usada por algunos programas de simulación y gráficos 3D. El tipo de archivo.max es utilizado exclusivamente por Autodesk 3DS Max, a diferencia de.3ds que es el formato nativo de 3D Studio DOS (Versiones comprendidas entre 1.0 y 4.0), este formato también es compatible con otros programas de modelaje 3D.[1]
Archivo de Autodesk 3DS Studio MAX | ||
---|---|---|
Desarrollador | ||
Autodesk Inc. | ||
Información general | ||
Extensión de archivo |
.3ds / .max | |
Tipo de MIME | application/x-3ds e image/x-3ds | |
Número mágico |
4D 4D (hex), MM (ASCII) | |
Lanzamiento inicial | 1990 | |
Tipo de formato | Archivo de objetos 3D | |
Formato abierto | ||
Estructura
editarEl formato.3ds es de tipo binario. El archivo se basa en fragmentos, en donde cada sección de datos está incrustado en un bloque que contiene un identificador de fragmento y la longitud de los datos (para proporcionar la ubicación del siguiente bloque principal), así como los propios datos. Esto permite que los analizadores puedan saltar trozos que no reconocen.
Los fragmentos forman una estructura jerárquica, similar a un árbol DOM XML. Los dos primeros bytes del archivo son su ID. A partir de ese valor el analizador puede identificar la cantidad y decidir si va a analizarlo o ignorar. Los siguientes cuatro bytes contienen un número entero que es la longitud de la porción, incluyendo sus datos, la longitud de sus sub-bloques y el encabezado de 6 bytes. Los siguientes octetos son los datos del trozo, seguidos por los sub-fragmentos, en una estructura que puede extenderse a varios niveles de profundidad.
A continuación se muestra un listado de los identificadores más comunes para fragmentos, representadas de manera jerárquica que representa sus dependencias:[2][3]
0x4D4D // Identificador
├─ 0x3D3D // Editor Del pedazo 3D
│ ├─ 0x4000 // Bloque de objeto
│ │ ├─ 0x4100 // Triangular Mesh
│ │ │ ├─ 0x4110 // Vértices List
│ │ │ ├─ 0x4120 // Faces Description
│ │ │ │ ├─ 0x4130 // Faces Material
│ │ │ │ └─ 0x4150 // Smoothing Group List
│ │ │ ├─ 0x4140 // Mapping Coordinates List
│ │ │ └─ 0x4160 // Local Coordinates System
│ │ ├─ 0x4600 // Light
│ │ │ └─ 0x4610 // Spotlight
│ │ └─ 0x4700 // Camera
│ └─ 0xAFFF // Material Block
│ ├─ 0xA000 // Material Name
│ ├─ 0xA010 // Ambient Color
│ ├─ 0xA020 // Diffuse Color
│ ├─ 0xA030 // Specular Color
│ ├─ 0xA200 // Texture Map 1
│ ├─ 0xA230 // Bump Map
│ └─ 0xA220 // Reflection Map
│ │ /* Sub Chunks For Each Map */
│ ├─ 0xA300 // Mapping Filename
│ └─ 0xA351 // Mapping Parameters
└─ 0xB000 // Keyframer Chunk
├─ 0xB002 // Mesh Information Block
├─ 0xB007 // Spot Light Information Block
└─ 0xB008 // Frames (Start and End)
├─ 0xB010 // Object Name
├─ 0xB013 // Object Pivot Point
├─ 0xB020 // Position Track
├─ 0xB021 // Rotation Track
├─ 0xB022 // Scale Track
└─ 0xB030 // Hierarchy Position
Defectos
editarHa sido señalado que, a pesar de su popularidad, el formato puede no ser el más adecuado para el intercambio de datos 3D. Algunas desventajas mencionadas son:[1]
- Todas las mallas deben ser hechas de triángulos.
- Todos los nombres de archivo de texturas están limitados al formato 8.3 DOS.
- El número de vértices y polígonos por malla está limitado a 65536.
- Los vértices normales precisos no pueden ser almacenados en el archivo.3ds. En cambio los "grupos lisos"[nota 1] son usados de tal manera que el programa que recibe pueda recrear una (con suerte buena) representación de los vértices normales. Esto es aún un retraso del legado de muchos programas de animación de hoy que iniciaron en los 80's (3DS MAX, Lightwave y trueSpace aún usan grupos lisos, y Maya lo hizo hasta v2.51).
- Los nombres de objetos, luces y cámaras están limitados a 10 caracteres. Los nombres de los materiales están limitados a 16 caracteres.
- Fuentes de luz direccional no están soportadas
Notas
editar- ↑ Los grupos lisos (lea acerca de superficies en elementos de modelado de malla para entender su uso) son almacenados como un campo de bit, con 4 bytes (un long int) para cada cara, permitiendo así hasta 32 (4x8) grupos lisos por cara.
Referencias
editarEnlaces externos
editar- Páginas Web
- Tutorial de análisis 3DS, por Amir "Genjix" Taaki
- Spacesimulator.net - lector, cargador de archivos de formato 3ds, por Damiano Vitulli
- The Labs: 3DS File Format, por Jeff Lewis
- lib3ds: librería en C para cargar/guardar archivos 3DS, licencia LGPL
- Referencias de artículos escritos
- Jim Pitts (18 de diciembre de 1994). «3D Studio File Format». Archivado desde el original el 21 de julio de 2001.
- Martin van Velsen and Robin Fercoq (enero de 1997). «3D-Studio File Format». (basado en documentación de Jim Pitts)
- Jochen Wilhelmy (8 de junio de 1997). «3D Studio File Format Information». Archivado desde el original el 4 de abril de 2009. (basado en documentación de Christophe Chabanois, Jim Pitts and Niklas Beisert)