<< к оглавлению...
Ptex формат
Ptex-файл это формат изображения, отличающийся от, скажем, TIF, JPG или EXR, тем, что это не "чистый" вид файла для (2d-)изображений, а формат, который содержит (2d-) информацию о пикселях каждой грани 3d модели. Формат был разработан студией "Disney" для использования в своих (внутри-студийных) программах 3d-рисования, и поскольку, формат был с открытым исходным кодом, у сторонних 3d-приложений также появилась возможность использовать преимущества данного формата. Более подробное техническое описание Ptex, включая исходные описания и видео-демонстрации его использования можно найти на сайте создателей: Disney's Ptex Site.
2D-текстурирование и Ptex: Различия в рабочем процессе
При работе с обычными форматами (2d-)изображений, ваш процесс работы с 3d может быть таким:
- Моделирование 3d геометрии;
- Создание UV-развёртки, включающее в себя т.н. "раскатку" (flattening) сторон (граней)
имеющейся 3d геометрии для представления её в 2d-виде;
- Рисование 2d-карты, соответствующей UV-координатам (либо в программе 2d-рисования,
например Photoshop, либо в программах 3d-рисования типа Mudbox, Mari, Body paint, итп);
- “Обёртывание” вашей 3d модели подготовленной 2d-картой, используя UV-развёртку.
Одна из главных проблем такого подхода в том, что он может занимать достаточно много времени для настройки хороших UV-раскладок для модели, особенно если модель состоит из множества отдельных (геометрических) частей. И иногда это может быть настолько сложно, что кажется, определённо должен быть способ рисования по модели без использования каких-либо "промежуточных" 2d-программ. Вот здесь в игру вступает формат Ptex.
Вот общий процесс с использованием Ptex:
- Моделирование 3d геометрии;
- Подготовка к Ptex-текстурированию (обычно, одно-два нажатия клавиши);
- "Разрисовывание" геометрии с помощью программ 3d-рисования;
- Рисование происходит прямо по поверхности самОй модели (по её 3d- сторонам/граням).
Преимущества и недостатки
Можно отметить следующие основные преимущества Ptex по сравнению с обычным способом наложения 2d-карт:
- Никаких UV-настроек, а это масса сэкономленного времени
- Никакого растягивания текстуры. Настраивание хороших UV-раскладок может отнять
довольно много времени, но иногда даже в наилучших UV-шках на некоторых сторонах и
гранях появляется слишком много пикселей по сравнению с соседними, что и приводит к
эффекту "растяжения текстуры".
- Отсутствие артефактов по краям (каркаса) объекта. При разметке UV-раскладок, по краям
или на гранях UV-раскладок появляются искажения, с Ptex такого нет.
- Каждой грани может быть назначено своё разрешение, таким образом, достаточно легко
добавлять дополнительную детализацию отдельным частям модели. С UV-подходом такую
настройку сделать намного сложнее.
В то же время, нужно признать, что у Ptex-подхода существуют и свои недостатки:
- Некоторые вещи (по своей природе) гораздо проще сделать, используя 2d-рисование.
Скажем, у нас есть прямоугольный кусок ткани, и здесь, конечно, имеет смысл наносить
текстуру на 2d проекцию UV-раскладки, чем пытаться рисовать на конечном варианте 3d
объекта. Хотя, некоторые Ptex-приложения имеют возможность обойти данного рода
ограничения, например, "развернуть/раскатать" 3d геометрию, и таким образом вы будете
рисовать по вашей модели, представленной в 2d, сразу используя Ptex.
- Формат не поддерживается Photoshop-ом. Photoshop фактически является основным
инструментом рисования текстур в индустрии, но он не поддерживает Ptex-файлы.
По мере того, как в программах 3d-рисования, таких как Mudbox, Mari, ит.п., расширяется
набор инструментов, необходимость использования Photoshop-а для прорисовки, возможно,
уменьшится.
- Изменения в геометрии модели (такие как, добавление или удаление сторон, граней или рёбер)
требует запекания Ptex-файла из старой геометрии и перенос полученного результата на
новую (геометрию), с возможной потерей качества.
- Ptex-файлы, как правило, привязаны к объекту, используя его имя, т.е. файл Hand01.ptx указывает
на 3d-объект в вашей сцене, который называется Hand01. Таким образом, если вы переименуете
вашу модель, соответствующий Ptex-файл также должен быть переименован.
Формат Ptex
Ptex-файл это, по существу, список граней и всех пикселей (называемых также текселями, т.е. текстурные пиксели) на этих гранях. Например, вот текстура камня (скальной породы) на 3d-модели лица:
Вот так эта текстурная карта может выглядеть в (2d) UV-пространстве:
А вот это, собственно, и есть содержимое Ptex-файла:
Как 2d-карта, это не читаемо. Но 3d-приложение читает Ptex-файл, и "знает" каким граням соответствует тот или иной участок текселей (и в результате, в 3d “правильный рисунок” накладывается на соответствующие грани).
Рисование и Запекание (baking)
В практическом применении существует два основных способа использования Ptex-файлов: хранение 3d рисунка/текстуры и как способ "запечь" различные свойства (mesh-)объекта.
- Запекание: Например, вам нужно запечь пасс ambient occlusion (чтобы затемнить
углубления геометрии). Расчёт occlusion покадрово может быть достаточно медленным,
но вместо этого, вы просчитываете occlusion, а затем запекаете его (пасс) в Ptex-файл,
соответствующий вашему объекту, теперь у вас есть occlusion (не прибегая к UV-настройкам).
Превосходная техника, особенно когда вам нужно запечь occlusion, скажем, для 20000
объектов в сцене, и снова – без каких-либо 20000 UV настроек. Если сетка модели поменялась,
или вам нужно добавить больше объектов (в occlusion-пасс), вы всегда можете вернуться и
"пере-запечь" ;) всё, что нужно, процесс обычно достаточно быстр.
Вы также можете запечь смещение (displacement) вашего объекта в Ptex-файл.
- Рисование: Вы можете воспользоваться программой 3d-рисования (напр. Mudbox, Mari или 3DCoat)
и вручную разрисовать вашу модель (mesh painting). Получившийся рисунок сохраняется как
Ptex-файл(ы). Поскольку текстура нарисована вручную, (а не как часть какого-нибудь процедурного
процесса), изменения (не глобальные, конечно,) в геометрии объекта не должны представлять
больших сложностей. Вам нужно будет либо перерисовать, или же запечь рисунок со старой
версии модели и перенести (результат запекания) на обновлённую, а затем перерисовать те части,
которые существенно изменились.
Заключение
Хотя это всё может показаться немного сложным, попробуйте вспомнить, когда вы впервые начали изучать UV. Могу поспорить, что поначалу тоже было трудновато детально освоить общую концепцию. То же самое и с Ptex-файлами, просто это другой способ делать те же вещи. И как только вы поймёте как это всё работает, может согласитесь, что на самом деле, во многом это более простой процесс. UV никуда не уйдёт насовсем, но, надеюсь с Ptex-технологией, мы отделаемся от ненужных UV-наборов или будем пользоваться ими только тогда, когда это неизбежно необходимо.
Примеры
Лучший способ более полно понять Ptex – это просто начать использовать эту технологию,
для тех у кого есть mudbox 2012-2013, вот урок для Mudbox 2013: Ptex
Use In Mudbox 2013.
Здесь немного информации для тех, кто желает использовать Ptex в mentalray
в Maya.
А здесь для интересующихся Ptex-файлами в VRray для
3dsmax.
оригинал статьи : http://www.neilblevins.com/cg_education/ptex/ptex.htm
перевод и адаптация: Александр Ергашов /© 2009-2012/
<< к оглавлению...