UltKit

STL vs OBJ vs 3MF: qué formato de archivo 3D usar

Use STL para una impresión de un solo color que solo hay que laminar, OBJ cuando el modelo lleva texturas para render o para un motor de juegos, y 3MF cuando su laminador lo admite y quiere que las unidades, los colores y las distintas piezas lleguen intactos. El formato decide qué metadatos viajan con la malla; nunca decide si la malla en sí está bien construida.

Jonas WeberJonas WeberEditor de rendimiento web
Actualizado 12 min de lectura
Una impresora 3D de escritorio dentro de un gabinete transparente sobre un escritorio blanco, junto a una laptop que muestra un modelo 3D y piezas impresas de colores, entre ellas un mapa de relieve y un engranaje rojo

STL: una lista de triángulos y nada más

STL se creó en 1987 para las primeras máquinas de estereolitografía de 3D Systems, y su diseño delata ese origen. Un archivo es una lista plana de triángulos, cada uno descrito por una normal de faceta y tres vértices. No hay una tabla de vértices compartidos, así que una esquina que toca seis triángulos se escribe seis veces. Tampoco hay un campo de unidades: una coordenada de 25 puede significar milímetros, pulgadas o metros, y casi todos los laminadores suponen milímetros. El color, la textura y los nombres de las piezas no tienen lugar en el formato básico, y precisamente por eso todos los laminadores, programas CAD y servicios de impresión lo siguen leyendo.

STL tiene dos codificaciones. El STL ASCII escribe todo como texto, con líneas como facet normal, outer loop y vertex 12.5 0 3.2, de modo que se puede abrir en un editor de texto y leer los números. El STL binario empieza con un encabezado de 80 bytes y un contador de triángulos de 4 bytes, y luego guarda cada triángulo como doce números de coma flotante de 4 bytes más un campo de atributos de 2 bytes: exactamente 50 bytes por triángulo. Esa regla hace que el peso sea fácil de prever. Un modelo de un millón de triángulos ocupa unos 50 MB en binario, y la versión ASCII de la misma malla suele ser de cuatro a seis veces mayor, porque cada dígito se convierte en un carácter.

La sencillez es a la vez su fortaleza y su trampa. Un STL no puede decir si debía ser una pieza o tres, si se exportó en pulgadas ni si sus triángulos encierran realmente un sólido. El laminador lo deduce a partir de coordenadas sin más, y cuando se equivoca el resultado es una pieza 25,4 veces más pequeña o una pared que falta. Para una pieza de un solo color diseñada por usted mismo y exportada en milímetros, nada de eso importa, y STL sigue siendo el formato con menos probabilidades de ser rechazado.

OBJ: polígonos, UV y un archivo de materiales aparte

OBJ proviene de Wavefront Technologies, cuyo programa Advanced Visualizer lo usaba a finales de los años ochenta, y se difundió durante los noventa como el formato de texto plano que casi cualquier programa 3D podía intercambiar. A diferencia de STL, mantiene una lista de vértices y construye las caras a partir de índices, así que una esquina compartida se guarda una sola vez, y las caras pueden ser triángulos, cuadriláteros o polígonos mayores. Las líneas que empiezan con v contienen posiciones; vt, coordenadas de textura (UV); vn, normales, y f, las caras. Los grupos (g) y los objetos (o) dan nombre a las piezas, de modo que un OBJ pasa por Blender, Maya o ZBrush y vuelve con su estructura intacta.

La apariencia vive fuera del archivo .obj. Una línea mtllib nombra un archivo .mtl complementario, y las líneas usemtl asignan materiales a las caras. El archivo .mtl guarda colores como Kd (difuso) y apunta a imágenes de textura con entradas como map_Kd wood.png. Por eso un OBJ con texturas son como mínimo tres archivos: la geometría, la biblioteca de materiales y una o más imágenes, todos referenciados por ruta relativa. Si se envía solo el .obj, quien lo recibe ve un modelo gris. Esa separación es útil en los flujos de videojuegos y efectos visuales, donde los artistas cambian texturas sin tocar la geometría, y es la causa más frecuente de que un modelo descargado se vea mal.

OBJ comparte el punto ciego de STL en cuanto a la escala: guarda números sin unidad. La mayoría de los programas de modelado escriben en metros o centímetros, mientras que los laminadores leen milímetros, así que un OBJ de una tienda de recursos para videojuegos puede llegar 10 o 1000 veces fuera de escala. Para imprimir, OBJ no aporta nada que el laminador use, salvo el color por vértice en algunas herramientas; si necesita imprimir un modelo artístico, suele ser más sencillo reservar las texturas para el render y enviar al laminador una malla limpia. En sentido inverso, convertir un STL en OBJ es el camino más corto para llevar un modelo de impresión a un flujo de render o de videojuegos.

3MF: un paquete ZIP pensado para imprimir

3MF fue publicado en 2015 por el 3MF Consortium, un grupo creado por Microsoft junto con empresas del sector de la impresión y el CAD. Un archivo .3mf es un archivo comprimido ZIP, el mismo formato contenedor que se analiza en ZIP vs RAR vs 7z. Si se le cambia la extensión a .zip, aparece un archivo XML 3D/3dmodel.model con la malla, un archivo de tipos de contenido, archivos de relaciones y, a menudo, miniaturas y la configuración del laminador. Cada modelo declara su unidad (micrón, milímetro, centímetro, pulgada, pie o metro), así que el problema de escala que persigue a STL y OBJ simplemente no se presenta. Los colores, los materiales base, los distintos objetos y su ubicación en la placa de impresión forman parte de la especificación.

La especificación exige además que las mallas sean manifold y estén orientadas de forma coherente: cada arista compartida por exactamente dos triángulos, todos mirando hacia afuera. Los exportadores que siguen las reglas no pueden escribir la geometría abierta y autointersecada que un STL admite sin problema. El soporte es amplio entre las herramientas actuales. PrusaSlicer, Bambu Studio, OrcaSlicer y UltiMaker Cura leen 3MF; PrusaSlicer y Bambu Studio guardan todo el proyecto como un .3mf con los ajustes de impresión y los colores pintados dentro, y la app 3D Builder de Microsoft en Windows lo abre directamente. El punto débil son los firmwares antiguos, los portales de granjas de impresión y los importadores CAD que todavía esperan STL; para esos casos, convierta el 3MF a STL y asuma que los extras se quedan en el camino.

from ↓ · to →UnidadesColorTexturasVarias piezasAjustes de impresiónRegla de malla cerrada
STL– STL to Unidades: no– STL to Color: no– STL to Texturas: no– STL to Varias piezas: no– STL to Ajustes de impresión: no– STL to Regla de malla cerrada: no
OBJ– OBJ to Unidades: noOBJ to Color: yesOBJ to Texturas: yesOBJ to Varias piezas: yes– OBJ to Ajustes de impresión: no– OBJ to Regla de malla cerrada: no
3MF3MF to Unidades: yes3MF to Color: yes3MF to Texturas: yes3MF to Varias piezas: yes3MF to Ajustes de impresión: yes3MF to Regla de malla cerrada: yes
supported not offeredLas filas son formatos; las columnas, lo que el propio archivo puede contener. En OBJ, el color y las texturas necesitan el archivo .mtl aparte y las imágenes; en 3MF, las texturas provienen de su extensión de materiales. Algunas herramientas escriben el color en los bytes sin uso del STL binario, pero ningún estándar lo contempla.
Una fila de impresoras 3D de marco abierto sobre mesas de madera; la más cercana tiene varias piezas cilíndricas azules en su placa de impresión
Foto: Unsplash

Elegir el formato según el trabajo

El formato adecuado depende de adónde va el archivo después, no de cuál es más nuevo. Si el siguiente paso es un laminador y la pieza es de un solo color, STL basta, y sigue siendo el formato que entienden todos los foros, bibliotecas de modelos y servicios de impresión. Si el siguiente paso es un motor de render, un motor de videojuegos o el programa de modelado de otro artista, OBJ conserva las UV, las normales y los grupos con nombre que STL descarta, y su forma de texto facilita revisar los problemas.

3MF se gana su lugar cuando el archivo lleva algo más que geometría. Una impresión multicolor pintada en Bambu Studio, una placa con doce piezas dispuestas para un mismo trabajo, una pieza diseñada en pulgadas o un proyecto que se quiere volver a abrir con la misma altura de capa y el mismo relleno necesitan 3MF, porque ningún otro formato de esta comparación puede guardar esa información. Si el archivo va a varios destinos, conserve la versión más completa como copia maestra y exporte desde ella las versiones más simples con un convertidor de modelos 3D, en lugar de encadenar conversiones.

STL para impresiones simples

Una pieza, un color, exportada en milímetros. Se abre en cualquier laminador, en cualquier cuadro de importación CAD y en el formulario de carga de cualquier servicio de impresión.

OBJ para modelos con textura

UV, normales y grupos con nombre para Blender, Maya, Unity o Unreal. Envíe junto a él el archivo .mtl y las imágenes de textura.

3MF para laminadores modernos

Unidades reales, colores, varios objetos y ajustes de impresión en un solo ZIP. Es el formato de proyecto nativo de PrusaSlicer y Bambu Studio.

Cinco formas en que falla un archivo 3D

La mayoría de las impresiones fallidas y las importaciones defectuosas que se atribuyen al formato son en realidad problemas de la malla, o de lo que el programa receptor supuso sobre ella. STL es el más expuesto, porque no lleva metadatos que detecten errores; OBJ comparte los problemas de escala y de archivos faltantes; 3MF evita la mayoría por diseño, aunque un exportador descuidado todavía puede escribir una malla defectuosa. Abra las filas de abajo para ver cómo se manifiesta cada falla y de dónde suele venir.

Malla no manifold

Aristas compartidas por un solo triángulo o por tres o más, huecos entre superficies o paredes de grosor cero. El laminador muestra capas que faltan, agujeros aleatorios o un aviso de aristas abiertas. La causa está en el modelado o en la exportación, a menudo por unir piezas que solo se tocan.

Normales invertidas

Algunos triángulos miran hacia adentro. Los motores de render muestran manchas negras o transparentes, y los laminadores pueden tratar esa zona como espacio vacío. Se corrige con el comando para recalcular normales de Blender, Meshmixer o la herramienta de reparación del laminador.

Confusiones entre milímetros y pulgadas

Una pieza dibujada en pulgadas llega 25,4 veces más pequeña a un laminador que supone milímetros; los centímetros leídos como milímetros dan un error de 10 veces. STL y OBJ no pueden registrar la unidad, así que hay que indicarla al exportar o al convertir.

Falta el archivo .mtl o las texturas

Un OBJ que se carga gris o magenta ha perdido su biblioteca de materiales o sus imágenes, o las rutas dentro del .mtl apuntan a una carpeta de la computadora del artista original. Mantenga todos los archivos en una misma carpeta y comprímalos juntos en un ZIP.

Archivos STL ASCII enormes

Un escaneo detallado guardado como STL ASCII puede superar varios cientos de megabytes, lo que vuelve lentos los laminadores y choca con los límites de carga. Volver a exportar la misma malla como STL binario la reduce a más o menos una quinta parte sin cambiar un solo triángulo.

Cuánto suele pesar cada formato

El peso se deriva de la estructura. El STL binario ocupa fijo 50 bytes por triángulo, así que se puede calcular antes de exportar. El STL ASCII repite cada vértice como texto y suele quedar de cuatro a seis veces por encima del binario. OBJ guarda cada vértice compartido una sola vez y lo referencia por índice, de modo que en una malla cerrada típica pesa menos que el STL ASCII y queda más o menos en el rango del STL binario, o más si también lleva UV y normales. 3MF guarda XML indexado y luego lo comprime dentro del ZIP, lo que normalmente lo convierte en el más liviano de los tres para la misma geometría.

Las cifras siguientes son habituales para una malla cerrada de unos 500 000 triángulos, como una figura detallada. Los archivos reales varían según la precisión de las coordenadas y el exportador, así que tómelas como órdenes de magnitud, útiles cuando un servicio de impresión limita las cargas o cuando un STL exportado desde un 3MF resulta varias veces más pesado.

STL binario (500 000 triángulos × 50 bytes)
≈ 25 MB
STL ASCII, misma malla, valor típico
≈ 100–150 MB
OBJ sin UV, valor típico
≈ 15–30 MB
3MF tras la compresión ZIP, valor típico
≈ 5–12 MB

Qué corrige una conversión y qué no corregirá nunca

Una conversión lee los triángulos de un contenedor y los escribe en otro. Todo lo que el formato de destino puede expresar se conserva; lo que no puede, se descarta. Por eso pasar de STL a OBJ no pierde geometría, pasar de 3MF a STL pierde colores, unidades y disposición en la placa, y pasar de OBJ a STL pierde texturas y nombres de piezas. En las herramientas 3D de UltKit, esas decisiones adicionales son explícitas: Unidades del modelo indica al convertidor qué escala usa el archivo de origen, Eje vertical resuelve la diferencia entre Y hacia arriba y Z hacia arriba que hay entre los motores de videojuegos y los laminadores, y Unir en una sola malla decide si las piezas separadas siguen separadas.

Lo que ninguna conversión hace es reparar una malla. Si un STL tiene un agujero, el OBJ que se cree a partir de él tendrá el mismo agujero, y un exportador de 3MF lo rechazará o lo escribirá de todos modos. La reparación es un paso aparte en una herramienta de mallas o en el corrector integrado del laminador, y conviene hacerla una sola vez, en el archivo maestro, antes de exportar cualquier otra cosa. Lo mismo vale para la escala: la conversión no puede saber que una pieza debía estar en pulgadas a menos que se le indique. Con el detalle ocurre igual: un STL de pocos polígonos se convierte en un OBJ o 3MF de pocos polígonos, así que vuelva a exportar desde el modelo de origen cuando la calidad importe.

Lo que hace un cambio de formato

  • Traslada los mismos triángulos a un contenedor que otro programa acepta
  • Aplica la unidad elegida en Unidades del modelo y corrige un error de escala de 25,4× o 10×
  • Gira el modelo entre Y hacia arriba y Z hacia arriba con Eje vertical
  • Reduce el peso de un STL ASCII al escribirlo en binario
  • Mantiene separadas o une las piezas, según Unir en una sola malla

Lo que deja exactamente como estaba

  • Agujeros, aristas abiertas y geometría no manifold
  • Normales invertidas o incoherentes
  • Piezas autointersecadas y paredes de grosor cero
  • El detalle que se perdió cuando la malla se exportó por primera vez
  • Colores y texturas cuando el formato de destino no tiene dónde guardarlos

Tabla de decisión: STL, OBJ o 3MF

Hay otros dos formatos que aparecen siempre que se plantea esta pregunta. STEP (ISO 10303) guarda sólidos y superficies exactos en lugar de triángulos, así que es el formato indicado cuando una pieza debe volver a Fusion 360, SolidWorks o FreeCAD para editarla. GLB, la forma binaria de glTF 2.0 del Khronos Group, empaqueta una malla con sus materiales y texturas en un solo archivo, en metros, y es el formato para mostrar un modelo en la web o en realidad aumentada en Android.

Para los tres formatos que trata este artículo, la tabla siguiente resume la elección según el destino. Si encajan dos filas, elija el formato que guarda más información y exporte el más simple después; pasar de 3MF a STL es fácil, mientras que reconstruir colores o unidades perdidos es trabajo manual.

Elija según adónde va el archivo después
SituaciónMejor formatoPor qué
Pieza de un solo color que va a cualquier laminadorSTL (binario)Compatibilidad universal; el laminador no necesita nada más
Subida a una biblioteca de modelos o a un servicio de impresiónSTL, más 3MF si lo ofrecenSTL siempre se acepta; 3MF conserva unidades y colores
Impresión multicolor o multimaterial3MFEs el único de estos formatos que guarda colores y materiales por pieza para el laminador
Placa con varias piezas y ajustes de impresión3MFGuarda la ubicación de los objetos y los ajustes del laminador en un solo archivo
Pieza diseñada en pulgadas3MFDeclara la unidad, así que nada se escala por 25,4
Modelo con texturas para Blender, Unity o UnrealOBJ (+ .mtl e imágenes)Conserva UV, normales y asignaciones de materiales
Revisión rápida en un editor de textoOBJ o STL ASCIITexto plano que se puede leer línea por línea
Firmware o software antiguo que solo admite STLSTLSe quitan los extras y se envía la malla

Puntos clave

  • STL guarda solo triángulos: sin unidades, sin color y con 50 bytes por triángulo en su forma binaria.
  • OBJ agrega UV, normales y grupos con nombre, pero sus colores y texturas dependen de un archivo .mtl aparte y de archivos de imagen.
  • 3MF es un ZIP de XML que registra unidades, colores, varios objetos y ajustes de impresión, y exige mallas cerradas.
  • Use STL para impresiones simples de un solo color, OBJ para modelos con textura en flujos de arte y videojuegos, y 3MF siempre que su laminador lo admita.
  • Convertir cambia el contenedor, no la malla: repare agujeros y normales en una herramienta de mallas e indique usted mismo la unidad.
CompartirXFacebookWhatsAppTelegram

Preguntas frecuentes

¿3MF está reemplazando a STL en la impresión 3D?

Poco a poco, en los flujos de impresión. PrusaSlicer y Bambu Studio ya guardan los proyectos en 3MF, pero STL sigue siendo el formato que aceptan todas las herramientas y bibliotecas de modelos, así que ambos convivirán durante años.

¿Un STL binario puede guardar color?

No de forma estándar. Algunos programas escriben el color en el campo de atributos de 2 bytes de cada triángulo, pero la mayoría de los laminadores lo ignoran, así que use 3MF u OBJ cuando el color importe.

¿Por qué mi OBJ se ve gris después de descargarlo?

El archivo .mtl o las imágenes de textura quedaron atrás, o las rutas dentro del .mtl apuntan a carpetas que no existen en su computadora. Ponga el .obj, el .mtl y las imágenes en una misma carpeta y vuelva a cargar el modelo.

¿El STL ASCII o el STL binario da una impresión más precisa?

En la práctica, ninguno imprime con más precisión. Ambos describen los mismos triángulos; el binario guarda las coordenadas como números de coma flotante de 32 bits y el ASCII como texto, y los archivos binarios suelen ser varias veces más livianos.

¿Se puede volver a convertir un OBJ en STL para imprimirlo?

Sí. Los triángulos pasan sin cambios, mientras que las UV, los materiales y las texturas se descartan porque STL no tiene dónde guardarlos. Revise la escala después, ya que los OBJ de los programas de modelado suelen estar en metros o centímetros.

¿Qué formato 3D conviene usar para compartir un modelo que otros van a imprimir?

Ofrezca un STL para la máxima compatibilidad y, si el modelo tiene varias piezas o colores, o se diseñó en pulgadas, agregue un 3MF al lado para que quienes usan un laminador moderno obtengan la configuración completa.

Siga leyendo