SupaVoxel
3D-форматы файлов

STL vs OBJ: какой формат выбрать?

Выбирайте STL, когда нужна только печатная форма, и OBJ, когда модель содержит UV, текстуры или цвета. Оба формата открывает любой слайсер, и конвертировать их можно бесплатно.

  • Измеренные размеры файлов
  • Проверка работы слайсеров
  • Бесплатные просмотрщики и конвертеры
Обновлено октябрь 2026 г.

STL vs OBJ: короткий ответ

Для одноцветной 3D-печати STL — более безопасный выбор по умолчанию: это самый старый и универсально поддерживаемый формат сетки, и он хранит только треугольники, поэтому слайсеру нечего прочитать неправильно. Выбирайте OBJ, когда тот же файл должен ещё и правильно выглядеть на экране — в Blender, игровом движке или рендерере, потому что OBJ сохраняет текстурные координаты (UV), нормали вершин и ссылку на файл материала.

Выбор STL vs OBJ на самом деле сводится к тому, что должно пережить экспорт. Только форма? STL. Форма плюс внешний вид поверхности? OBJ. Если нужен цвет на самом принтере, ни тот ни другой не идеален: используйте 3MF, который слайсеры читают как назначения филамента.

У обоих форматов есть две общие ловушки. В них нет поля единиц, поэтому модель может прийти в 25,4 раза меньше (сохранена в дюймах) или в 1 000 раз меньше (сохранена в метрах). И оба — простые треугольные сетки, поэтому кривые уже разбиты на грани; ни один не сохраняет точные CAD-поверхности, как STEP-файл.

Сравнительная таблица STL vs OBJ

Что каждый формат может и не может хранить — по описаниям форматов и тому, как современные инструменты их реально читают.

STLOBJ
Тип геометрииТолько треугольники; каждый треугольник перечисляет свои 3 вершины плюс нормаль граниПолигоны (треугольники, квады, n-угольники) с общими индексированными вершинами; спецификация также допускает NURBS-кривые и поверхности, которые читают немногие инструменты
Цвет / текстураВ стандарте нет; два несовместимых вендорских хака хранят 15-битный цвет на граньUV-координаты в файле; цвета и изображения текстур подключаются через отдельный .mtl-файл
ЕдиницыНет; слайсеры считают, что это миллиметрыНет; решает принимающее приложение
МатериалыНетДиффузный цвет, зеркальность, прозрачность и карты текстур в .mtl; PBR metal/roughness только через неофициальные расширения
Размер файлаБинарный: 84 байта + 50 байт на треугольник. ASCII: примерно в 6 раз большеТолько текст; для одной геометрии меньше бинарного STL, но больше, как только записаны UV и нормали
РедактируемостьСложно редактировать: «суп» из несвязанных треугольниковПроще: связная топология, группы и квады сохраняются
Поддержка в ПОЛюбой слайсер, CAD- и mesh-инструментЛюбой слайсер, Blender, Maya, 3ds Max, Unity, Unreal, большинство просмотрщиков
Использование в печатиДе-факто стандарт для одноцветной печатиПодходит для печати; PrusaSlicer игнорирует его материалы, Bambu Studio может сопоставить его цвета с филаментами

Структура бинарного STL по описанию формата: 80-байтовый заголовок, 4-байтовое число треугольников, затем 50 байт на треугольник.

Что внутри STL- и OBJ-файла

STL-файл, созданный в 1987 году для первых стереолитографических машин 3D Systems, — это список треугольников. Каждый треугольник несёт вектор нормали и три угловые точки, записанные полностью. Поскольку соседние треугольники никак не связаны, вершина, общая для шести треугольников, хранится шесть раз, и принимающему ПО приходится заново восстанавливать связность, прежде чем что-либо исправить или упростить.

OBJ-файл от Wavefront Technologies — это текстовый файл с отдельными списками: строки v для позиций вершин, vt для текстурных координат, vn для нормалей и строки f, которые строят грани, ссылаясь на эти списки. Строка mtllib называет .mtl-файл, в котором хранятся цвета и пути к изображениям текстур. Именно благодаря этой индексации OBJ сохраняет сетку связной и может нести UV-развёртки, для которых в STL просто нет места.

  • STL: одна запись на треугольник, и ничего больше
  • OBJ: вершины, UV и нормали перечислены один раз и переиспользуются
  • Текстуры OBJ лежат в отдельных файлах, которые нужно держать рядом с ним

Размер файлов STL vs OBJ: одна модель, сохранённая обоими способами

Мы экспортировали одну и ту же модель, сгенерированную ИИ, — стимпанк-робота-рыцаря из нашей галереи с 500 000 треугольников, 287 963 вершинами и цветной текстурой 2048 x 2048 — в каждый вариант и измерили файлы.

ЭкспортЧто содержитРазмер
Бинарный STLТреугольники и нормали граней25.0 MB
ASCII STLТе же данные в виде читаемого текста150.9 MB
OBJ, только геометрияПозиции вершин и грани21.4 MB
OBJ с UV и нормалямиПозиции, UV, нормали, грани38.6 MB
OBJ с текстурами, полный набор.obj + .mtl (198 байт) + PNG-текстура (5.0 MB)43.6 MB в 3 файлах
3MF, только геометрия (для справки)Сжатая XML-сетка в миллиметрах10.3 MB

Размер бинарного STL точен: 84 + 50 x 500 000 = 25 000 084 байта. OBJ выигрывает на одной геометрии, потому что каждая из 287 963 вершин записана один раз, а не по разу на треугольник.

OBJ vs STL для 3D-печати

Слайсеры воспринимают оба формата как сетку для нарезки, поэтому корректный файл печатается одинаково в любом случае. Разница в том, что выбрасывается. В документации PrusaSlicer сказано, что информация о материалах и текстурах в OBJ при импорте игнорируется, и он читает как ASCII, так и бинарный STL. UltiMaker Cura включает STL и OBJ в список поддерживаемых типов моделей наряду с 3MF, PLY и glTF. Bambu Studio умеет читать цвета из OBJ и предлагает сопоставить их с филаментами AMS, поэтому на принтере Bambu OBJ полезнее STL, хотя 3MF всё равно остаётся более надёжным путём для многоцветной печати.

Что на самом деле ломает печать — это геометрия, а не формат: дыры, перевёрнутые нормали и самопересечения. Прогоните подозрительный файл через бесплатный инструмент ремонта STL перед нарезкой; он принимает сетку и возвращает водонепроницаемый STL.

  • Та же сетка, та же траектория: формат не меняет качество печати
  • Текстуры в OBJ большинство слайсеров отбрасывают
  • Для цветной печати экспортируйте 3MF

Когда использовать STL, а когда OBJ

Решите STL vs OBJ, исходя из того, куда файл отправится дальше.

Одноцветная FDM- или смоляная печать

Используйте STL. Его принимает любой слайсер и сервис печати, и нет побочных файлов, которые можно потерять. Это ещё и формат, который чаще всего встречается на сайтах моделей вроде Printables и Thingiverse.

Модель с текстурами для Blender или игры

Используйте OBJ или, лучше, GLB, который упаковывает текстуры в один файл. OBJ сохраняет UV, поэтому текстура ложится куда надо.

Многоцветная печать на Bambu AMS или Prusa MMU

Используйте 3MF. Если у вас есть только OBJ с цветами, Bambu Studio может их сопоставить, но 3MF напрямую хранит назначения филамента для каждой части.

Отправка детали механику или CAD-пользователю

Используйте STEP, если он есть. Оба mesh-формата теряют точные кривые, которые нужны CAD-пользователю для редактирования отверстий и скруглений.

Быстрый предпросмотр для отправки

OBJ открывается почти везде с цветом. Если он должен попасть на веб-страницу, конвертируйте в GLB ради одного компактного файла.

Архивирование готовой к печати версии

Храните бинарный STL рядом с проектом 3MF. Это единственный формат, который через десять лет откроет любой инструмент.

Конвертация между STL и OBJ без сюрпризов

В одну сторону конвертация без потерь для формы, в другую — с потерей внешнего вида.

Рекомендуем
  • Держите .mtl и изображения текстур в одной папке с OBJ и архивируйте их вместе при передаче
  • Проверьте размер модели сразу после импорта; если он отличается в 25.4 раза, файл был сохранён в дюймах
  • Используйте бинарный STL, а не ASCII, если инструмент специально не просит текст
  • Просмотрите результат в просмотрщике, прежде чем нарезать или отправлять
Избегайте
  • Не ждите, что конвертация STL в OBJ вернёт цвета или UV: их никогда не было в STL
  • Не отправляйте голый .obj, когда важен внешний вид; без .mtl он откроется серым
  • Не считайте, что меньший файл — худшего качества; геометрия OBJ меньше, потому что вершины общие
  • Не переименовывайте .obj в .stl; внутренняя структура отличается, и файл не загрузится

FAQ

Частые вопросы

Что лучше для 3D-печати: STL или OBJ?

Для одноцветной печати они дают одинаковую траекторию, поэтому выбирайте STL ради максимальной совместимости и минимума побочных файлов. OBJ помогает только когда важен цвет: Bambu Studio может сопоставить цвета OBJ с филаментами AMS, а PrusaSlicer игнорирует материалы OBJ. Для надёжной многоцветной печати на любом слайсере экспортируйте 3MF, который хранит назначения филамента для каждой части, а не полагается на текстурные или материальные файлы.

Сохраняет ли OBJ-файл цвет и текстуры?

Да, но не внутри самого .obj. OBJ содержит UV-координаты и ссылается на файл материала .mtl, а .mtl ссылается на изображения текстур, например PNG. Все три должны передаваться вместе. Если вы получили только .obj, модель откроется серой. Для одного файла с включёнными текстурами используйте GLB вместо OBJ.

Почему мой STL-файл намного больше OBJ?

STL повторяет каждую вершину для каждого треугольника, который к ней примыкает, а OBJ перечисляет каждую вершину один раз и ссылается на неё. В нашем тесте с 500 000 треугольников бинарный STL занял 25.0 MB, а OBJ только с геометрией — 21.4 MB. ASCII STL гораздо хуже: 150.9 MB. Как только вы добавляете UV и нормали, OBJ вырастает до 38.6 MB, и разрыв меняется на противоположный.

Можно ли конвертировать STL в OBJ без потери качества?

Да. STL в OBJ сохраняет все треугольники и позиции, а OBJ чуть меньше за счёт общих вершин. Цвет и UV не вернуть. Бесплатный конвертер с 3D-превью работает в браузере.

STL или OBJ: что предпочтёт Blender?

Blender импортирует оба формата, но OBJ лучше подходит для моделей с текстурами — UV и слоты материалов сохраняются. STL импортируется как один серый меш без UV-развёртки. Если переносите текстурированную модель в Blender, GLB удобнее OBJ: текстуры встроены, а PBR-материалы напрямую ложатся на Principled BSDF в Blender.

Почему модель импортируется крошечной или гигантской?

Ни STL, ни OBJ не хранят единицы измерения, поэтому принимающее приложение угадывает. Слайсеры считают, что это миллиметры: модель, сохранённая в дюймах, оказывается в 25,4 раза меньше, а в метрах — в 1000 раз меньше. PrusaSlicer и Bambu Studio предлагают конвертировать, если модель выглядит так, будто сохранена в дюймах. В остальных случаях масштабируйте её с нужным коэффициентом перед слайсингом.

Может ли файл STL содержать цвет?

В стандарте — нет. Два вендорских варианта — от VisCAM/SolidView и Materialise Magics — прячут 15-битный цвет в двух свободных байтах каждого треугольника, но хранят каналы в обратном порядке, и большинство слайсеров игнорируют оба. Если нужен цвет на напечатанной детали, используйте 3MF; если на экране — OBJ или GLB.

Как получить STL или OBJ из фотографии?

Загрузите фото в студию SupaVoxel для генерации 3D по изображению — и получите модель без текстуры обычно меньше чем за минуту или с текстурой примерно за 3–5 минут. Новые аккаунты получают 3 бесплатных кредита и могут бесплатно скачать GLB; экспорт в STL, OBJ и 3MF доступен на платных тарифах. Ещё можно конвертировать бесплатный GLB в STL или OBJ нашими браузерными конвертерами.

Начать бесплатно

Разобрались со STL и OBJ? Теперь создайте модель

Превратите фото в 3D-модель обычно меньше чем за минуту, затем экспортируйте её в STL, OBJ или 3MF на платном тарифе — или бесплатно просматривайте и конвертируйте файлы здесь.

Без банковской карты · 3 бесплатных кредита на старте