Wavefront OBJ

OBJ geometry format
Розширення файлу:..obj
MIME-тип:text/plain
Розробник:Wavefront Technologies
Тип формату:3D model format

OBJ (або .OBJ) — формат файлу опису геометрії, вперше створений в Wavefront Technologies для їхнього анімаційного пакету Advanced Visualizer. Це відкритий файловий формат, який взяли були інші розробники 3d редакторів за стандарт.

Формат 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.

Програми що підтримують формат

Див. також

Посилання