Merge texture sets, или как делать один набор текстур в Substance Painter

Merge Texture Set быстро и без лишних усилий…



Доброго времени суток, меня зовут Julia, и сегодня я расскажу вам о том, как объединить Texture Sets в Substance Painter и экспортировать один набор текстур. Объяснять буду на примере своего проекта, который я делала в Blender 2.8.

Вступление


Для начала, пару слов про ПО. Substance Painter — это достаточно мощная и стабильная программа, которая знакома многим, а может быть и всем 3D-художникам и разработчикам компьютерных игр. Что может быть проще загрузить модель с UV-разверткой и сразу «текстурить» и «запекать»? Но однажды передо мной появилась проблема…

Проблема


Как многие (кто работает с Substance Painter) знают, что при импорте 3D-модели с набором цветов или текстур в среду, происходит разделение этой самой модели на отдельные области или «Texture Sets». Для примера я взяла свою старую модель топора.



Texture Set — это удобный инструмент, так как художник при работе с ним может просто убирать из видимости ненужные ему части модели, которые будут окрашены в другой цвет. И все бы ничего, но что же я получила, когда решила, делать экспорт текстур из Substance Painter что бы работать с моделью в другом редакторе (например, в том же самом Blender)?

А именно то, что и должны была, я получила по набору текстур на каждый Texture Set, а именно 6*3=18 разных текстур (BaseColor, Roughness, Metallic, Normal, Height, Emissive).

Может быть кому-то это покажется очень удобным, но точно не мне. Настроить рендер добавляя 18 текстур в один маленький проект — это слишком… Данную проблему я и пыталась решить. Искала решения в сети, но было мало понятных для меня ответов. Теперь, спустя время, я хочу рассказать о том, как я её решаю сейчас.

Этап 1 — Подготовка моделей


При экспорте из любого 3D редактора (после создания low-poly и UV) мы должны назначить всем частям модели один цвет — это самое главное, что нужно сделать на первом этапе. Импортируя потом эту модель в Substance Painter у нас будет один Texture Set и, следовательно, только один набор текстур при экспорте.



Далее, мы работаем с нашим high-poly (на основе которого обычно делают «запечку» разных карт). Назначим каждым объектам свои цветовые ID (я работала так же в Blender), то есть просто окрашиваем их в разные цвета максимально отличающиеся друг от друга.

Этап 2 — «Запечка»


После того, как все было подготовлено, экспортируем low-poly в Substance Painter. Далее самое важное… Я не стану рассказывать о том, что такое «запечка» и Normal Map, таких статей довольно много, и если вы интересуетесь этой темой, то наверняка знаете о чем я говорю.
При «запечке» в Substance Painter я выбираю только 2 карты Normal Map и ID. И в качестве объекта выбираю мою high-poly, нажимаю Bake и готово.

(Что бы карта «запекалась» без артефактов нужно сделать некоторые дополнительные операции в настройках: на вкладке Common в поле Match установить значение «By Mesh Name», на вкладке ID в поле Color Source установить значение «Material Color».)



Этап 3 — Настройка проекта


Теперь нужно правильно настроить проект, что бы работа с ним была удобной и понятной.

  1. Создаем в слоях папку (Folder) и называем ее так, как назвали бы текстуру (В моем случае Wood, Rings или Steel). Таких папок нужно столько, сколько будет текстур на вашей модели
  2. Выбираем одну из папок и добавляем ей mask with color selection в меню масок, в ее настройках выбираем пипетку (Picker) и видим «запечёный» ID на нашей low-poly модели. Данную операцию нужно сделать для всех частей объекта

Теперь эти папки и есть наши варианты Texture Set, при работе с которыми мы не будем задевать другие части модели. Теперь иерархически заполняя папки (например, Fill Layer) можно окрашивать части модели в свои текстуры.

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

Комментарии 3

    +1

    TL;DR:


    Substance Painter автоматически создает набор текстур для каждого уникального материала найденного в исходном файле — в целом ожидаемое поведение т.к. SP расчитывает что UV-карты материалов пересекаться друг с другом не будут. Для многих применений это, естественно, избыточно, так как материалы могут занимать только небольшую поверхность (как Rings в примере с топором выше).


    Как решается эта проблема? Делают отдельную модель с одним единственным материалом и общей UV-картой (иногда это буквально тот же меш, иногда у оригинального меша полигонов побольше, если это скульптура, например). Теперь мы загружаем эту модеть с одним материалом в SP и он создает только один набор текстур.


    Как тогда понять где какая текстура была в оригинале? SP умеет запекать (aka генерировать новые текстуры на базе UV-карт) карты ID — тех самых ID материалов по уникальности которых он создает наборы текстур. Таким образом можно подсунуть ему оригинальную модель с кучей материалов и он превратит ее в цветную текстуру. Там есть разные варианты генерации, но "цвет материала" это значение по умолчанию.


    Теперь когда у вас есть отдельная текстура, ее можно использовать как фильтр для заливки маски на модели с одним материалом. Профит!

      0

      Есть ещё один способ объединить текстурные сеты. При экспорте текстур можно базовому цвету задать альфа канал. После выбрать расширение файла, поддерживающее прозрачность, например .png. В этом случае островки текстуры будут на прозрачном фоне и их легко можно будет объединить в графическом редакторе.

        0
        Да, тоже отличный способ!)

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое