Как сделать uv развертку в фотошопе
Это четвёртая из семи статей из цикла про этапы пайплайна.
Прошлая статья была про сетку.
Сегодня статья посвящена третьему этапу пайплайна — UV развёртке.
Сейчас мы разберём:
— Что такое развёртка, как её сделать
— Как развёртка влияет на поведение текстур
— Самые частые ошибки на UV и к чему они приводят
— Целый ряд советов по правильной работе и оптимизации развёртки
Ты узнаешь про то, что такое тайловое пространство, как с ним работать, как правильно разворачивать сложные формы. Увидишь, как в дальнейшем развёртка поможет в текстурировании модели. Узнаешь про особенности развёртки моделей как части ААА-пайплайна (т.е. разработки моделей именно для топовых компьютерных игр).
Что такое развёртка?
3D модель, по определению, сделана из объемных форм. На любой объект в редакторе можно положить материал, выбрать его цвет и настроить блик. Но положить текстуры на 3D объекты нельзя до тех пор, пока ты не сделаешь развёртку. Программа просто не знает как накладывать плоскую текстуру на геометрию.
Отсюда возникает отдельный этап пайплайна — UV развёртка.
Развёртка переносит объёмные формы на плоскость для того, чтобы на них можно было положить текстуры.
В оригами ты делаешь из плоского листа бумаги объемный объект.
Развёртка делает то же самое, но наоборот — из объемного делает плоское.
Развёртка для видеоигр всегда делается из лоуполи модели, про которую мы писали в прошлой статье.
Кстати, в мультфильмах и иногда в кино мапят хайполи с технологией pTex, которая позволяет текстурить модель без развертки, но это отдельная история. Если ты разрабатываешь модель для компьютерной игры, то разворачивается всегда лоуполи.
Давай разбираться, что это и как это работает!
С чего начинается работа с развёрткой?
В любом 3D редакторе есть инструментарий для работы с UV.
Базового функционала той же Maya хватит, чтобы сделать развёртку даже для очень сложной модели. Но для удобства и редких фишек (например, отрисовка паддинга) иногда используют отдельные программы, созданные исключительно для работы с UV. Лично мне нравится работать в UV Layout. Есть ещё популярная программа Rizom UV.
Хотя я всё чаще стал мапить просто в Maya. За последние пару версий она обновилась и стала крутой.
У примитивов в редакторах есть развертка по умолчанию, но для мапинга сложных форм нужно воспользоваться функцией авторазвёртки.
Давай разбираться, из чего состоит развёртка
Как ты видишь на картинке, у куба есть 8 точек и 6 квадратных полигонов. Теперь посмотри на развёртку, и увидишь, что на развёртке тоже 6 квадратов.
Но количество точек на UV больше, чем на самой модели — на развёртке их целых 14. Чтобы понять, откуда они появились, выдели на кубе одну точку, и увидишь, что на развёртке выделится сразу несколько точек.
На самом деле, на пересечении полигонов происходит следующее:
у каждого вертекса, помимо положения в пространстве и нормали (смотри прошлую статью), есть ещё один параметр — положение этого вертекса на UV.
В общем, если на самой модели ты видишь одну точку, то на UV при её выделении может появиться сразу несколько точек и каждая из них будет принадлежать полигону, который с ней связан.
Главное сейчас, чтобы ты понял — каждый полигон имеет своё место на UV как плоский объект, чтобы программа знала как класть текстуру на геометрию.
Итак, ты понял, что развёртка нужна тебе, чтобы текстурить модель. И каждый полигон твоей модели должен присутствовать на развёртке.
Очень скоро ты узнаешь, как положение объекта на UV влияет на поведение текстур. Так что идём дальше!
Как UV влияет на поведение текстур
Давай для примера возьмём кузов от нашего грузовичка.
Наложим на него текстуру дерева.
Первым делом, давай сделаем авторазвёртку:
Давай выделим на модели одну из дощечек и перенесём на UV вправо:
[ Свойство 1 ] Изменяешь положение объекта на UV — изменяешь положение текстуры.
Доска осталась на месте, а вот положение текстуры изменилось, потому что мы начали двигать её развёртку.Кстати, все объекты на UV называются UV шеллы (UV shell).
[ Свойство 2 ] Так вот, поворачивая шеллы, ты поворачиваешь текстуру на геометрии:
Измени размер UV шелла, и посмотри как изменились текстуры на объекте:
[ Свойство 3 ] Изменяя размер на UV, ты меняешь размер текстуры на модели.
Если гифок оказалось недостаточно для понимания, в этой статье мы добавили несколько наших видеоуроков про UV.
Это было краткое интро про то, что такое UV. Прежде чем мы пойдём дальше, к техническим нюансам, давай разберёмся, как текстурится модель, если у неё правильная развёртка.
Как красятся модели, имеющие развёртку
Открой Substance Painter или любую другу программу, которая создана для работы с текстурами. И загрузи в неё свою модель с развёрткой.
Если всё нормально, то красить будет одно удовольствие:
Внимательные даже здесь заметят небольшой глюк. Но здесь поведение кисти вполне ожидаемое.Но иногда встречаются странные вещи:
Что происходит? С кистью творится что-то очень странное!
Ответ лежит в UV. Для примера мы специально немного его попортили, чтобы ты увидел, как косяки на UV напрямую влияют на твои текстуры. А плохие текстуры испортят любую хорошую модель.
Тому, откуда берутся глюки на UV и как избежать их появления, будут посвящены все последующие разделы этой статьи.
Будет и теория, и рекомендации для правильной работы.
Два вида мапинга
Без теории не обойтись.
Когда ты разворачиваешь объекты на UV, есть 2 пути:
1) Сделать уникальный мапинг.
2) Сделать тайловый мапинг.
Прежде чем разбираться с каждым из них по отдельности, обрати внимание на следующее: на UV пространстве много квадратов. На самом деле, они бесконечны.
Но нас особенно интересует именно первый квадрат на UV, который находится от 0 до 1. Имменно на него накладывается текстура, а на всех остальных квадратах текстура просто повторяется (про UDIM-ы сегодня говорить мы не будем)
Если ты разворачиваешь модель на UV так, что все объекты находятся в первом квадрате и не выходят за его пределы, это называется уникальным мапингом.
Делая hard surface или персонажей для игры, тебе нужно делать именно уникальный мапинг. А для объектов окружения, ландшафтов и зданий часто используется тайловый мапинг, хотя там тоже не всё так просто.
Давай начнём с уникального мапинга.
Как ты помнишь, один материал имеет всего лишь одну единственную текстуру. И она полностью растягивается на первый квадрат UV.
Теперь представь, что мы хотим замапить наш грузовичок. У него есть текстура с деревом для кузова и текстура с крашеным металлом для кабины (хотя на самом деле их гораздо больше).
В принципе, мы можем не заморачиваться. И сделать 2 материала. Один под дерево, другой под крашеный металл. И уже мапить объекты на эти 2 материала.
Но есть нюанс. Каждый новый материал — это лишний вызов отрисовки (draw call), который нагружает игровой движок. А мы моделим грузовичок для игры. Нам крайне важно использовать минимальное количество ресурсов.
Поэтому, вместо того, чтобы плодить кучу лишних материалов, мы делаем всего один материал. Сначала мы разворачиваем все объекты на UV, потом кидаем в фотошоп или Substance Painter и красим эти элементы по отдельности.
Кстати, на важные объекты для больших современных игр ты можешь добавлять по 3-5 материалов.
На выходе мы получаем одну единственную квадратную текстуру, сделанную специально для нашей модели.
Это и называется уникальным мапингом. Это технология, которая заключается в следующем:
— Мы мапим все объекты на UV только в первый его квадрат. Ни один из шеллов не выходит за его пределы, и шеллы не пересекаются (кроме оверлапов, о которых поговорим сегодня чуть позже).
— Объекты покрашены по-разному (кузов деревянный, кабина из крашеного металла). Причём это не повторяющиеся, а уникальные текстуры.
— Но на выходе мы имеем одну единственную текстуру (не считая карты нормали, рафнеса и металнеса, но об этом в статье про текстуры) и один материал, тем самым экономим ресурсы игрового движка.
Как ты уже знаешь, квадраты на UV бесконечны. Это значит, что текстура, которую ты положил в первый квадрат будет повторяться бесконечное количество раз. Это бесконечное повторение текстур называется тайлом.
Тайловый мапинг очень часто используется для развёртки зданий, предметов окружения и ландшафтов.
Представь, что мы хотим сделать развёртку этого дома:
Сначала мы создаём материалы с бесшовными текстурами.
Потом кладём их на геометрию с помощью авторазвёртки (box maping).
И так делаем для каждого из объектов. Для стены дома — один материал с кирпичной кладкой. Для прилавка — другой материал с текстурой дерева. И так далее.
Ещё один момент — при тайловом мапинге сами UV шеллы могут выходить за пределы первого квадрата UV. Это нормально.
Зачем это нужно? Представь, что у тебя есть бесшовная текстура с кирпичом. Если развёртка всех стен будет в первом квадрате, то кирпичи будут слишком крупными (как ты можешь увидеть на гифке). Так как текстура с первого квадрата бесконечно повторяется, а у текстуры нет швов — мы просто меняем размер шеллов на UV и подбираем подходящий для нас размер.
При тайловой развёртке шеллы могут выходить за пределы первого квадрата.В автомапинге не так важно как выглядит UV развёртка. В отличие от уникального мапинга, нет смысла умещать все шеллы внутри первого квадрата и экономить пространство на UV. Главное, чтобы текстуры выглядели аккуратно и без потягов.
Надеюсь, что сейчас ты понял разницу между уникальным мапингом и тайловым.
Вот так выглядит наш дом после развёртки и текстур.
Говоря про тайловый мапинг, есть один важный момент насчёт текстур.
Если ты не хочешь, чтобы при повторении текстуры были швы — используй тайловые текстуры, то есть текстуры без швов.
Ты далеко не первый, кому они нужны, поэтому есть целый ряд библиотек с тайловыми текстурами. Вот несколько полезных сайтов, где ты их найдёшь:
Но есть нюансы. У нас в сцене есть несколько разных фруктов.
Как ты знаешь, каждый из материалов — это отдельный вызов отрисовки в игровом движке. Чтобы сэкономить ресурсы и не создавать под каждый из фруктов отдельный материал, мы сделали следующее: мы нарисовали одну текстуру и замапили на неё все фрукты. На самом деле это не сцена для игры, а демонтрация технологий, в игре мы бы почти все не тайловые текстуры засунули в один атлас, сделали бы его плотнее и аккуратнее.
Атласы — это один из приёмов, которые часто используются в видео играх. Есть ещё тримы, но про них чуть позже будет в этой статье.
Раз речь зашла о текстурах, есть ещё один момент, который нужно знать.
Лучше всего работать с квадратными текстурами.
Во всех программах на данный момент все текстуры растягиваются и полностью занимают первый квадрат на UV. Поэтому если текстура прямоугольная, то она растянется до квадрата.
Иногда для экономии видеопамяти используют прямоугольную текстуру (например 1024х512 или даже 2048х256. Да, так тоже бывает!) Такая текстура все-равно растягивается до квадрата, и для неё очень важно правильно растянуть развертку.
Кстати, насчет разрешения текстур: из-за особенностей цифровых вычислений, разрешение текстур всегда стараются делать кратными степени двойки. То есть сторона текстуры может быть 32 пикселя в ширину. Или 64, 128, 256, 512, 1024, 2048 или, даже, 4096 пикселей. Как я писал выше, текстура может быть прямоугольной, например 512х256, или 512х128, но, как правило, их делают квадратными.
Текстуры кратные степени двойки заполняют целые ячейки видеопамяти. Если вместо текстуры 1024х1024 засунуть в движок текстуру размером 1000х1000 — она не заполнит всю ячейку видеопамяти, её обработка потребует чуть больше ресурсов от видеокарты, и из-за такой мелочи игра чуть-чуть потеряет в производительности. Эти потери очень несущественны и почти не заметны, но рендер видео игр — это всегда борьба за оптимизацию, и поэтому все разработчики игр ни секунды не сомневаются, что текстура в 1024х1024 лучше текстуры в 1000х1000.
Совет: старайся использовать квадратные текстуры, а прямоугольные лучше, по возможности, сделать квадратными.
Как правильно работать с UV
Сейчас мы разберём несколько приёмов, которые всегда используются при работе с UV. Они помогут сэкономить пространство и упростить процесс текстурирования.
Трюки при работе с UV:
Оверлапы сэкономят пространство на UV
Если на твоей модели есть одинаковые элементы, например, болты на обшивке, то на UV их можно размапить на один и тот же UV shell. Просто посмотри видео, там всё рассказано:
Для редактирования содержащихся в 3D-файле текстур или создания новых текстур можно использовать рисование Photoshop и инструменты коррекции. Текстуры импортируются вместе с 3D-моделью в виде 2D-файлов. Они отображаются в виде элементов на панели «Слои», вложенной в «3D-слой» и группируются по типу карты: «Диффузия», «Выпуклость», «Глянцевитость» и так далее.
Для просмотра миниатюры определенного файла текстуры наведите указатель на название текстуры на панели «Слои». Вместе с миниатюрой также показываются сведения о размере изображения и цветовой модели.
A. 3D-слой B. Типы текстурных карт C. Название текстурной карты
Если выбрать материал, то в нижней части панели 3D отображаются текстурные карты, используемые в нем. См. раздел Параметры 3D-материалов.
Редактирование 3D-текстур в Photoshop осуществляется одним из следующих способов:
Редактирование текстуры в 2D-формате. Текстура открывается в качестве смарт-объекта в отдельном окне.
Редактирование текстуры непосредственно на модели. При необходимости можно временно вырезать необходимую область модели для рисования. См. раздел 3D-рисование.
Выполните одно из следующих действий.
Дважды щелкните текстуру на панели «Слои».
На панели «Материалы» выберите материал, используемый в текстуре. В нижней части данной панели щелкните значок меню текстуры редактируемой текстуры и выберите «Открыть текстуру».
Для рисования на текстуре или ее редактирования можно использовать все доступные инструменты Photoshop.
Активируйте окно с 3D-моделью, чтобы увидеть результат редактирования ее текстуры.
Закройте документ текстуры и сохраните изменения.
Для определения области модели, на которую наложена текстура, текстуры можно скрывать или отображать вновь.
Щелкните значок глаза напротив необходимого слоя «Текстура». Чтобы скрыть или отобразить все текстуры, щелкните значок глаза напротив самого верхнего слоя «Текстуры».
Фоновый файл диффузии, использующийся несколькими материалами 3D-модели, может совмещать в себе несколько областей содержимого, накладываемого на различные поверхности данной модели. Этот процесс, называемый Отображение UV, согласовывает координаты из 2D-текстурной карты с определенными координатами на 3D-модели. UV-наложение обеспечивает корректное наложение 2D-текстуры на 3D-модель.
Что касается 3D-содержимого, созданного не в Photoshop, этот процесс осуществляется в той программе, где это содержимое создавалось. Однако в Photoshop можно создать UV-перекрытия, которые облегчают контроль наложения 2D-текстуры на поверхности 3D-модели. Эти перекрытия играют роль направляющих при редактировании текстуры.
Дважды щелкните текстуру на панели «Слои», чтобы открыть ее для редактирования.
Создание UV-перекрытий возможно только в том случае, если текстурная карты открыта, а содержащее ее окно является активным.
Выберите «3D» > «Создать UV-перекрытия», затем выберите вариант перекрытия.
Показывает границы UV-отображения
Показывает области модели в режиме рендеринга с использованием сплошного цвета.
Отображает геометрические нормали, переведенные в значения RGB, где R=X, G=Y, а B=Z.
UV-перекрытия добавляются в качестве отдельных слоев фонового файла на панели «Слои». UV-перекрытие можно отобразить, скрыть, переместить или удалить. Эти перекрытия отображаются на поверхности модели при закрытии и сохранении фонового файла или переключении с фонового файла на связанный 3D-слой (сохранение фонового файла происходит автоматически).
Перед проведением финального рендеринга UV-перекрытия нужно удалить или скрыть.
Иногда на сетке открываемой 3D-модели текстуры отображаются не совсем точно. Некорректное наложение текстур может привести к тому, что на поверхности модели станут заметны значительные искажения, например, швы или области с вытянутыми или сжатыми узорами текстуры. Также это может привести к непредсказуемым результатам при непосредственном рисовании на модели.
Чтобы проверить параметризацию, откройте текстуру для редактирования, затем используйте UV-перекрытие для осмотра качества наложения текстуры на поверхности модели. См. раздел Создание UV-перекрытий.
Команда «Повторно параметризовать» устраняет все изъяны для корректного отображения текстуры на поверхностях модели.
Откройте 3D-файл с ошибками в наложении текстуры диффузии, затем выберите 3D-слой, в котором содержится данная модель.
Задайте параметры повторной параметризации:
«Низкое искажение» обеспечивает наименьшее искажении узора текстуры за счет возможного увеличения числа швов на поверхности модели.
«Уменьшение числа швов» уменьшает число швов на стыках текстур модели. В зависимости от модели этот процесс может привести к увеличению случаев растяжения или сжатия текстуры.
(Необязательно) Если выбранный способ повторной параметризации не позволяет добиться желаемого результата, выберите «Редактирование» > «Отменить» и попробуйте второй вариант.
Команду «Повторно параметризовать» также можно использовать для повышения качества отображения текстуры по умолчанию при создании 3D-моделей из 2D-слоев. См. раздел Создание 3D-объектов из 2D-изображений.
Текстура с повторяющимся узором состоит из одинаковых повторяющихся фрагментов изображения, напоминающих мозаику. С помощью таких текстур можно воссоздать более реалистичный внешний вид модели. Они не занимают много места на диске, а уровень производительности при их использовании возрастает. Любой 2D-файл можно превратить в мозаичный рисунок. После предварительного просмотра взаимодействия участков мозаики на рисунке вы можете сохранить один из них в качестве повторяющейся текстуры.
Чтобы создать сетку для текстуры с повторяющимся узором, воспользуйтесь 3D-редактором, в котором была создана модель.
Инструменты рисования Photoshop подходят как для рисования на поверхности 3D-модели, так и для рисования на 2D-слое. Обозначить области модели для рисования можно как вручную, используя инструменты выделения, так и автоматически (Photoshop самостоятельно выделит области, доступные для рисования). Команды меню 3D позволят очистить требуемые области модели, для того чтобы при рисовании можно было получить доступ к ее внутренним или скрытым частям.
При рисовании непосредственно на модели можно выбрать базовую текстурную карту, на которой будут фиксироваться все вносимые изменения. Обычно эти изменения вносятся в текстурную карту диффузии, которая отвечает за цветовые свойства материала модели. Рисовать можно также и на других текстурных картах, например на карте выпуклости или прозрачности. Если при рисовании выбран тип текстурной карты, который отсутствует в модели, то текстурная карта данного типа создается автоматически.
Для каждого случая использования применяется индивидуальный метод рисования. Приложение Photoshop предоставляет следующие методы 3D-рисования.
Интерактивное 3D-рисование (по умолчанию в Photoshop). Штрихи кисти, применяемые в представлении 3D-модели или текстуры, отображаются в режиме реального времени в другом представлении. Этот метод 3D-рисования обеспечивает высокую эффективность и минимальное искажение.
Рисование в проекции слоев. Этот метод рисования применяется для инструмента Градиент и соответствующих фильтров. Метод рисования в проекции слоев предполагает объединение нарисованного слоя с базовым 3D-слоем. Во время операции объединения приложение Photoshop автоматически проектирует рисунок на соответствующие текстуры целевого объекта.
Рисование в проекции. (По умолчанию в Photoshop Extended CS6) Рисование в проекции подходит для одновременного рисования нескольких текстур или для рисования стыка между двумя текстурами. Однако, как правило, этот метод рисования отличается низкой производительностью и может привести к сбоям при рисовании сложных 3D-объектов.
Рисование на текстуре. Можно открыть 2D-текстуру и рисовать непосредственно на ней.
Ты мог заметить, что при использовании текстур они не всегда накладываются так, как тебе хочется: что-то растягивается, что-то обрезается. Ситуация обостряется, если нам нужно наложить разные картинки на один объект, например сделать кубик с цифрами.
Чтобы изображение накладывалось правильно на модель, были придуманы развёртки (UV Map).
Развёртка — это соотношение между координатами на поверхности трехмерного объекта (X, Y, Z) и координатами на текстуре (U, V).Развертку можно строить автоматически, но иногда приходится делать это вручную.
Пример того, как развертка накладывается на трехмерных объект
Алгоритм настройки текстуры с помощью развертки следующий:
- Задать вручную ребра, по которым будет проходить разрез модели (Ctrl+E -> Mark Seam). Если этот пункт пропустить, то программа разрежет модель по всем ребрам.
- Выделить полигоны, которые должны быть в развертке.
- Создать развертку (U -> Unwrap).
- *Если ты хочешь сам создать текстуру (например, нарисовать или сделать в фотошопе), то сохранить шаблон развертки.
- Наложить текстуру.
- Задать наложение текстуры по развертки.
- Подкорректировать положение текстуры.
Пошаговое наложение текстуры при помощи развертки
На примере кубика с цифрами разберем наложение текстуры с помощью развертки по шагам.
- Создай куб и перейди в Edit Mode. Выдели ребра, как на рисунке (по ним будут проходить разрезы развертки).Чтобы перейти в режим прозрачности объекта нажми Z.
- Пометь ребра для разреза: Ctrl+E -> Mark Seam.
- Ребра приобрели красный цвет, то есть по ним будет проходить разрез нашей развертки
- Выйди из режима прозрачности объекта (клавиша Z). Выдели все полигоны и создай развертку: U -> Unwrap.
- Раздели экран на две части и перейди в одной из областей на вкладку UV/Image Editor.
- Включи синхронизацию выделения объектов на развертке и 3D модели (значок снизу). Теперь, выделяя элемент на одной из частей экрана, этот же элемент выделяется на другой части.
- Экспортируем развертку в изображение, чтобы мы могли нанести на ней свой рисунок: UVs -> Export UV Layouts. Напиши название файла, выбери папку и сохрани картинку.
- Открой сохраненный шаблон развертки в графическом редакторе и оформи грани кубика. Определять положение цифр можно с помощью пункта 6. Сохрани изображение, когда закончишь оформлять развертку.
- В окне 3D вида перейди в Object Mode. Для куба создай материал. Назначь ему Image Texture и выбери нужную картинку-текстуру.
- В пункте Normal выбери пункт UV (чтобы текстура накладывалась по UV развертке).
В окне UV/Image Editor ты можешь перемещать и масштабировать полигоны с помощью клавиш G и S. Таким образом легко подогнать развертку под текстуру.Особенности разворачивания примитивов и сложных моделей
Сфера, шов проходит через экватор Второй вариант развертки сферы. Часто такую развертку используют при изображении карт мира. В отличие от первого варианта, здесь вся поверхность была развернута в единое полотно
Павел Цветов запись закреплена
Возник вопрос, как можно импортировать uv развёртку в формате jpg, которую автоматически сделал коат в блендер и привязать её к модели? Сам делать развёртки не умею.
uv развертка в формате jpg это сильно)) UV храниться в самой модели(формат obj,fbx, . )А jpg это формат битовых карт(растровых изображений) аля текстуры. Так что надо импортировать?
видимо скрин ювишки. можно просто отпринтскринить юви эдитор и закинуть потом его в гимп как подложку для основного слоя.
Экспортируй либо модель, либо сами юв, и в блендере уже в юв эдиторе ищи импорт ювишек.
Cg, А вот так на вскидку, можете назвать пару форматов для uv, не считая eps и схожих, так как это не то. И где в коате экспортер ювишек без объета? Не сохранить uv так как он сохраняет просто во временный файл формата коата вместе с выделениями и т.д. Про блендер не знаю теоретически могу предложить что можно сторонню юви без самой модели в каком то формате туда импортировать
Паша, Экспортируй модель эту с разверткой(само всё как во волшебству будет внутри) открой в блендере (импорт) а дальше вот так в гугле (как сохранить текстуру uv развертки в Blender)
Зы. я погуглил вот так в блендере UVs>Export UV LayoutАлексей, про экспорт из блендера я и так знал, я думал что развёртку из коата отдельно закидывать надо, а она оказывается прям в модели, спасибо)
Читайте также: