Из 3ds Max в Mari и обратно

Эпиграф: «Вот она, вот она прога моей мечты!...»

Уже около года я присматриваюсь к программе Mari от the Foundry, и вот сегодня, после листания интернета, меня посетило прозрение, которым я хочу поделиться.

Ни для кого не секрет, что развертка текстур — один из самых сложных моментов в текстурировании 3д моделей. Программное обеспечение «Mari» от the Foundry позволяет создавать текстуры, рисуя прямо на модели.

Однако после окончания текстурирования часто возникает проблема с импортом текстур обратно в основное 3д приложение. Сегодня я поделюсь своим опытом экспорта модели из 3ds Max в Mari, создания текстуры в ней и импорта созданных текстур обратно в 3ds Max. Поехали.

1. Создаем модель. Я сделал очень быстрый скетч участка здания (скажем, дверной проем), перевел модель в хайполи и конвертировал в editable poly (чтоб тестировать что-то похожее на хайполи модель).

2. Накладываем модификатор UVW Unwrap

Переходим в редактирование модификатора, в меню Selection выбираем все полигоны и жмем Open UV Editor...

В меню Mapping выбираем пункт Flatten mapping, ничего не трогаем пусть пролагается и получаем вот такой результат:

3. Конвертируем модель в Editable poly.

4. Экспортируем модель в формате .obj. Обращаем внимание на 2 пункта: полигоны должны быть квадратные и экспорт текстурных координат также должен быть включен.

5. Теперь переходим к работе в Mari. Создаем новый проект.

В разделе Geometry/Mesh options/Mapping scheme оставляем пункт «UV if available, Ptex otherwise». Это значит, что будет сохранен результат нашего UVW Unwrap, а Ptex будет использован лишь если текстурные координаты не были назначены ранее. Но мы об этом уже побеспокоились.

В разделе Texture/Root path указываем корневой каталог последующего размещения файла нашей текстуры:

В окне «Texture» ставим галку в столбце «Create» для того, чтоб создать слой цвета «Color», в выпадающем списке Size выбираем необходимый нам размер. Для тестирования я выбрал 1024×1024, для работы скорее будет нужен размер от 4k. Жмем «okay» и лицезреем нашу модель.

6. Для рисования текстур по изображению жмем «u», это активирует режим Paint throwgh, или выбираем эту кисть вручную:

7. Справа в окне инструментов выбираем вкладку Image manager, и перетаскиваем сюда файл изображения, по которое мы будем переводить на нашу модель:

8. Рядом с Image manager находится вкладка Brush editor, переходим туда, выбираем Presets и выбираем одну из мягких кистей:

9. Перетаскиваем  изображение из Image manager на рабочее пространство, вращаем, двигаем изображение, размещая его наиболее удобно, и начинаем рисовать по модели:

Если автоматически текстура не запекается и буфер обмена не чистится (что можно настроить), то запекание находится вот тут:

или клавиша «b»

А за очистку буфера отвечает:

У меня получился вот такой результат наложения текстуры:

10. После того, как создание текстуры закончено, в меню вида (Community, projects, Uv, Ortho/Uv, Perspective, Ortho) выбираем Uv

11. Переходим во вкладку «Channels» (там же, где Brush editor и Image manager), как видим, там расположен только один пункт — color, который мы создали вначале. Выбираем его, жмем правый батон мыши, и видим меню, первый пункт которого — Export . Это то, что нам нужно.

После выбора этого пункта появляется вот такое окно:

12.  Нажимаем кнопку рядом с пустой строкой, появляется меню пути, куда будет сохранена текстура. Задаем ей имя. Жмем Save. В окне Export color жмем All. Текстура по умолчанию сохраняется в .tga формате

Собственно сама текстура:

13.  Переходим в Макс, выбираем материал, в слот Diffuse подключаем Bitmap, и назначаем ему нашу текстуру.

Занавес.

Как видно на рендерах, швов на текстурах нет, что и требовалось (Хотя также видно, что разрешение 1024×1024 конечно недостаточно для передних планов)
Аналогично можно создать остальные процедурные карты.
В случае работы с простыми моделями, состоящими из одного элемента, этот алгоритм работает корректно, однако для более сложных моделей он несколько меняется, хотя в целом суть остается прежней.

Немного мыслей после изложения основного контента:
На мой взгляд Mari — революционный софт. Мы стоим на пороге новой эры в работе с текстурными координатами трехмерных моделей, и когда будет нормально работать плагин для Ptex файлов в среде 3ds Max, о развертках можно будет забыть. (Хотя в Autodesk Maya он уже поставляется рендером Vray с поддержкой текстур HDR. Ссылка)

Один недостаток — повышенные требования к «железу». На моей конфигурации программа на первых порах слетала от перегруза оперативки, но после решения проблемы (регулярная чистка буфера обмена и настройка лимита максимального потребления оперативной памяти программой — но не более 80% ее физического максимума) все завертелось
С нынешним софтом (Octane render, iray render, Mari) все же апгрейд видеокарты видится мне неизбежным, и маячит уже в где-то в обозримом будущем.

Еще одно интересное наблюдение: в интерфейсе программы работает «мышиная жестикуляция». За подробностями — в Reference guide. Суть ее заключается в том, что при нажатии и удержании клавиши «\» можно активировать режим жестов, и при выполнении того или иного жеста будут выполняться те или иные операции. Например, текстура запечется на модель, если нарисовать на экране галочку. Буфер обмена очищается, если изобразить квадратную «C». Удобно.
Теперь, чтоб легко общаться с компьютером, надо быть где-то в душе дирижером )
Cпасибо за внимание.