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 — це щонайменше три файли: геометрія, бібліотека матеріалів і одне чи кілька зображень, які підключено за відносним шляхом. Якщо надіслати лише .obj, одержувач побачить сіру модель. Такий поділ корисний у ігрових і VFX-конвеєрах, де художники міняють текстури, не чіпаючи геометрію, і він же — найчастіша причина, чому завантажена модель виглядає неправильно.
OBJ має ту саму сліпу пляму щодо масштабу, що й STL: він зберігає голі числа без одиниць. Більшість програм моделювання записують метри чи сантиметри, а слайсери читають міліметри, тож OBJ із магазину ігрових ресурсів може виявитися в 10 або 1000 разів іншого розміру. Для друку OBJ не додає нічого, що використовує слайсер, окрім кольору вершин у кількох програмах, тому якщо треба надрукувати арт-ресурс, зазвичай найпростіше залишити текстури для рендерингу, а слайсеру віддати чисту сітку. У зворотний бік перетворення STL в OBJ — найкоротший шлях від моделі для друку до рендерингу чи гри.
3MF: ZIP-пакет, створений для друку
3MF опублікувало 2015 року 3MF Consortium — об’єднання, яке започаткувала Microsoft разом із компаніями з індустрії друку та CAD. Файл .3mf — це ZIP-архів, той самий контейнер, що розглянуто в статті ZIP vs RAR vs 7z. Перейменуйте його на .zip, і ви знайдете XML-файл 3D/3dmodel.model із сіткою, файл типів вмісту, файли зв’язків, а часто й мініатюри та конфігурацію слайсера. Кожна модель оголошує свою одиницю (мікрон, міліметр, сантиметр, дюйм, фут або метр), тож проблема масштабу, яка переслідує STL і OBJ, тут просто не виникає. Кольори, базові матеріали, кілька об’єктів і їх розташування на столі — усе це частина специфікації.
Специфікація також вимагає, щоб сітки були manifold і послідовно орієнтованими: кожне ребро спільне рівно для двох трикутників, і всі вони дивляться назовні. Експортери, що дотримуються правил, не можуть записати відкриту геометрію із самоперетинами, яку 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 | Кілька деталей | Параметри друку | Правило manifold |
|---|---|---|---|---|---|---|
| STL | – STL to Units: no | – STL to Color: no | – STL to Textures: no | – STL to Кілька деталей: no | – STL to Параметри друку: no | – STL to Правило manifold: no |
| OBJ | – OBJ to Units: no | OBJ to Color: yes | OBJ to Textures: yes | OBJ to Кілька деталей: yes | – OBJ to Параметри друку: no | – OBJ to Правило manifold: no |
| 3MF | 3MF to Units: yes | 3MF to Color: yes | 3MF to Textures: yes | 3MF to Кілька деталей: yes | 3MF to Параметри друку: yes | 3MF to Правило manifold: 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 уникає більшості з них за задумом, хоча недбалий експортер усе одно може записати погану сітку. Розгорніть рядки нижче, щоб побачити, як виглядає кожна проблема і звідки вона зазвичай береться.
Non-manifold сітка
Ребра, спільні для одного трикутника або для трьох чи більше, проміжки між поверхнями чи стінки з нульовою товщиною. Слайсер показує відсутні шари, випадкові отвори або попередження про відкриті ребра. Причина в моделюванні чи експорті, часто через об’єднання деталей, що лише торкаються.
Інвертовані нормалі
Деякі трикутники дивляться всередину. Рендерери показують чорні або прозорі ділянки, а слайсери можуть вважати область порожнім простором. Виправляє команда перерахунку нормалей у 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 хв читання