Wavefront OBJ (.obj)
Wavefront СтандартWavefront 3D Object (OBJ): це класичний формат геометричних 3D-сіток, сумісний із широким спектром програм, розроблений компанією Wavefront Technologies. Він є базовим форматом обміну між програмами для 3D-моделювання, ліплення та 3D-друку.
Конвертувати з OBJ у STL
Безкоштовний конвертер з OBJ у STL у браузері. Миттєво конвертуйте файли на своєму пристрої.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли OBJ, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли OBJ, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
76 20 / 23 20ПОДАННЯ В ASCII: v / #
Стандартизація: Wavefront Advanced Visualizer Specification
Технічні характеристики
| Архітектура контейнера | Текстовий файл ASCII, що описує вершини (v), текстурні координати (vt), нормалі (vn) і багатокутні грані (f), а також посилається на супутні файли матеріалів .mtl |
| Стиснення | Нестиснений текст, який легко читати |
| Порядок байтів (Endianness) | Текстовий потік у кодуванні UTF-8 / ASCII |
| Колірні простори | sRGB (визначено у супутньому файлі .mtl) |
| Канали та структура | Багатокутна геометрія (трикутники, чотирикутники, n-кутники), групи згладжування та посилання на матеріали |
| Максимальні розміри | Необмежений тривимірний простір координат із числами з рухомою комою |
| Прозорість | Непрозорість (теги «d» або «Tr») підтримується у супутніх файлах матеріалів .mtl |
| Потокове та прогресивне завантаження | Послідовний розбір рядок за рядком дає змогу поступово відображати вершини під час потокового завантаження |
Технічна матриця порівняння: OBJ проти конкурентів
| Технічний атрибут | OBJ (Поточний) | STL | GLB | PLY |
|---|---|---|---|---|
| Підтримка анімації | Відсутня (суто статична геометрія) | Відсутня (статичні трикутники) | Повна скелетна анімація | Відсутня (статична хмара точок / сітка) |
| Текстурні координати (UV) | Повна підтримка UV-текстурних координат | Відсутні (лише геометрія) | Повні багатоканальні UV | Кольори / UV на вершину |
| Типи полігонів | Трикутники, чотирикутники та n-кутники | Лише трикутники | Трикутники та точки | Трикутники та довільні полігони |
| Тип файлу | Зрозумілий людині текст ASCII | Бінарний або текст ASCII | Компактний бінарний контейнер | Бінарний або текст ASCII |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
3D-модель відображається з освітленням, ніби вивернутим навиворіт або чорними дірами в сітці.
Першопричина: Інвертований порядок обходу граней (вершини перераховані за годинниковою стрілкою замість проти годинникової стрілки), що спричиняє інвертування нормалей.
Відновлення: Перерахуйте та уніфікуйте нормалі за допомогою інструменту File2File.app 3D Mesh Repair.
Аналіз безпеки та векторів атак на парсери
Засоби розбору OBJ обробляють числа ASCII та індекси граней, які в неперевірених бібліотеках C можуть спричинити переповнення буфера або цілого числа.
Відомі вектори атак
- Переповнення буфера під час читання надзвичайно довгих рядків визначення граней із тисячами вершин.
- Переповнення цілих чисел під час виділення пам'яті під масиви координат вершин.
- Відмова в обслуговуванні через обхід каталогів у шляхах до супутніх файлів матеріалів, зазначених у 'mtllib'.
Рекомендації щодо захисту: Обмежуйте максимальні індекси вершин і перевіряйте та нормалізуйте шляхи до супутніх файлів матеріалів.
Історичне походження та віхи
Основні переваги
- Абсолютна універсальна сумісність: 100% програм 3D-моделювання, ігрових рушіїв і систем САПР можуть імпортувати та експортувати OBJ.
- Зрозумілий людині текст ASCII: геометрію можна переглядати, генерувати програмно та змінювати в будь-якому базовому текстовому редакторі.
- Підтримує довільні n-кутники, згладжені нормалі та UV-текстурування з кількома плитками.
Технічні обмеження та недоліки
- Лише статична геометрія: формат не зберігає скелетні риги, ваги кісток, скінінг чи анімацію.
- Вимагає супутніх файлів матеріалів .MTL та зовнішніх файлів зображень для відображення кольорів і текстур.
- Форматування тексту ASCII призводить до великих розмірів файлів і повільного синтаксичного аналізу порівняно з сучасними бінарними форматами, такими як GLB.
Цікаві технічні факти
- Кожна вершина у файлі OBJ починається з однієї літери 'v', нормалі починаються з 'vn', текстурні координати: з 'vt', а грані: з 'f'.
- Ці моделі доступні в різних форматах, зокрема OBJ; конкретний файл залежить від джерела.
- Компанія Wavefront Technologies, яка створила OBJ у 1984 році, була однією з перших компаній комп'ютерної графіки, що здобула премію «Оскар» за програмне забезпечення для візуальних ефектів.
Поширені технічні запитання
Що таке файл .MTL, який постачається разом із файлом .OBJ?
Файл .MTL (Material Template Library) описує кольори, блиск, прозорість та назви файлів текстур, які використовуються 3D-моделлю .OBJ.
Чи можна надрукувати файл OBJ на 3D-принтері?
Так. Більшість сучасних слайсерів для 3D-принтерів (таких як Cura та PrusaSlicer) приймають файли OBJ напряму, часто зберігаючи повний колір при використанні багатоколірних 3D-принтерів.
Як конвертувати OBJ у GLB або STL?
Ви можете конвертувати файли OBJ (разом із супутніми MTL та текстурами) у сучасні файли GLB або придатні для 3D-друку STL безпосередньо у веббраузері за допомогою File2File.app.
Пов'язані пари конвертації OBJ
Конвертація файлів Wavefront OBJ у формат Stereolithography STL перетворює кольорові моделі дизайну на сітки з необроблених трикутників, готові до 3D-друку.
Конвертація файлів Stereolithography STL у формат Wavefront OBJ перетворює необроблені трикутні поверхневі сітки на гнучкі геометричні визначення з підтримкою текстур і матеріалів.
Конвертація файлів Polygon PLY у формат Wavefront OBJ перетворює дані 3D-сканування на універсально сумісну геометрію, готову для стандартного програмного забезпечення для моделювання.
Перетворення файлів геометрії Wavefront OBJ на маніфести glTF JSON переводить статичні 3D-моделі у сучасні ресурси для вебу, які швидко завантажуються у звичайних браузерах.