OBJ (або.OBJ) — формат файлу опису геометрії, вперше створений в Wavefront Technologies для їхнього анімаційного пакету The Advanced Visualizer. Відкритий файловий формат, який взяли за стандарт інші розробники тривимірних редакторів.
Формат OBJ дуже простий, і задає тільки геометрію об'єкта, а саме координати кожної вершини, її текстурні координати, нормалі і грані, які задаються списками вершин многокутників. Вершини многокутників за замовчуванням перелічуються проти годинникової стрілки, що робить не обов'язковим явне задання нормалей.
Типовий файл OBJ виглядає приблизно так:
# це коментар # Список вершин заданих координатами (x,y,z) v 0.123 0.234 0.345 v ... ... #Текстурні координати (u,v). vt 0.500 -1.352 vt ... ... #Нормалі (x,y,z); нормалі можуть бути не нормалізовані. vn 0.707 0.000 0.707 vn ... .. #Кожна грань задається множиною трьох індексів кожен з яких відповідає за вершину/текстуру/нормаль #координати яких записані в списках вище #Тому f 1/1/1 2/2/2 3/3/3 це трикутник, що має текстурні координати та нормалі для #всіх трьох вершин #ЗАУВАЖЕННЯ: Списки нумеруються починаючи з одиниці. f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 f ... # Чотирикутники, та інші многокутники задаються відповідною кількістю вершин f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 v4/vt4/vn4 f ... ... # Можуть бути присутніми не усі можливі індекси, наприклад без нормалі f v1/vt1 v2/vt2 v3/vt3 v4/vt4 # або без текстурних координат f v1//vn1 v2//vn2 v3//vn3 v4//vn4 # або тільки індекси вершин f v1 v2 v3 v4 # Матеріали, що описують візуальні аспекти моделі зберігаються в зовнішніх файлах.mtl mtllib [external .mtl file name] ... # Іменовані об'єкти, групи многокутників і матеріалів описуються такими тегами: o [object name] ... g [group name] ... usemtl [material name] ... # Ім'я матеріалу має збігатися з відповідним іменем матеріалу в файлі.mtl # Кожен тег застосовується до всіх граней що йдуть після нього, поки не # зустрінеться інший тег такого ж типу. Текстурні координати можуть не задаватись, якщо # опис матеріалу не включає текстуру: f v1//vn1 v2//vn2 v3//vn3 ... # Згладжування між гранями дозволяється через [[групи згладжування]] s 1 ... # А також таке згладжування може бути вимкненим. s off ...
Один файл OBJ може посилатись на кілька зовнішніх матеріалів.
Також підтримуються гладкі поверхні NURBS.
Програми що підтримують формат
- 3DPaintBrush
- Anim8or
- Art of Illusion
- Autodesk 3ds MAX
- Autodesk Maya
- Autodesk Mudbox
- Autodesk Softimage
- Ayam
- Blender
- CADdoctor
- Carrara
- Cheetah3D
- Cinema 4D
- CityEngine
- Curvy3D
- DAZ Studio
- EnSight (CEI)
- Feature Manipulation Engine
- FreeCAD
- Game Maker
- GLC Player
- SketchUp
- Hexagon
- Houdini
- Irrlicht Engine
- Lightwave
- Mathematica
- modo
- MeshLab
- Misfit Model 3d
- Open Cobalt
- OpenCTM
- Poser
- Rhinoceros 3D
- Sweet Home 3D
- TransMagic
- TrueSpace
- VisIt
- Vue
- Wings 3D
- X-Plane Plane Maker
- ZBrush