Wavefront OBJ (.obj)

Wavefront Стандарт

Wavefront 3D Object (OBJ): це класичний формат геометричних 3D-сіток, сумісний із широким спектром програм, розроблений компанією Wavefront Technologies. Він є базовим форматом обміну між програмами для 3D-моделювання, ліплення та 3D-друку.

Конвертувати з OBJ у STL

Безкоштовний конвертер з OBJ у STL у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли OBJ, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

Сигнатура заголовка на байтовому рівні (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 (Поточний)STLGLBPLY
Підтримка анімаціїВідсутня (суто статична геометрія)Відсутня (статичні трикутники)Повна скелетна анімаціяВідсутня (статична хмара точок / сітка)
Текстурні координати (UV)Повна підтримка UV-текстурних координатВідсутні (лише геометрія)Повні багатоканальні UVКольори / UV на вершину
Типи полігонівТрикутники, чотирикутники та n-кутникиЛише трикутникиТрикутники та точкиТрикутники та довільні полігони
Тип файлуЗрозумілий людині текст ASCIIБінарний або текст ASCIIКомпактний бінарний контейнерБінарний або текст ASCII

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

3D-модель відображається з освітленням, ніби вивернутим навиворіт або чорними дірами в сітці.

Першопричина: Інвертований порядок обходу граней (вершини перераховані за годинниковою стрілкою замість проти годинникової стрілки), що спричиняє інвертування нормалей.

Відновлення: Перерахуйте та уніфікуйте нормалі за допомогою інструменту File2File.app 3D Mesh Repair.

Аналіз безпеки та векторів атак на парсери

Засоби розбору OBJ обробляють числа ASCII та індекси граней, які в неперевірених бібліотеках C можуть спричинити переповнення буфера або цілого числа.

Відомі вектори атак

  • Переповнення буфера під час читання надзвичайно довгих рядків визначення граней із тисячами вершин.
  • Переповнення цілих чисел під час виділення пам'яті під масиви координат вершин.
  • Відмова в обслуговуванні через обхід каталогів у шляхах до супутніх файлів матеріалів, зазначених у 'mtllib'.

Рекомендації щодо захисту: Обмежуйте максимальні індекси вершин і перевіряйте та нормалізуйте шляхи до супутніх файлів матеріалів.

Історичне походження та віхи

2000Стає універсальним стандартом експорту й імпорту у тривимірній комп'ютерній графіці, який підтримують усі 3D-інструменти у світі.
1990Wavefront об'єднується з Alias Research (пізніше придбаною Autodesk), закріплюючи позиції OBJ у голлівудських візуальних ефектах (VFX).
1984Wavefront Technologies представляє OBJ для пакету анімації Advanced Visualizer.

Основні переваги

  • Абсолютна універсальна сумісність: 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.