Как сделать текстуру в zbrush
Создание стилизованной тайловой текстуры
Andrew Harrington показывает процесс создания стилизованной тайловой текстуры при помощи ZBrush, Photoshop, и Substance Painter.
Перевод статьи с портала 80 level
Введение
Эй, всем привет! Меня зовут Эндрю Харрингтон, и я ведущий художник по окружению. За время проведенное в индустрии я успел проработал во многих студиях. Учился и находился под влиянием у сотен людей. В этой статье я надеюсь поделиться некоторыми своими знаниями и процессом создания стилизованных текстур для окружения. В частности, я шаг за шагом разберу процесс создания следующей бесшовной текстуры.
Блокинг
Мой первый шаг при создании любой текстуры окружения — это либо нарисовать ее в Photoshop, либо сделать плоский блокинг геометрии в 3ds Max или Maya. Если я рисую текстуру в Photoshop, то обязательно позабочусь о том, чтобы она была бесшовной.А затем использую ее в качестве ориентира, чтобы сделать плоский блокинг. Обычно я работаю на плоскости 8m х 8m, потому что в большинстве случаев она обеспечивает соответствующую плотность текселей для использования в игре. Это разрешение позволяет лучше судить о детализации в текстуре в сравнении с размером персонажа.
После блокинга я решаю, какие части будут перекрываться, для обеспечения бесшовности. Обычно я работаю справа налево, а затем сверху вниз. Правый верхний кусок становится «краеугольным».
Теперь, когда я разобрался с тайлом, пришло время экструдить края каждого блока, чтобы у меня были фаски для скульпта. Важно отметить, что я не делаю экструд края ровно под углом в 90 градусов, а «раздуваю» их, чтобы они перекрывали края блоков. Это гарантирует, что я не получу никакого негативного пространства при добавлении деталей на фаски, и лучше буду контролировать края.
В конце я создаю плоскость размером 8m х 8m и центрирую ее позади моего блокинга. Это будет низкополигональная плоскость, на которую я проецирую свою высокополигональную сетку при запекании текстуры. Это также поможет мне в ZBrush, когда будет нужно сделать тайл сабтулов.
Добавление деталей
Базовая модель, экспортируемая в Zbrush – один целый кусок. Я хочу, чтобы каждый элемент был разбит на отдельный сабтул, чтобы я мог работать индивидуально над каждым из них и добавлять сабдивы без ущерба для производительности.
Сначала я использую функцию «Auto Group» на вкладке «Polygroup». Каждый элемент получает свою собственную Group ID, что позволит разделить их на сабтулы.
Во вкладке «Subtool» нажимаю «Groups Split» для разделения на отдельные сабтулы. Затем я применяю DynaMesh для ретопологии сабтулов,делаю 4-5 дивайдов. Это должно обеспечить достаточное разрешение для добавления хорошей детализации.
Существует много способов добавления детализации на поверхности, которые придадут им стилизованный вид. Основная цель, которую я преследую при добавлении деталей — дать достаточно информации, для понимания из какого материала сделан объект, но не слишком много, чтобы избежать лишнего «шума». Как говорил мне один из моих арт-директоров: «Иногда меньше значит больше». В данном случае я использовал метод добавления множества деталей, с дальнейшим удалением лишнего. Я начал с кисти ClayBuildup, чтобы добавить детали, а затем использовал Planer Brush, чтобы убрать их.
Примечание. Использование квадратной альфы с Planer Brush даст вам хорошие острые края. Затем используется кисть TrimSmoothBorder для большей конкретизации.
Этот метод хорошо работает, поскольку дает чистую поверхность с намеками на детали. Я повторяю этот метод для остальных сабтулов. Как только вы сделаете это несколько раз, процесс пойдет довольно быстро. Я обязательно уделяю особое внимание краям блоков, чтобы у них было много углов, и они давали больше глубины. Без них текстура будет выглядеть довольно плоско. Также постоянно стоит проверять общий вид текстуры под прямым углом к камере, так как она будет выглядеть при запекании.
После того, как сделан скульпт всех сабтулов, я хочу добавить немного вариаций их вращения и глубины, чтобы придать текстуре дополнительный слой. Я делаю это лишь для некоторых сабтулов. Если бы я сделал это для всех элементов, это выглядело бы довольно неорганизованно. Изменения помогают уменьшить эффект повторяющихся элементов, когда текстура тайловая.
На этом этапе я готов выложить свою текстуру в ZBrush в плоскости 2.5D.
Тайлинг в ZBrush
Первое, что я делаю, когда готовлюсь сделать бесшовной геометрию в ZBrush — проверяю, чтобы размер моего документа соответствовал размеру будущей текстуры. Я делаю это для карты высот с корректным размером в 2.5D. В разделе «Document» я установил размер 2048 × 2048.
Затем я рисую Ztool на холсте и выбираю сабтул с плоскостью 8×8, который я экспортировал из Max с базовой геометрией. Выбрав его, я проверяю, чтобы Dynamic Perspective была выключена и размещаю сабтул в кадре. ZBrush будет кадрироваться в соответствии с любым выбранным вами сабтулом, поэтому я использовал плоскость. Таким образом, мой Ztool идеально вписывается в размер документа.
С кадрированным Ztool я теперь могу дублировать сабтулы по краям, а затем сделать офсет по сторонам. Если смещения не идеальны по пикселям, это нормально, я исправлю швы на следующем шаге.
Затем я перехожу в режим 2.5D. Вы можете прокрутить текстуру, удерживая тильду (`). Либо можете более точно сместить холст, перейдя на вкладку «Layer» и отрегулировав ползунки «Displace Н» и «Displace V».
Так как я знаю, что мой холст имеет размер 2048 × 2048, то если я смещу H и V на 1024 × 1024, все швы будут в центре холста.
Когда шов размещен посередине я «захватываю» карту высот холста с помощью инструмента «RGBZGrabber» в разделе «SimpleBrush», а затем очищаю холст, нажав «Ctrl + N».
Базовая плоскость 8х8 будет использована как высокополигональный мэш для дисплейса геометрии на основе только что полученной карты высот. Разрешение базовой плоскости увеличено до примерно до 4 миллионов точек при помощи дивайдов, но без сглаживания.
Карта высот назначается как «Current Alpha», в параметрах маскирования применяется «Mask by Alpha». Альфа-маска проецируется на мою плоскость 8х8m.
Во вкладке Deformation Options настраивается офсет геометрии. Обычно я корректирую смещение только до 5 или 6, поскольку не хочу сверхсильного смещения.
Теперь я могу очистить маску и отполировать швы. Я буду повторять шаги в режиме 2.5D, пока швы не будут полностью удалены. Как только это будет сделано, я экспортирую геометрию в качестве моей высокополигональной модели и буду использовать исходную плоскость 8mx8m в качестве моей низкополигональной для запекания.
Текстурирование
Для меня процесс текстурирования — это этап, на котором я, вероятно, трачу наименьшее количество времени. Мне нравится сохранять вещи довольно простыми при работе со стилизованными формами, так как я считаю, что это делает их более читабельными в игре.
В ходе текстурирования я предпочитаю сохранять все упорядоченным и для этого использую устаревший плагин DDO для Photoshop для организации слоев. Я загружаю только базовую карту нормалей в плагин и заменяю карты AO и Curvature.
Когда все базовые слои настроены с помощью запеченных текстур, я заполняю различные элементы моей текстуры сплошным цветом, близким к цвету, который я ищу.
Крайне важно то, что я устанавливаю все свои значения цвета для работы с Linear Rendering (Unreal 4, CryEngine, Marmoset и т. Д.). В Liner Rendering среднее значение серого цвета (в RGB — пер.) не 127/127/127, а больше похоже на 187/187/187. Слишком часто я вижу слишком темные текстуры, которые нужно компенсировать, подавляя освещение в сцене. Темная текстура плохо воспринимает свет, поэтому окажите себе услугу и сохраняйте цветовые диапазоны в верхних значениях.
Пришло время наложить несколько мазков и тонких цветовых вариаций. Для этого я беру простую кисть с узором. В свойствах кисти я включаю настройки Color Dynamics, отключаю «Apply Per Tip» и задаю небольшие значения для оттенка, насыщенности и яркости. Теперь каждый раз, когда я делаю мазок кисти, он выбирает цвет в пределах диапазона.
Еще одна вещь, которую стоит отметить — я проверяю, чтобы flow и opacity кисти были установлены на 50%. Таким образом, я могу получать разные цвета.
Затем я накладываю некоторые более мелкие детали и играю с различными цветовыми вариациями, используя настройки слоя.
Последний шаг — использовать полученный результат в качестве текстуры основного цвета в Substance Painter, наложить некоторые эффекты и сгенерировать карты «Metall/ Roughness». В Painter я стараюсь все делать просто, так как я не хочу добавлять «шумы». Мне нужно лишь добавить немного гранжа и слегка детализировать карту Roughness. Мне нравится использовать «Bone Stylized» для этой цели, а затем добавлять немного цвета на карту грязи AO, чтобы поиграть с ней. Вот, наверно, и все. Как я уже говорил, иногда меньше значит больше.
Рендер
Я использую довольно простые настройки рендера в Marmoset. Используется трехточечный источник света, настроенный с помощью Child Lights на одной из Enviornment-карт. Поскольку при текстурировании я использовал высокие диапазоны в значениях цвета, я могу получить гораздо больше от освещения, не увеличивая его. Как уже было сказано, очень важно использовать правильные значения цвета.
Заключение
Надеюсь, что вам понравилось заглянуть внутрь моего процесса создания стилизованных текстур. Мои знания и навыки — это сочетание обучения, наблюдения за другими и МНОГО проб и ошибок. Самое замечательное в стилизованном искусстве заключается в том, что на самом деле нет универсальных ответов. Просто получайте от этого удовольствие. Спасибо!
Как сделать текстуру в zbrush
1. Сначала открываем ZBrush, ставим какую-нибудь уже встроенную модель, впрочем, также можно открыть модель, сделанную в ZBrush-е и сохранённую как Tool, либо импортировать модель, сделанную в другом трёхмерном редакторе, разницы тут абсолютно никакой нет. Но, единственный момент, желательно, чтобы модели состояли исключительно из четырёхугольных полигонов, треугольные полигоны нежелательны. А я на примере буду пользоваться обычным шаром, т.е. сферой.
2. Нажимаем кнопку Edit, для того, чтобы можно было вставленный объект вращать, лепить и т.д., и приводим объект в такое положение, в которое хотим для дальнейшего текстурирования. В итоге сцена должна принять вот такой вид:
3. Теперь, для того, чтобы легче текстурировать модель, заменяем красный материал, который стоит по умолчанию на более простой (желательно белый). Для этого жмём на панель Материалов (Material) и выбираем нужный материал, советую выбирать такой материал, на котором будет легче определить цвет, например вот этот:
В итоге модель перекрасится в тот материал, который мы выбрали:
4. Теперь щёлкаем на кнопочке под названием Projection Master:
Появится вот такое меню параметров:
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
Для начала попробуем просто порисовать цветом, не включая другие параметры.
5. После выбора нужного параметра, нажимаем на кнопку Now. Вы, наверное, сначала удивитесь, что ничего сверхъестественного не произошло и всё казалось бы осталось как и прежде, но это не так, обратите внимание на появившиеся новые функции в правом углу панели Tool. Нажмите на функцию Tool:
Вылезет вот такая вот нехитрая панель с возможностями, которые были неактивированными, до применения Projection Master-а:
Вот краткое описание каждой из кистей, но прежде чем начать рисовать запомните, что трёхмерный объект во время рисования в режиме Projection Master-а, вращать, двигать, увеличивать и уменьшать нельзя:
Sphere Brush – позволяет рисовать сферическими формами.
Alpha Brush – берёт за образец альфа-каналы (хотя альфа-каналы, также можно использовать и с другими кистями)
Simple Brush – обычная кисть
Eraser Brush – ластик, резинка
Smudge Brush – кисть смазывания текстуры
Fiber Brush – кисть, которая наносит геометрию похожую на волосы
Snake Hook Brush – позволяет делать острые зацепки, вытягивает и скручивает их
Bump Brush – позволяет выдавливать геометрию мазка, используя альфа-канал
Depth Brush – выдавливает/вдавливает геометрию мазка с пикселевой ориентацией модели
Single Layer Brush – выдавливает/вдавливает геометрию мазка на единственном уровне, как бы ступенчатом
Paint Brush – применяет новый уровень (по высоте) к цветовому мазку
Roller Brush – валик
Directional Brush – прямая кисть, также позволяет рисовать и накладывать уже готовые текстуры
Deco Brush – инструмент, который позволяет накладывать одну текстуру, которая при зажатой левой кнопке, будет деформироваться следуя направлению ориентации движения кисти
Cloner Brush – тоже самое, что и CloneStamp в Photoshop-е
Blur Brush – кисть сглаживания
Sharpen Brush – кисть резкости
Noise Brush – позволяет наносить шум
Highlighter Brush – кисть добавления яркости
Glow Brush – кисть добавления эффекта свечения
Intensity Brush – кисть добавления интенсивности цвета
Shading Enhancer Brush – кисть осветления и затемнения
Colorize Brush – кисть применения текущего цвета/текстуры к объекту
Saturation Brush – кисть насыщения цвета
Hue Shifter Brush – кисть изменения оттенка по цветовому спектру
HighlighterBrush2 – тоже, что и Highlighter Brush
Contrast Brush – кисть контрастности
Custom Filter3 – кисть позволяющая применять заказные эффекты
Custom Filter5 – кисть позволяющая применять заказные эффекты
Multi Markers – инструмент для раздельной манипуляции геометрией
Mat Cap Material – инструмент позволяющий копирую цвета с модели или фотографии (на заднем фоне), создавать реалистичный материал
При этом можно размещать даже сами трёхмерные объекты, с одним но, без включённого параметра Deformation они никак не проявятся на объекте.
Теперь немного о функциях:
Во-первых, чтобы убрать выпуклое рисование (на данный момент оно нам не нужно) надо отжать кнопки Zadd или Zsub в верхней панели, т.к. пока не включена функция Deformation, никакого вдавливания/выдавливания проявляться не будет.
Во-вторых, когда вы рисуете, вы можете пользоваться настройками кисти (также находящиеся в верхней панели). Вот их краткая опись:
RGB Intensity – интенсивность нажима цветовой кисти
Z Intensity – интенсивность кисти вдавливания/выдавливания (активируется при включённом режиме Zadd или Zsub)
Draw Size – размер кисти
Focal Shift – контролирует размер размытых или жёстких краёв кисти
В-третьих, вы также можете пользоваться функциями левой боковой панели, кроме той, которая отвечает за трёхмерное моделирование, а именно: Dots, Alpha, Texture, Material и Switch Color.
Я не думаю, что стоит отдельно описывать каждый параметр всех этих функций, так как нет ничего сложного в их самостоятельном освоении. Там всё просто, как в Photoshop-е, главное – понять сам принцип.
6. Ну что же, теперь можно приступать к самому текстурированию, попробуем просто порисовать цветом, не применяя различных эффектов, выберем стандартную (Simple Brush) кисть и что-нибудь напишем, например, как показано на картинке:
Допустим, теперь нам надо нарисовать что-нибудь на другой стороне модели. Напомню, что при 2D-рисовании двигать, поворачивать, деформировать модель нельзя и для того, чтобы её повернуть, нужно проделать следующее:
— Опять-таки нажмите на кнопку Projection Master, опять вылезет вот это окошечко:
— Ничего не трогая, оставьте всё как есть, без изменений
— Теперь нажмите в самом низу кнопочку Now, именно эта функция и накладывает нарисованный в режиме Projection Master-а рисунок на трёхмерный объект и возвращает режим трёхмерного редактирования. Теперь снова можно двигать, вращать и деформировать трёхмерную модель
— Заметьте, что в меню Texture, появилась нанесённая ранее, надпись, в моём случае буквы – Z B, теперь это уже и есть текстура
— Поверните объект той стороной, которую хотите дальше затекстурировать, например, как показано на рисунке ниже:
— Когда модель готова к дальнейшему текстурированию, снова нажмите на кнопку Projection Master и повторите все действия, которые были описаны в пункте 5, ничего не меняя, ведь начинаем-то с азов.
В результате проделанных операций с текстурированием каждой из сторон модели, у нас должна получиться вот такая модель, я написал на своём шарике – Zbrush 3 Rulit! (надеясь, что другие трёхмерные программы на меня за это не будут в обиде… :-)):
Надеюсь, что основной принцип текстурирования трёхмерных моделей теперь стал более понятным. Теперь можно, так сказать, быстро пробежаться по настройкам Projection Master-а, посмотреть, что из себя представляет каждая из его функций. Будем по очереди включать галочки в его настройках.
7. Я нарисовал сферу заново, чтобы предыдущий текст не мешал просматривать возможности остальных параметров. Итак, повторим то, что много раз проделывали при разукрашивании сферы, проставляя галочки, нажмите Projection Master и поставьте галочку на параметре Shaded (затенение):
Теперь нарисуйте что-нибудь, не важно, что именно, при этом включив сверху параметр Zadd или Zsub.
Если кисть выйдет за края модели, не переживайте, при проектировании на модель, лишние каракули исчезнут.
Вот то, что я для примера нарисовал:
Теперь снова жмём на Projection Master и оставляя всё неизменным, нажимаем Now и смотрим на результат:
Как вы заметили, все затенённые участки модели, стали текстурой. При этом модель остаётся гладкой, т.е. без деформации.
8. Давайте поэкспериментируем с материалом:
Опять-таки жмём Projection Master и ставим галочку Material, при этом уберём Shaded, чтобы модель не затенялась, и нажимаем Now:
Перед тем, как рисовать материалом, выберите стандартную кисть (Simple Brush), иначе эффект рисования материалом не заработает.
Рисуя материалом, можно также выбирать цвета, включать Zadd и Zsub, регулировать параметры кисти, накладывать альфа каналы и т.д.
Можно начинать рисовать материалом. Единственный, на мой взгляд, минус, заключается в том, что края между разными материалами, никак не сглаживаются.
Когда закончили рисовать, то повторяем всю операцию заново, т.е. нажимаем Projection Master, а затем ничего не меняя – Now и вот, что у меня в итоге получилось:
Если прежде чем нажать на кнопку Now, поставить галочку на Double Sided, то ваша нарисованная текстура зеркально отобразится на обратной стороне объекта:
9. Ну а теперь, пришло время самого, на мой взгляд, интересного, нанесения деформации на объект путём текстурирования.
Уровень точности и качества деформации, напрямую зависит от уровня полигональности объекта, т.е. чем выше количество полигонов, тем лучше качество деформации. Прежде чем увеличить количество полигонов модели, надо перевести модель в Mesh, за это отвечает кнопочка Make PolyMesh3D в самом верху меню Tool:
Затем в панели Tool надо выбрать вкладку Geometry и несколько раз нажать на Devide (можно и один раз), увидите, как модель становится плавной, но имейте в виду, что количество полигонов объекта (соответственно и количество нажатий на Devide), также напрямую зависит от мощности компьютера. Впрочем, когда уровень полигонов достигнет предела, появится окошечко с уведомлением. В любой момент можно вернуться к самому первому уровню.
Как видите, у меня уровень SDiv дошёл до 4-х и дальше уже не идёт. Но сейчас это не главное, а модель уже получилась вполне сглаженная:
Теперь повторяем то же самое, что проделывали раньше, только ставим в параметрах Projection Master-а галочку Deformation (все остальные, кроме Color, можно отключить, а галочку Normalized оставляем как есть):
Рисуем на модели всякие изображения применяя разные инструменты, эффекты, цвета и альфа каналы, режимы Zadd и Zsub, должны быть включены, для регулирования выдавливания и вдавливания. В итоге рисования, должно получиться, что-то на подобии этого:
Ну а теперь, пришло время наложить деформацию на модель. Опять жмём Projection Master и ничего не меняя нажимаем Now. Всё, деформированная модель, готова:
Чем хорош этот способ? А тем, что можно добавлять очень мелки детали не затормаживая сцену, возможность выбирать множество инструментов, которые недоступны при прямом трёхмерном моделировании деформаций объекта.
10. Из полученной высокополигональной модели, можно получить Normal Map (карту нормалей). Всё, что касается Normal Mapping-а и Displacement Mapping-а, можно прочитать вот в этой статье, на русском языке: http://www.ixbt.com/video2/terms2k5.shtml
Прежде чем сгенерировать карту нормалей, надо вернуться во вкладку Geometry и поставить SDiv ползунок на самый первый уровень детализации, иначе карта нормалей попросту не сгенерируется:
В принципе, для генерирования карты нормалей, существует специальный плагин ZMapper, но сегодня я не буду сильно усложнять урок, поэтому воспользуемся стандартным модификатором NormalMap, который находится в панели Tool:
Открываем вкладку и выбираем нужные параметры, в том числе и размер. Я оставил всё по умолчанию:
Затем нажимаем Create NormalMap и ждём, когда сгенерируется карта нормалей. А вот и полученный результат:
11. Displacement Map генерируется практически точно также, с разницей лишь в том, что сохраняет свою карту не в параметре Texture, а в параметре Alpha.
12. Ну и наконец, осталось только сохранить нужную текстуру или карту нормалей, для этого щёлкаем на Texture, выбираем нужную нам текстуру и нажимаем Export:
Вам будет предложено сохранить текстуру в одном из этих форматов: PSD, TIFF, BMP.
Вот вроде бы и всё на сегодня. Конечно, обо всём и сразу рассказать просто невозможно, но основной принцип текстурирования в ZBrush-е, я как мог, попытался раскрыть в этом уроке.