У этого термина существуют и другие значения, см.
OBJ.
OBJ — формат файлов описания геометрии, разработанный в Wavefront Technologies для их анимационного пакета Advanced Visualizer. Формат файла является открытым и был принят другими разработчиками приложений 3D-графики. Он может быть экспортирован/импортирован в e-Frontier's Poser, Maya, XSI, Blender, MeshLab, Misfit Model 3D, 3D Studio Max и Rhinoceros 3D, Hexagon, CATIA, Newtek Lightwave, Art of Illusion, milkshape 3d, Modo, Cinema 4D, Zanoza Modeller, ПК ЛИРА, Mineways и т. д. По большей части это общепринятый формат.
Формат файлов OBJ — это простой формат данных, который содержит только 3D геометрию, а именно, позицию каждой вершины, связь координат текстуры с вершиной, нормаль для каждой вершины, а также параметры, которые создают полигоны.
Формат файла
Строки, начинающиеся с #
, — это комментарии, т.е. не обрабатываются и не влияют на результат.
# Это комментарий
Формат OBJ предусматривает несколько типов определения:
# Список вершин, с координатами (x,y,z[,w]), w является не обязательным и по умолчанию 1.0.
v 0.123 0.234 0.345 1.0
v ...
...
# Текстурные координаты (u,v,[w]), w является не обязательным и по умолчанию 0.
# Текстурная координата по y может быть указана как 1 - v, и при этом по x = u
vt 0.500 -1.352 [0.234]
vt ...
...
# Нормали (x,y,z); нормали могут быть не нормированными.
.
vn 0.707 0.000 0.707
vn ...
...
# Параметры вершин в пространстве (u [,v] [,w]); свободная форма геометрического состояния (см. ниже)
vp 0.310000 3.210000 2.100000
vp ...
...
# Определения поверхности (сторон) (см. ниже)
f 1 2 3
f 3/1 4/2 5/3
f 6/4/1 3/5/3 7/6/5
f 6//1 3//3 7//5
f ...
...
# Группа
g Group1
...
# Объект
o Object1
Геометрическая вершина
Вершина задаётся в строках начинающихся с литеры v
. Далее за ней располагаются координаты в порядке x
,y
,z
, и необязательный компонент w
. Значение w
отвечает за толщину вершины и требуется для рациональных кривых и поверхностей, задавать не обязательно, по умолчанию равно 1.0. Некоторые программы поддерживают указание цвета вершин согласно модели RGB, путём задания значений красного, зелёного и синего в диапазоне от 0 до 1 после координат.
Определение сторон
Поверхность определяется в списке вершин, текстурных координат и нормалей. Полигоны, такие как квадрат, могут быть определены с помощью более 3 вершин/текстурных координат/нормалей.
Поверхности
Строка, начинающаяся с f
, представляет собой индекс поверхности. Каждая поверхность может состоять из трёх или более вершин.
f v1 v2 v3 v4 ...
Индексация начинается с первого элемента, а не с нулевого, как принято в большинстве языков программирования, также индексация может быть отрицательной. Отрицательный индекс указывает позицию относительно последнего элемента (индекс -1 указывает на последний элемент).
Вершины / Текстурные координаты
Наряду с вершинами могут сохраняться соответствующие индексы текстурных координат.
f v1/vt1 v2/vt2 v3/vt3 v4/vt4 ...
Вершины / Текстурные координаты / Нормали
Также допустимо сохранение соответствующих индексов нормалей.
f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 v4/vt4/vn4 ...
Вершины / / Нормали
При отсутствии данных о текстурных координатах допустима запись с пропуском индексов текстур.
f v1//vn1 v2//vn2 v3//vn3 v4//vn4 ...
Библиотека материалов
Краткий обзор
OBJ является одним из самых популярных форматов передачи трёхмерной компьютерной геометрии. Информация о внешнем виде объектов(материалы) передается в файлах-спутниках в формате MTL (Material Library). OBJ при необходимости ссылается на такой файл с помощью директивы:
mtllib [имя внешнего MTL-файла]
Введение
MTL является стандартом, установленным компанией Wavefront Technologies. Вся информация представлена символами ASCII (читабельна для человека). Стандарт MTL также очень популярен и поддерживается большинством пакетов для работы с 3D-графикой.
Информация о простых материалах в файле выглядит следующим образом:
newmtl название_материала1 # Объявление очередного материала
# Цвета
Ka 1.000 1.000 0.000 # Цвет окружающего освещения (жёлтый)
Kd 1.000 1.000 1.000 # Диффузный цвет (белый)
# Параметры отражения
Ks 0.000 0.000 0.000 # Цвет зеркального отражения (0;0;0 - выключен)
Ns 10.000 # Коэффициент зеркального отражения (от 0 до 1000)
# Параметры прозрачности
d 0.9 # Прозрачность указывается с помощью директивы d
Tr 0.9 # или в других реализациях формата с помощью Tr
# Следующий материал
newmtl название_материала2
...
Наличие всех параметров необязательно. При отсутствии какого-либо параметра программа автоматически устанавливает его по умолчанию.
Примечания
Ссылки