~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 82DB8013467E33FBFE14BB1CDC168039__1713337080 ✰
Заголовок документа оригинал.:
✰ Wavefront .obj file - Wikipedia ✰
Заголовок документа перевод.:
✰ Файл Wavefront .obj — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Wavefront_.obj_file ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/82/39/82db8013467e33fbfe14bb1cdc168039.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/82/39/82db8013467e33fbfe14bb1cdc168039__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 00:40:20 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 17 April 2024, at 09:58 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Файл Wavefront .obj — Википедия Jump to content

Файл Wavefront .obj

Из Википедии, бесплатной энциклопедии
Формат геометрии OBJ
Расширение имени файла
.obj
Тип интернет-СМИ
модель/объект [1]
Разработан Волновые Технологии
Тип формата 3D model format

OBJ (или .OBJ) — это формат файла определения геометрии, впервые разработанный компанией Wavefront Technologies для пакета анимации Advanced Visualizer . Формат файла является открытым и принят другими поставщиками приложений для 3D-графики.

Формат файла OBJ — это простой формат данных, который представляет только трехмерную геометрию, а именно: положение каждой вершины , UV-позицию каждой вершины координат текстуры, нормали вершин и грани, которые определяют каждый многоугольник как список вершин. и вершины текстуры. По умолчанию вершины сохраняются в порядке против часовой стрелки, что делает ненужным явное объявление нормалей граней. Координаты OBJ не имеют единиц измерения, но файлы OBJ могут содержать информацию о масштабе в удобочитаемой строке комментариев.

Формат файла [ править ]

Все, что следует за символом решетки (#), является комментарием.

# это комментарий
 

Файл OBJ может содержать данные вершин, атрибуты кривой/поверхности произвольной формы, элементы, операторы тела кривой/поверхности произвольной формы, связность между поверхностями произвольной формы, информацию об атрибутах группировки и отображения/рендеринга. Наиболее распространенными элементами являются геометрические вершины, текстурные координаты, нормали вершин и многоугольные грани:

# Список геометрических вершин с координатами (x, y, z, [w]), w не является обязательным и по умолчанию равно 1.0. 
  v 0,123 0,234 0,345 1,0 
  в... 
  ... 
  # Список координат текстуры в координатах (u, [v, w]), они могут варьироваться от 0 до 1. v, w являются необязательными и по умолчанию равны 0. 
  вт 0.500 1 [0] 
  вт... 
  ... 
  # Список нормалей вершин в форме (x,y,z);   нормали могут не быть  единичными векторами  . 
  вн 0,707 0,000 0,707 
  вн... 
  ... 
  # Вершины пространства параметров в форме (u, [v, w]);   заявление о геометрии свободной формы (см. ниже) 
  вп 0,310000 3,210000 2,100000 
  вп... 
  ... 
  # Полигональный элемент грани (см. ниже) 
  ж 1 2 3 
  ж 3/1 4/2 5/3 
  ж 6/4/1 3/5/3 7/6/5 
  ж 7//1 8//2 9//3 
  е... 
  ... 
  # Элемент линии (см. ниже) 
  л 5 8 1 2 4 9 
 

Геометрическая вершина [ править ]

Вершина буквы задается строкой, начинающейся с v. За этим следуют координаты (x,y,z[,w]). W не является обязательным и по умолчанию имеет значение 1.0. Для указания местоположений координат используется правая система координат. Некоторые приложения поддерживают цвета вершин, помещая значения красного, зеленого и синего после xy и z (это исключает указание w). Значения цвета варьируются от 0 до 1. [2]

Вершины пространства параметров [ править ]

Оператор геометрии произвольной формы может быть указан в строке, начинающейся со строки vp. Определите точки в пространстве параметров кривой или поверхности. u требуется только для точек кривой, u и v для точек поверхности и контрольных точек нерациональных кривых обрезки и u, v и w (вес) для контрольных точек рациональных кривых обрезки.

Элементы лица [ править ]

Грани определяются с использованием списков индексов вершин, текстур и нормалей в формате vertex_index/texture_index/normal_index, для которого каждый индекс начинается с 1 и увеличивается в соответствии с порядком, в котором был определен ссылочный элемент. Многоугольники, такие как четырехугольники, можно определить, используя более трех индексов.

Файлы OBJ также поддерживают геометрию произвольной формы, в которой для определения объектов используются кривые и поверхности, такие как NURBS поверхности .

Индексы вершин [ править ]

Действительный индекс вершин соответствует соответствующим элементам вершин ранее определенного списка вершин. Если индекс положителен, он относится к смещению в этом списке вершин, начиная с 1. Если индекс отрицательный, то он относительно относится к концу списка вершин, -1 относится к последнему элементу.

Каждая грань может содержать три и более вершины.

ф v1 v2 v3 ....
 

Индексы координат текстуры вершин [ править ]

При желании индексы координат текстуры можно использовать для указания координат текстуры при определении лица. Чтобы добавить индекс координат текстуры к индексу вершины при определении лица, необходимо поставить косую черту сразу после индекса вершины, а затем поставить Индекс координат текстуры. Пробелы до и после косой черты не допускаются. Действительный индекс координат текстуры начинается с 1 и соответствует соответствующему индексу. элемент в ранее определенном списке координат текстуры. Каждая грань может содержать три и более элементов.

f v1/vt1 v2/vt2 v3/vt3 ...
 

Индексы нормалей вершин [ править ]

При желании индексы нормалей можно использовать для указания векторов нормалей для вершин при определении грани. Чтобы добавить индекс нормали к индексу вершины при определении грани, нужно поставить вторую косую черту после индекса координат текстуры, а затем поставить нормальный показатель. Действительный нормальный индекс начинается с 1 и соответствует соответствующему элементу. в ранее определенном списке нормалей. Каждая грань может содержать три и более элементов.

f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 ...
 

Индексы нормалей вершин без индексов координат текстуры [ править ]

Поскольку координаты текстуры не являются обязательными, геометрию можно определить и без них, но необходимо поставить две косые черты после индекса вершины, прежде чем помещать нормальный индекс.

f v1//vn1 v2//vn2 v3//vn3 ...
 

Линейные элементы [ править ]

Записи, начинающиеся с буквы «l» (строчная L), определяют порядок вершин, образующих полилинию.

л v1 v2 v3 v4 v5 v6 ...
 

Другие форматы геометрии [ править ]

Файлы Obj поддерживают поверхности более высокого порядка с использованием нескольких различных видов интерполяции, таких как Тейлор и B-сплайны, хотя поддержка этих функций в сторонних программах чтения файлов далеко не универсальна. Файлы Obj также не поддерживают иерархии сеток или любые виды анимации или деформации, такие как скиннинг вершин или морфинг сеток.

Справочные материалы [ править ]

Материалы , описывающие визуальные аспекты полигонов, хранятся в внешние файлы .mtl. Из файла OBJ можно ссылаться на более чем один внешний файл материала MTL. Файл .mtl может содержать одно или несколько именованных определений материалов.

mtllib [имя внешнего файла .mtl]
 ...
 

Этот тег определяет имя материала для следующего за ним элемента. Имя материала соответствует определению именованного материала во внешнем файле .mtl.

usemtl [название материала]
 ...
 

Именованные объекты и группы полигонов задаются с помощью следующих тегов.

о [имя объекта]
   ...
   г [название группы]
   ...
 

Плавное затенение полигонов обеспечивается с помощью групп сглаживания.

с 1
   ...
   # Плавное затенение также можно отключить.
   выключено
   ...
 

и индексы Относительные абсолютные

Файлы OBJ, благодаря своей структуре списка, могут ссылаться на вершины, нормали и т. д. либо по их абсолютному положению (1 представляет первую определенную вершину, N представляет N-ю определенную вершину), либо по их относительному положению (-1 представляет собой последняя определенная вершина). Однако не все программное обеспечение поддерживает последний подход, и, наоборот, некоторые программы по своей сути записывают только последнюю форму (из-за удобства добавления элементов без необходимости пересчета смещений вершин и т. д.), что иногда приводит к несовместимости.

Библиотека шаблонов материалов [ править ]

Формат материала MTL
Расширение имени файла
.mtl
Тип интернет-СМИ
модель/MTL [3]
Магическое число
  • ASCII: новыйmtl
  • Шестнадцатеричный: 6E65776D746C [4]
Разработан Волновые Технологии
Тип формата 3D texture format

Формат библиотеки шаблонов материалов (MTL) или формат файла .MTL — это сопутствующий формат файла для .OBJ, также определенный Wavefront Technologies , который описывает свойства затенения поверхности (материала) объектов в одном или нескольких файлах .OBJ. Файл .OBJ ссылается на один или несколько файлов .MTL (называемых «библиотеками материалов») и оттуда ссылается на одно или несколько описаний материалов по имени. Файлы .MTL представляют собой текст ASCII , который определяет светоотражающие свойства поверхности для целей компьютерной визуализации и в соответствии с моделью отражения Фонга . Стандарт широко поддерживается различными пакетами компьютерного программного обеспечения, что делает его полезным форматом для обмена материалами.

Формат MTL, хотя и до сих пор широко используется, устарел и не полностью поддерживает более поздние технологии, такие как карты зеркального отражения и карты параллакса . Однако из-за открытого и интуитивно понятного формата их можно легко добавить с помощью специального генератора файлов MTL.

Формат MTL определяет ряд форматов. [5] [6]

Основные материалы [ править ]

Один .mtlфайл может определять несколько материалов. Материалы определяются в файле один за другим, каждый начинается с newmtl команда:

# определим материал с именем «Цветной»
 newmtl Цветной
 

Окружающий цвет материала объявляется с помощью Ka. Определения цветов представлены в формате RGB, где значение каждого канала находится в диапазоне от 0 до 1.

# белый
 Это будет 1.000 1.000 1.000
 

Аналогично, диффузный цвет объявляется с помощью Kd.

# белый
 КД 1.000 1.000 1.000
 

Зеркальный цвет объявляется с помощью Ksи взвешивается с использованием зеркального показателя Ns.

# черный (выкл.)
 Кс 0,000 0,000 0,000

 # находится в диапазоне от 0 до 1000
 10.000 нс
 

Материалы могут быть прозрачными . Это называется растворением . В отличие от реальной прозрачности, результат не зависит от толщины объекта. Значение 1,0 для «d» ( растворения ) является значением по умолчанию и означает полную непрозрачность, как и значение 0,0 для «Tr». Растворение работает на всех моделях освещения.

# в некоторых реализациях используется 'd'
 д 0,9
 # другие используют 'Tr' (инвертировано: Tr = 1 - d)
 Тр 0,1
 

Прозрачные материалы могут дополнительно иметь цвет фильтра пропускания, указанный как «Tf».

# Цвет фильтра передачи (с использованием RGB)
 Тф 1,0 0,5 0,5 
 # Цвет фильтра передачи (с использованием CIEXYZ) — значения y и z не являются обязательными и считаются равными x, если они опущены.
 Тф xyz 1,0 0,5 0,5 
 # Цвет фильтра пропускания из файла спектральной кривой (обычно не используется)
 Tf Spectrum <имя файла>.rfl <необязательный коэффициент>

 

Материал также может иметь оптическую плотность своей поверхности. Это также известно как показатель преломления .

# оптическая плотность
 Ни 1,45000
 

Значения могут находиться в диапазоне от 0,001 до 10. Значение 1,0 означает, что свет не преломляется при прохождении через объект. Увеличение оптической плотности увеличивает величину изгиба. Стекло имеет показатель преломления около 1,5. Значения менее 1,0 дают странные результаты и не являются рекомендуемые. [7]

несколько моделей освещения Доступно в зависимости от материала. Обратите внимание, что не требуется устанавливать прозрачную модель освещения, чтобы добиться прозрачности с помощью «d» или «Tr», а в современном использовании модели освещения часто не указываются, даже с прозрачными материалами. Модели освещения перечислены следующим образом:

0. Включение цвета и выключение режима Ambient.
 1. Цвет включен и режим Ambient включен.
 2. Выделите
 3. Включение отражения и трассировка лучей.
 4. Прозрачность: стекло включено. Отражение: трассировка лучей включена.
 5. Отражение: включен Френель и трассировка лучей включена.
 6. Прозрачность: преломление включено, отражение: Френель отключен, трассировка лучей включена.
 7. Прозрачность: преломление включено, отражение: включен Френель и трассировка лучей включена.
 8. Включение отражения и выключение трассировки лучей.
 9. Прозрачность: стекло включено, отражение: трассировка лучей выключена.
 10. Отбрасывает тени на невидимые поверхности 
сегодня 2
 

Карты текстур [ править ]

Текстурированные материалы используют те же свойства, что и выше, и дополнительно определяют карты текстур . Ниже приведен пример обычного файла материала. Для получения более подробной информации см. полную ссылку на формат файла Wavefront.

newmtl Текстурированный
    Ка 1.000 1.000 1.000
    КД 1.000 1.000 1.000
    Кс 0,000 0,000 0,000
    д 1,0
    иллюстрация 2
    # карта текстур окружающей среды
    map_Ka lemur.tga
   
    # карта диффузной текстуры (в большинстве случаев она будет такой же, как и карта
    # карта текстур окружающей среды)
    map_Kd lemur.tga
   
    # карта текстуры зеркального цвета
    map_Ks lemur.tga
   
    # компонент зеркального блика
    map_Ns lemur_spec.tga
   
    # карта альфа-текстуры
    map_d lemur_alpha.tga
   
    # некоторые реализации используют 'map_bump' вместо 'bump' ниже
    map_bump lemur_bump.tga
   
    # карта рельефа (которая по умолчанию использует канал яркости изображения)
    удар lemur_bump.tga
   
    # карта смещения
    дисп lemur_disp.tga
   
    # текстура трафаретной наклейки (по умолчанию «матовый» канал изображения)
    декаль lemur_stencil.tga
 

Операторы карты текстур также могут иметь параметры-опции (см. полную спецификацию ).

# происхождение текстуры (1,1,1) 
    map_Ka -o 1 1 1ambient.tga
   
    # сферическая карта отражений
    refl -type сфера Clouds.tga
 

Параметры текстуры [ править ]

-бленду на |  off # установить горизонтальное смешивание текстур (по умолчанию включено)
 -блендв на |  off # установить вертикальное смешивание текстур (по умолчанию включено)
 -boost float_value # повысить резкость мип-карты
 -mm base_value Gain_value # изменить значения карты текстур (по умолчанию 0 1)
                                        # базовое_значение = яркость, усиление_значение = контрастность
 -ou [v [w]] # Смещение начала координат (по умолчанию 0 0 0)
 -su [v [w]] # Масштаб (по умолчанию 1 1 1)
 -tu [v [w]] # Турбулентность (по умолчанию 0 0 0)
 -texrescision # разрешение текстуры, которую нужно создать
 -зажать |  off # отображать только текселы в ограниченном диапазоне 0-1 (по умолчанию выключено)
                                        # При разжатии текстуры повторяются по поверхности,
                                        # при фиксации будут использоваться только текселы, попадающие в диапазон 0-1
                                        # диапазон отображается.
 -bm mult_value # множитель рельефа (только для карт рельефа)

 -имфчан р |  г |  б |  м |  л |  z # указывает, какой канал файла используется для 
                                        # создаем скалярную текстуру или текстуру рельефа.  р: красный, г: зеленый,
                                        # b:синий, m:матовый, l:яркость, z:z-глубина.. 
                                        # (по умолчанию для рельефа — «l», для декали — «m»)
 

Например,

# говорит использовать красный канал Bumpmap.tga в качестве карты рельефа
 Bump -imfchan r Bumpmap.tga
 

Для карт отражений ...

-type сфера # определяет сферу для карты отражения "refl"    
 -type Cube_top |  куб_дно |  # при использовании карты куба файл текстуры для каждого
       куб_фронт |  куб_обратно |  # сторона куба указывается отдельно
       куб_слева |  куб_право
 

Изменения в зависимости от поставщика [ править ]

Из-за простоты анализа файлов и неофициального распространения формата файлов файлы могут содержать изменения, специфичные для конкретного поставщика.

Согласно спецификации, параметры должны предшествовать имени файла текстуры. Однако по крайней мере один поставщик генерирует файлы с опциями в конце.

# множитель удара 0,2
 удар texbump.tga -bm 0.2
 

Физический рендеринг [ править ]

Создатели онлайн-инструмента 3D-редактирования и моделирования Clara.io предложили расширить формат MTL, чтобы можно было указывать физически основанного рендеринга карты и параметры (PBR). Это расширение впоследствии было принято в Blender и TinyObjLoader. Карты и параметры расширения PBR: [8]

Pr/map_Pr # шероховатость
 Pm/map_Pm # металлик
 Ps/map_Ps # блеск
 PC # Толщина лака
 Pcr # шероховатость лака
 Ke/map_Ke # излучающий
 aniso # анизотропия
 anisor # вращение анизотропии
 норма # карта нормалей (компоненты RGB представляют компоненты XYZ нормали к поверхности)
 

Дальнейшие предлагаемые расширения взяты из набора инструментов DirectXMesh для Microsoft DirectX движка , что позволяет определять предварительно скомпилированный материал RMA модели. [9]

map_RMA # материал RMA (шероховатость, металличность, фоновая окклюзия)
 map_ORM # альтернативное определение map_RMA
 

См. также [ править ]

Ссылки [ править ]

  1. ^ Имя подтипа носителя: obj
  2. ^ «Как включить информацию о цвете вершин в файлы .OBJ?» . Обмен стеками разработки игр . Проверено 8 октября 2014 г.
  3. ^ Название подтипа носителя: mtl
  4. ^ «Формат файла библиотеки шаблонов материалов Wavefront (MTL)» . Библиотека Конгресса . 4 октября 2019 г.
  5. ^ «Файлы MTL — определения материалов для файлов OBJ» . People.sc.fsu.edu. 14 июня 2004 г. Проверено 26 ноября 2010 г.
  6. ^ «Информация о формате файла Wavefront .mtl — GRIPES and GRUMBLES — Wings — Wings3D — Официальный форум разработчиков — Доска объявлений» . Nendowingsmirai.yuku.com. Июль 2002 года . Проверено 26 ноября 2010 г.
  7. ^ Рэми, Дайан (1995). «Формат материала MTL (Lightwave, OBJ)» . Алиас-Вэйвфронт, Инк . Проверено 17 мая 2020 г.
  8. ^ «Бен Хьюстон | Расширение Wavefront MTL для физического рендеринга» . benhouston3d.com .
  9. ^ «Возможность определять текстуру RMA в MTL OBJ. Автор: MattFiler · Pull Request #39 · microsoft/DirectXMesh» . Гитхаб .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 82DB8013467E33FBFE14BB1CDC168039__1713337080
URL1:https://en.wikipedia.org/wiki/Wavefront_.obj_file
Заголовок, (Title) документа по адресу, URL1:
Wavefront .obj file - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)