STL, OBJ или 3MF: какой формат 3D-файла выбрать?
Используйте STL для одноцветной печати, когда модель нужно просто нарезать в слайсере, OBJ — когда у модели есть текстуры для рендера или игрового движка, и 3MF — когда ваш слайсер его поддерживает и вам нужно, чтобы единицы измерения, цвета и несколько деталей дошли без потерь. Формат определяет, какие метаданные передаются вместе с сеткой, но никогда не определяет, исправна ли сама сетка.
STL: список треугольников и больше ничего
STL создали в 1987 году для первых стереолитографических машин 3D Systems, и это видно по его устройству. Файл — плоский список треугольников, каждый описан нормалью грани и тремя угловыми точками. Общей таблицы вершин нет, поэтому вершина, к которой сходятся шесть треугольников, записывается шесть раз. Поля единиц измерения тоже нет: координата 25 может означать миллиметры, дюймы или метры, и почти все слайсеры считают её миллиметрами. Цвету, текстуре и названиям деталей в базовом формате места нет, и именно поэтому его до сих пор читают все слайсеры, CAD-программы и сервисы печати.
У STL две кодировки. ASCII STL записывает всё текстом, строками вроде facet normal, outer loop и vertex 12.5 0 3.2, так что файл можно открыть в текстовом редакторе и прочитать числа. Бинарный STL начинается с 80-байтового заголовка и 4-байтового числа треугольников, затем каждый треугольник хранится как двенадцать 4-байтовых чисел с плавающей точкой плюс 2-байтовое поле атрибутов: ровно 50 байт на треугольник. Поэтому размер легко предсказать. Модель из миллиона треугольников в бинарном виде занимает около 50 MB, а ASCII-версия той же сетки обычно в четыре–шесть раз больше, потому что каждая цифра становится символом.
Простота — и сила, и ловушка. По STL нельзя узнать, должен ли он быть одной деталью или тремя, экспортирован ли в дюймах и образуют ли его треугольники замкнутое тело. Слайсер выясняет это по сырым координатам, и если ошибается, получается деталь в 25,4 раза меньше или пропавшая стенка. Для одноцветной детали, которую вы сами спроектировали и экспортировали в миллиметрах, всё это не важно, а STL остаётся форматом, который меньше всего рискует быть отвергнутым.
OBJ: полигоны, UV и отдельный файл материалов
OBJ появился в Wavefront Technologies, чьё ПО Advanced Visualizer использовало его в конце 1980-х, а в 1990-х он распространился как текстовый формат, который могли обменивать почти все 3D-программы. В отличие от STL, он хранит список вершин и строит грани по индексам, так что общая вершина записана один раз, а грани могут быть треугольниками, четырёхугольниками и более крупными полигонами. Строки с v содержат позиции, vt — текстурные координаты (UV), vn — нормали, f — грани. Группы (g) и объекты (o) задают имена частям, поэтому OBJ проходит через Blender, Maya или ZBrush с сохранением структуры.
Внешний вид хранится вне файла .obj. Строка mtllib называет сопутствующий файл .mtl, а строки usemtl назначают материалы граням. В .mtl записаны цвета, например Kd (диффузный), и ссылки на изображения текстур в записях вроде map_Kd wood.png. Модель с текстурами — это как минимум три файла: геометрия, библиотека материалов и одно или несколько изображений, и все они связаны относительными путями. Если отправить только .obj, получатель увидит серую модель. Такое разделение удобно в игровых и VFX-конвейерах, где художники меняют текстуры, не трогая геометрию, и это же самая частая причина того, что скачанная модель выглядит неправильно.
В масштабе у OBJ та же слепая зона, что у STL: он хранит голые числа без единиц. Большинство программ моделирования пишут метры или сантиметры, а слайсеры читают миллиметры, поэтому OBJ из магазина игровых ассетов может прийти с ошибкой в 10 или 1000 раз. Для печати OBJ не даёт ничего, что использует слайсер, кроме цвета вершин в нескольких программах, так что художественный ассет проще всего оставить с текстурами для рендера, а слайсеру отдать чистую сетку. В обратную сторону перевод STL в OBJ — кратчайший путь из модели для печати в рендер или игру.
3MF: ZIP-пакет, созданный для печати
3MF опубликовал в 2015 году 3MF Consortium — группа, которую основала Microsoft вместе с компаниями из индустрии печати и CAD. Файл .3mf — это ZIP-архив, тот же контейнер, что разобран в статье ZIP, RAR и 7z. Если переименовать его в .zip, внутри найдётся XML-файл 3D/3dmodel.model с сеткой, файл типов содержимого, файлы связей и часто миниатюры и конфигурация слайсера. Каждая модель объявляет единицу измерения (микрон, миллиметр, сантиметр, дюйм, фут или метр), так что проблемы масштаба, преследующей STL и OBJ, просто нет. Цвета, базовые материалы, несколько объектов и их расположение на столе входят в спецификацию.
Спецификация также требует, чтобы сетки были многообразными и согласованно ориентированными: каждое ребро общее ровно для двух треугольников, и все они смотрят наружу. Экспортёры, следующие правилам, не могут записать открытую самопересекающуюся геометрию, которую STL спокойно хранит. Поддержка среди актуальных программ широкая. PrusaSlicer, Bambu Studio, OrcaSlicer и UltiMaker Cura читают 3MF, PrusaSlicer и Bambu Studio сохраняют весь проект как .3mf с настройками печати и раскрашенными цветами, а приложение Microsoft 3D Builder в Windows открывает его напрямую. Слабое место — старые прошивки, порталы печатных ферм и CAD-импортёры, которые всё ещё ждут STL; для них конвертируйте 3MF в STL и смиритесь с тем, что дополнительные данные останутся позади.
| from ↓ · to → | Units | Color | Textures | Несколько деталей | Параметры печати | Правило многообразности |
|---|---|---|---|---|---|---|
| STL | – STL to Units: no | – STL to Color: no | – STL to Textures: no | – STL to Несколько деталей: no | – STL to Параметры печати: no | – STL to Правило многообразности: no |
| OBJ | – OBJ to Units: no | OBJ to Color: yes | OBJ to Textures: yes | OBJ to Несколько деталей: yes | – OBJ to Параметры печати: no | – OBJ to Правило многообразности: no |
| 3MF | 3MF to Units: yes | 3MF to Color: yes | 3MF to Textures: yes | 3MF to Несколько деталей: yes | 3MF to Параметры печати: yes | 3MF to Правило многообразности: yes |
Какой формат под какую задачу
Правильный формат зависит от того, куда файл пойдёт дальше, а не от того, какой из них новее. Если дальше слайсер, а деталь одноцветная, подойдёт STL, и его по-прежнему понимают все форумы, библиотеки моделей и сервисы печати. Если дальше рендерер, игровой движок или программа моделирования другого художника, OBJ сохранит UV, нормали и именованные группы, которые STL теряет, а его текстовая форма позволяет легко найти проблемы.
3MF оправдывает себя, когда файл несёт больше, чем геометрию. Многоцветная печать, раскрашенная в Bambu Studio, стол с двенадцатью деталями, расставленными под одно задание, деталь, спроектированная в дюймах, или проект, который нужно открыть снова с теми же высотой слоя и заполнением, — всё это требует 3MF, потому что ни один другой формат из рассмотренных не вместит такие данные. Если назначений несколько, храните самую полную версию как основную и экспортируйте из неё более простые с помощью конвертера 3D-моделей, а не цепочки конвертаций.
STL для простой печати
Одна деталь, один цвет, экспорт в миллиметрах. Открывается в любом слайсере, диалоге импорта CAD и форме загрузки сервиса печати.
OBJ для моделей с текстурами
UV, нормали и именованные группы для Blender, Maya, Unity или Unreal. Передавайте вместе с ним файл .mtl и изображения текстур.
3MF для современных слайсеров
Настоящие единицы, цвета, несколько объектов и параметры печати в одном ZIP. Родной формат проектов PrusaSlicer и Bambu Studio.
Пять причин, по которым 3D-файл ломается
Большинство неудачных печатей и сломанных импортов, которые списывают на формат, на деле связаны с сеткой или с тем, что программа-получатель о ней предположила. Сильнее всего уязвим STL, ведь в нём нет метаданных для отлова ошибок; у OBJ те же проблемы с масштабом и потерянными файлами; 3MF по замыслу избегает большинства из них, хотя небрежный экспортёр всё равно может записать плохую сетку. Откройте строки ниже, чтобы увидеть, как выглядит каждая проблема и откуда она обычно берётся.
Немногообразная сетка
Рёбра, общие для одного треугольника или для трёх и более, зазоры между поверхностями или стенки нулевой толщины. Слайсер показывает пропавшие слои, случайные дыры или предупреждение об открытых рёбрах. Причина в моделировании или экспорте, часто в объединении деталей, которые лишь касаются друг друга.
Перевёрнутые нормали
Часть треугольников смотрит внутрь. Рендереры показывают чёрные или прозрачные участки, а слайсеры могут считать область пустым пространством. Исправляет команда пересчёта нормалей в Blender, Meshmixer или инструмент восстановления в слайсере.
Путаница миллиметров и дюймов
Деталь, нарисованная в дюймах, приходит в 25,4 раза меньше в слайсере, который считает миллиметры; сантиметры, прочитанные как миллиметры, дают ошибку в 10 раз. STL и OBJ не могут записать единицу, поэтому её задают при экспорте или конвертации.
Нет файла .mtl или текстур
OBJ, который загружается серым или пурпурным, потерял библиотеку материалов или изображения, либо пути внутри .mtl указывают на папку на компьютере исходного художника. Держите все файлы в одной папке и архивируйте их вместе.
Огромные ASCII STL
Подробный скан, сохранённый как ASCII STL, может занимать несколько сотен мегабайт, что тормозит слайсеры и упирается в лимиты загрузки. Повторный экспорт той же сетки в бинарный STL уменьшает файл примерно в пять раз, не меняя ни одного треугольника.
Сколько обычно весит файл в каждом формате
Размер вытекает из структуры. Бинарный STL фиксирован: 50 байт на треугольник, так что его можно рассчитать до экспорта. ASCII STL повторяет каждую вершину текстом и обычно в четыре–шесть раз больше бинарного. OBJ хранит каждую общую вершину один раз и ссылается на неё по индексу, поэтому для типичной замкнутой сетки он меньше ASCII STL и примерно в диапазоне бинарного STL, а если несёт ещё UV и нормали — больше. 3MF хранит индексированный XML и сжимает его внутри ZIP, поэтому для той же геометрии обычно получается самым маленьким из трёх.
Цифры ниже типичны для замкнутой сетки примерно из 500 000 треугольников, например подробной фигурки. Реальные файлы зависят от точности координат и экспортёра, так что считайте их порядками величин: они пригодятся, когда сервис печати ограничивает загрузку или STL, экспортированный из 3MF, получается в несколько раз больше.
- Бинарный STL (500 000 треугольников × 50 байт)
- ≈ 25 MB
- ASCII STL, та же сетка, типично
- ≈ 100–150 MB
- OBJ без UV, типично
- ≈ 15–30 MB
- 3MF после сжатия в ZIP, типично
- ≈ 5–12 MB
Что исправляет конвертация, а что не исправит никогда
Конвертация считывает треугольники из одного контейнера и записывает их в другой. Всё, что может выразить целевой формат, переносится; всё, что не может, теряется. Поэтому STL в OBJ не теряет геометрию, 3MF в STL теряет цвета, единицы и расположение на столе, а OBJ в STL — текстуры и названия частей. В 3D-инструментах UltKit дополнительные решения задаются явно: Единицы модели сообщают конвертеру, в каком масштабе записан исходный файл, Вертикальная ось учитывает разницу между Y-up в игровых движках и Z-up в слайсерах, а Объединить в одну сетку определяет, останутся ли отдельные части раздельными.
Чего не делает ни одна конвертация — не исправляет сетку. Если в STL есть дыра, в OBJ, полученном из него, будет та же дыра, а экспортёр 3MF либо откажется её записывать, либо запишет как есть. Исправление сетки — отдельный шаг в программе для работы с сетками или во встроенном исправлении слайсера; лучше выполнить его один раз в главном файле, прежде чем экспортировать что-либо ещё. То же с масштабом: конвертер не узнает, что деталь задумывалась в дюймах, пока вы ему не скажете. С детализацией так же: низкополигональный STL станет низкополигональным OBJ или 3MF, поэтому, если важно качество, экспортируйте файл заново из исходной модели.
Что делает смена формата
- Переносит те же треугольники в контейнер, который принимает другая программа
- Применяет единицу, выбранную в Единицы модели, и исправляет ошибку масштаба в 25,4 или 10 раз
- Поворачивает модель между Y-up и Z-up с помощью Вертикальная ось
- Уменьшает ASCII STL, записывая его в двоичном виде
- Сохраняет раздельные части или объединяет их в зависимости от Объединить в одну сетку
Что остаётся без изменений
- Дыры, открытые рёбра и немногообразная геометрия
- Перевёрнутые или несогласованные нормали
- Самопересекающиеся части и стенки нулевой толщины
- Детали, потерянные при первом экспорте сетки
- Цвета и текстуры, если в целевом формате для них нет места
Таблица выбора: STL, OBJ или 3MF
Ещё два формата всегда всплывают в этом вопросе. STEP (ISO 10303) хранит точные тела и поверхности, а не треугольники, поэтому он нужен, когда деталь надо вернуть в Fusion 360, SolidWorks или FreeCAD для редактирования. GLB — двоичная форма glTF 2.0 от Khronos Group — упаковывает сетку вместе с материалами и текстурами в один файл в метрах и подходит для показа модели в вебе и в AR на Android.
Для трёх форматов, о которых идёт речь в статье, таблица ниже подводит итог выбора по назначению. Если подходят две строки, выбирайте формат, который хранит больше информации, а более простой экспортируйте позже: из 3MF в STL перейти легко, а восстанавливать потерянные цвета или единицы приходится вручную.
| Ситуация | Лучший формат | Почему |
|---|---|---|
| Одноцветная деталь для любого слайсера | STL (двоичный) | Поддерживается везде; слайсеру больше ничего не нужно |
| Загрузка в библиотеку моделей или сервис печати | STL, плюс 3MF, если он принимается | STL принимают всегда; 3MF сохраняет единицы и цвета |
| Многоцветная печать или печать несколькими материалами | 3MF | Единственный из этих форматов, который хранит цвета и материалы отдельных частей для слайсеров |
| Стол с несколькими деталями и настройками печати | 3MF | Хранит расположение объектов и настройки слайсера в одном файле |
| Деталь, спроектированная в дюймах | 3MF | Указывает единицу, поэтому масштабирование на 25,4 не нужно |
| Модель с текстурами для Blender, Unity или Unreal | OBJ (+ .mtl и изображения) | Сохраняет UV, нормали и назначение материалов |
| Быстрая проверка в текстовом редакторе | OBJ или ASCII STL | Простой текст, который можно читать построчно |
| Старая прошивка или программа, которая показывает только STL | STL | Уберите лишнее и отправьте сетку |
Главное
- STL хранит только треугольники: без единиц, без цвета, в двоичном виде — 50 байт на треугольник.
- OBJ добавляет UV, нормали и именованные группы, но его цвета и текстуры зависят от отдельного файла .mtl и файлов изображений.
- 3MF — это ZIP с XML, в котором записаны единицы, цвета, несколько объектов и настройки печати; он требует замкнутых сеток.
- Используйте STL для простой одноцветной печати, OBJ для моделей с текстурами в арте и играх, а 3MF — всегда, когда его поддерживает слайсер.
- Конвертация меняет контейнер, а не сетку: исправляйте дыры и нормали в программе для сеток и задавайте единицу самостоятельно.
Часто задаваемые вопросы
Заменит ли 3MF формат STL?
Медленно — в сфере печати. PrusaSlicer и Bambu Studio уже сохраняют проекты в 3MF, но STL по-прежнему принимают все программы и библиотеки моделей, так что оба формата будут сосуществовать ещё годами.
Может ли бинарный STL хранить цвет?
Стандартного способа нет. Некоторые программы записывают цвет в 2-байтовое поле атрибутов каждого треугольника, но большинство слайсеров его игнорируют, поэтому если важен цвет, используйте 3MF или OBJ.
Почему мой OBJ после скачивания отображается серым?
Файл .mtl или изображения текстур остались в другом месте, либо пути внутри .mtl указывают на папки, которых нет на вашем компьютере. Положите .obj, .mtl и изображения в одну папку и загрузите модель снова.
Какой STL дает более точную печать: ASCII или бинарный?
На практике ни один не печатает точнее. Оба описывают одни и те же треугольники; двоичный формат хранит координаты как 32-битные числа с плавающей запятой, ASCII — как текст, а двоичные файлы обычно в несколько раз меньше.
Можно ли конвертировать OBJ обратно в STL для печати?
Да. Треугольники переносятся без изменений, а UV, материалы и текстуры отбрасываются, так как в STL для них нет места. После этого проверьте масштаб: OBJ из программ моделирования часто записаны в метрах или сантиметрах.
В каком формате делиться моделью, чтобы ее могли напечатать другие?
Предложите STL для максимальной совместимости, а если в модели несколько частей, есть цвета или она спроектирована в дюймах — добавьте рядом 3MF, чтобы пользователи с современным слайсером получили всю настройку целиком.
Читайте также
ZIP, RAR или 7z: какой формат архива выбрать?
ZIP открывается на любом компьютере и телефоне, 7z сжимает сильнее и скрывает имена файлов, RAR дает записи восстановления. Сжатие, шифрование, поддержка ОС.
Lucas Ferreira · 27 сент. 2026 г. · 11 мин чтения
TTF, OTF или WOFF: какой формат шрифта выбрать для ПК и сайта
TTF или OTF для установки в Windows, macOS и Linux, WOFF2 для сайта с WOFF как запасным вариантом. Чем отличаются форматы шрифтов, их размер и что меняет конвертация.
Jonas Weber · 10 сент. 2026 г. · 11 мин чтения
Как конвертировать PNG в SVG: трассировка логотипов и иконок
PNG становится настоящим SVG только после трассировки. Какие изображения хорошо векторизуются, как подготовить PNG, какие настройки выбрать и как проверить контуры.
Jonas Weber · 4 окт. 2026 г. · 12 мин чтения