Рисование текстур: Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 5. Система материалов

Содержание

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 5. Система материалов

Новая, масштабная и с практикой версия этой части доступна Здесь.

В предыдущих частях туторов мы рассматривали то, как создаются текстуры. Точнее, то, как всё выглядит под капотом (как выразился Yoooriii в комментариях к 4-ой части). Расставили на свои места термины — пиксели и тексели. Разобрали немного развертку и сетку моделей, PBR и материалы. И, наконец, подвели черту под профессией «художник по текстурам». Казалось бы, можно остановиться и начать уже работу.

Часть 1. Пиксель здесь.
Часть 2. Маски и текстуры здесь.
Часть 3. PBR и Материалы здесь.
Часть 4. Модели, нормали и развертка здесь.
Часть 5. Система материалов — вы ее читаете.

Вводный блок


В этой части у нас не будет практики, так как 5ая часть получилась достаточно большого объема. Всю информацию о том, как можно создавать материалы и настраивать их в Unreal Engine 4 можно найти в туторах Flakky и многих других. Наша задача сейчас разобрать теорию максимально подробно (И если какой-то информации будет недоставать, пожалуйста, сообщите мне об этом).

В 2017-ом году на Unreal Dev Day Montreal выступил технический художник Harrison Moore. Он рассказывал о том, какой подход для текстурирования он и его команда применяли для того, чтобы в игре Paragon были очень красивые материалы. Ниже приведена ссылка на его лекцию.


Дело в том, что мы работали над VR проектом, где качество текстур имеет огромное значение. Например, создавая текстуры для крупных объектов (стены, пол, большие шкафы, коробки и прочее), мы наталкивались на то, что стандартный метод давал очень пикселизованные текстуры, а фаски, которые создавались при помощи жестких граней и карты нормалей (мы это разбирали в 4 части) при приближении объектов близко к глазам, смотрелись настолько пиксельно и убого, что нам приходилось увеличивать размер текстур, чтобы это исправить.
В конечном счете, чтобы добиться хотя бы приближенного к желаемому результата, мы стали клепать 8к текстуры. Получалось, что на основные большие объекты создавать текстуры 8к очень накладно, но визуально это было удовлетворительно (максимум).

По началу все шло гладко. Текстуры клепались, качество нормальное, но собрав сцену из объектов с такими текстурами, мы поняли, что это не работает. Объем текстур был очень большим — для того, чтобы наш проект заработал у конечного пользователя, требовалось, чтобы видеокарта имела объем оперативной памяти не менее 3 гигабайт. Да и размер одной такой текстуры составлял 67 млн текселей. Даже не смотря на то, что это уже полностью просчитанные и запеченные текстуры, требовались не малые вычислительные способности видеокарты, чтобы прогнать все тексели и отобразить их на экране. А мы же понимаем, что для полноценной реализации PBR нам требуется не 1 текстура (и не 1 канал), а минимум 9 каналов.

В итоге, у нас получались сцены, в которых объем текстур имел огромные размеры, требовал дичайших расчетов и проваливал FPS с нужных нам 90 кадров до 45. Стало понятно, почему почти во всех играх используются только текстуры BaseColor, а другие практически не подключают. Например, игра Torn для VR:

Большая часть (я бы сказал, 90%) объектов сделана просто — материал состоял исключительно из BaseColor. Ни карт нормалей, ни металлика ни шероховатости. К сожалению, скриншоты игры, доступные в сети, не позволяют показать минус данного подхода, и наоборот, очень часто скриншоты показывают, что там есть все карты, и картинка очень красивая. Но не будем об этой игре.

По началу я проигнорировал лекцию, видео которой я вставил выше. Точнее, просмотрел и подумал, что вроде бы неплохой подход, однако менять pipeline создания объектов и текстур в нашей команде мы не стали, так как для этого потребуется достаточно большой кусок времени, чтобы освоить, чтобы внедрить, чтобы наработать навыки. И всё же, столкнувшись с проблемой качества материала, я решил пересмотреть подход к текстурированию.
Мы начали разбирать, что же такое предлагал Harrison Moore.

Предпосылки к становлению понятия «художник поверхностей»


И так. Ребята из Epic Games разработали интересный подход для текстурирования (Точнее, рассказали о нем). Они взяли подход к созданию текстур в Substance Painter (или любой другой программе по текстурированию) и перенесли само запекание текстур из программы в движок напрямую (если быть точнее, то этот процесс можно назвать процедурной генерацией материалов). То есть, теперь расчеты для запекания текстур уже проводятся в самом движке, а текстуры не создаются, а компилируются заранее. Результат компиляции (шейдер) хранится в формате, который понимает движок, и, когда отображается модель с этим шейдером, то результат накладывается на модель.

Как это работает?

В движок загружают текстуры какой-либо фактуры (материала) размерами по 1к. То есть, стандартный набор — Base Color, ORM, Normal Map. Таких фактур загружают 10-20 штук. Например, 4 разновидности металла, 5 разновидностей кожи, несколько вариантов пластика, дерево и так далее. Все это объединяют в шейдерные функции, чтобы потом можно было легко подключать их. 1 фактура = 1 функция.

После этого создают маски для нужного нам объекта. Вот здесь Substance Painter снова становится необходим — с помощью него создаются маски на объект. То есть, нужно указать, в каких местах объекта какие фактуры должны отображаться, чтобы потом отрисовывать нужную фактуру в нужном месте на объекте:

Выше на скриншоте видно, как летающий робот покрашен в яркие цвета. Коротко — это сделано специально, чтобы видеть, какие где какие маски располагаются. Второй скриншот показывает одну из масок.

Эти маски выгружаются в движок. Так же создают карту нормалей для каждого объекта отдельно, чтобы сгладить фаски, отобразить какие-то мелкие технические элементы с помощью нее и так же загружают в движок.

Далее создается новый шейдер (материал), в который добавляются созданные маски. Добавляются нужные шейдерные функции с нужными фактурами (например, ржавый металл, пластик и свежий металл) и далее прописывается код (практически ничего писать не нужно, все таки Epic Games все сделали все возможное, чтобы нам было удобно работать), в котором мы указываем, как смешивать правильно маски, какие фактуры отображать под какими масками, как отображать фактуру грязи и прочее-прочее.

После того, как все собрано, компилируется шейдер и выводится результат.

Ну, казалось бы, чего такого — ведь то же самое можно сделать в Painter и получить уже готовый результат. Однако это не так. И всему виной тайлинг.

Немного о тайлинге


Тайлинг (Tiling) (дословно — плиточный, плитка) — Это повторение текстуры, как будто плитки, если она меньше размером, чем зона для текстурирования (UV). Это необходимо для того, чтобы заполнить пробелы, которые образуются в UV-пространстве, если текстура меньше размером. Видеокарта просто начинает ее дублировать столько раз, сколько нужно, чтобы закрыть брешь. Тайлинг работает интересным способом — видеокарта рассчитывает каждый тексель текстуры (например, размером 1к). И когда дело доходит до той части, которая продублирована — никаких расчетов уже не производится, так как они уже есть. Видеокарта просто копирует и вставляет данные. Копи-паст. И это практически ничего не стоит для производительности. Это настолько не требовательно к ресурсам, что не влияет ни на что, даже если вы сделаете тайлинг 10000*10000 повторений, (а это с нашим примером порядка 10 миллиардов текселей повторить, на минуточку о цифрах), ваш проект ни на секунду ни затормозит.
Продолжаем

То есть, мы можем взять теперь фактуру. Показать в нужном месте на объекте и зайтайлить (продублировать) ее ровно столько, сколько нужно для достижения нужного качества. За счет тайлинга размер текселей очень сильно уменьшается, что увеличивает качество самой фактуры.
Минусом такого подхода является математика — теперь, чтобы отобразить текстуры на объекте, шейдеру необходимо просчитать различные операции по многу раз, чтобы отобразить конечный результат, и вместо стандартных 3-х текстур движку необходимо учитывать маски, смешивание нормалей, цветов и так далее.

На самом деле проигрыш в расчетах нивелируется:

  1. Вы можете и будете использовать фактурные функции повторно. Раз за разом на других объектах. То есть, расчеты будут суммарно те же, но количество самих текстурных карт будет меньше в разы. Вам уже не нужно для каждого объекта создавать новые текстуры, только определить зоны для фактур и использовать одни и те же фактуры.
  2. Вы можете создавать меньше размером маски — например, 128 на 128 пикселей. Что уменьшает расчеты в сотни раз.
  3. Вы можете тайлить текстуры сколько вам будет угодно, добиваясь результата, которого не получится добиться стандартным методом текстурирования.
  4. Добавляя другие расчеты и маски, вы можете играть с отдельными каналами, например, сделать тайлинг канала шероховатости меньше, чем карты цвета, тем самым нарушив визуальное повторение рисунка и создав ощущение уникальности всей поверхности.
  5. Вы можете накладывать текстурные функции таким образом, чтобы они смещались относительно координат объекта в мировом пространстве — таким образом можно поставить 2 одинаковых объекта с одинаковыми шейдерами, но они оба будут выглядеть уникально.

Стоит понимать, что этот подход не ко всем платформам. Например, мобильные игры уже сложно собирать таким образом из-за сложности в расчетах.

Самый простой пример минусов стандартного подхода к текстурированию и новой Системы Слоев Материалов (Material Layer System — так назвали данный подход ребята из Epic Games) — игра Final Fantasy 15. Для того, чтобы улучшить качество картинки, они выпустили пак с 4к текстурами. А что такое — 4к текстуры? Это 16 млн просчетов текселя на 1 канал. А если их 9 для стандарта PBR?

И вот тут мощь Системы Слоев Материалов начинает проступать максимально. Чтобы собрать с помощью фактур одежду на персонаже — достаточно использовать 3-4 фактуры (может больше). В сумме это будет меньше, чем стандартные текстуры высокого разрешения, производительность примерно на одном уровне, а качество можно контролировать с помощью тайлинга и выставлять намного выше.

Material Layer System


Ребята из Epic Games пошли дальше и представили бета-версию «Системы Слоев Материалов» (Material Layer System), которая не создала шумихи и оказалась достаточно забагованной.
Пример ее работы можно посмотреть на этом видео:


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

В итоге, мы начали пробовать и экспериментировать.
Как мы избавились от карт нормалей

Сначала работа с фактурами шла не совсем гладко — нужного эффекта с текстурами мы достигали, но все еще нас сильно тормозила карта нормалей, так как ее необходимо было генерировать для каждого объекта, чтобы создавать ощущение красивых фасок. Не смотря на качество фактур, создаваемых нами, при приближении к объекту камеры фаски оставляли желать лучшего даже при 8к текстурах (напомню, что мы разрабатывали проект под VR). Но 8к текстуры — это очень большой объем текселей. Настолько большой, что 2 полных комплекта текстур просаживали FPS до 45 кадров (для VR надо 90).

Тогда мы ознакомились с методом создания фасок, о котором я рассказывал кратко в 4-ой части. Создание фасок на моделях объектов позволило практически полностью избавиться от карт нормалей. Да, у нас увеличился полигонаж моделей, но не более 20-40%, при этом качество фасок взлетело до небес.

Такой подход позволил нам избавиться и от другой проблемы — швов на гранях. Создавая на модели фаски, более не требовалось резать модель по жестким граням. Жестких граней в принципе более не было на моделях, поэтому острова стали большими, они стали включать в себя большие пространства, и теперь, когда мы накладываем фактуры на модели — на моделях практически нет швов.

Это не значит, что теперь на всех объектах у нас нет отдельной карты нормалей. Просто большинство из стандартных объектов может обойтись одними фасками в моделях без дополнительной карты нормалей.

В конечном счете, постепенно уменьшая маски, увеличивая и усложняя шейдеры мы начали создавать сложные материалы, которые позволяют нам текстурировать очень красивые поверхности:

Выше пол состоит из 2х фактур — железные полоски — 32х32 пикселя и гексагоны — 32х32 пикселя. У материала очень сложная формула — очень большое количество операций для расчетов — порядка 295 инструкций. Для обычного материала такой шейдер потребовал бы большие вычислительные мощности, но мы используем всего 32х32 = 1024 текселя на канал. 9 каналов = 10к текселей, которые необходимо учесть при расчетах данного материала + маска 128х128. Очень большое количество операций нивелируется маленьким количеством текселей для обработки. В итоге, у нас получилась красивая картинка очень быстрым и легким шейдером.
За счет масок, грамотного управления тайлингом и каналами можно создавать очень сложные шейдеры, которые будут генерировать красивые материалы и при этом практически не кушать ресурсов.

Для примера — на текущий момент мы используем около 10-15 фактур на весь проект (плюс несколько уникальных полностью затекстуренных объектов по стандартному методу). Один и тот же металл есть практически на каждом объекте. Он видоизменяется в шейдерах — мы добавляем к материалу разные цвета, мы сдвигаем карты шероховатости фактур, накладываем по маске царапины, а их смещением управляют координаты объекта (если речь идет о статических объектах), что приводит к уникальным объектам со своими сколами, трещинами, грязью.
При увеличении разрешения экрана нам достаточно просто отрегулировать тайлинг, чтобы кол-во текселей совпадало с кол-вом пикселей экрана. При стандартном методе текстурирования придется перелопачивать все текстуры, поднимать старые проекты в Painter и пересохранять их. А еще нужно убедиться, что текстура не поедет. А потом это все необходимо будет реимпортировать в движок и убедиться, что там все будет нормально, что шейдеры будут достаточно быстро просчитывать текстуры большего объема, чем прежде.

Мыслить фактурами

Когда я общался с 3D-художниками на тему фактур, мне не раз говорили, что большинство объектов невозможно собрать с помощью фактур, что для этого требуется отдельная текстура с уникальными рисунками и прочим составляющим. Например, вот эта беседка:

Сложность представления этого объекта в фактурном плане состоит в том, что у него есть уникальные моменты:

Паттерн ремня сверху ткани можно сделать отдельной фактурой и просто наложить поверх фактуры ткани. Или вшить ремень в фактуру ткани, и тогда у нас получится уникальная фактура ткани с ремнем:

При использовании такой фактуры пришивка ремней к ткани будет постоянно на одном и том же участке повторяться, но это не будет бросаться в глаза.

Мокрые пятна делаются маской и накладывается грязь или что-то еще. И это уже выглядит уникально.

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

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

Складки на рулоне ткани можно реализовать с помощью геометрии или наложить маски с затенениями. В текущем поколении железа добавление небольшого кол-ва вертексов не вызовет никакой нагрузки, а лодами всегда можно будет спрятать их при отдалении.

Деревянные объекты можно сделать фаской, и тем самым, убрать полностью из расчетов карту нормалей. И так далее. Самое главное здесь то, что всё это очень быстро поддается корректировке без сторонних программ и трат времени.

И самое важное, все эти фактуры можно использовать в любом другом шейдере, подкорректировав цвета и пятна.

Исключения

Большая часть, я бы сказал, 95% всех объектов в игре покрываются этим методом. В целом, даже хендпейнтинг попадает под фактуры и может быть реализован через него. Однако не все объекты на данном технологическом этапе можно реализовать. Например, сложные персонажи, у которых есть особые элементы. И даже их, если хорошенько подумать, можно покрыть фактурами — важно их своевременно увидеть, обрезать и затайлить.

Мне предложили продемонстрировать диван (картинка ниже), как элемент, который нельзя затекстурить фактурно.

Однако, если внимательно присмотреться, то у дивана есть 3 фактуры (кожа сверху, обивка, дерево для ножек) и 2 сложности — это складки и швы.Складки можно имитировать 2-мя способами:

  1. Дополнительные вертексы.
  2. Дополнительная небольшая карта нормалей, которая будет эмитировать волны складок (более привлекательный метод).

Тоже касается и швов — их можно выделить маской и просветить фактуру для швов или, опять же, дополнительной картой нормали.

Все обрывы, все переходы можно имитировать фактурами и масками, создавая тот же результат, но с меньшим кол-вом текстур (нам достаточно использовать фактуры стандартной для нашего проекта ткани и просто изменять ее цвет в шейдере напрямую).

Тут можно задать вопрос — а что делать с выцветаниями вокруг подушек? Маски решают такие проблемы на ура =)

Далее мы можем использовать эти же фактуры для кресел. Для других диванов, для стульев с такой же тканью на сидушке. И все это мы можем многообразить, перемножив цвета фактур на нужные нам. И нам не потребуется более с нуля создавать текстуры — достаточно собрать маски и правильно наложить слои фактур. Таким образом, мы уменьшим объем загружаемых текстур, но сохраним качество и даже поднимем его. Однако, стоит отметить, что это наш пайплайн, и сбор материалов может отличаться от студии к студии, платформ и в целом проектов.

Художник по поверхностям

И вот мы плавно подошли к художнику по поверхностям. Основная задача художника по поверхностям научиться видеть, что можно делать фактурами, что вертексами, а что — стандартным методом текстурирования. Понимать, какие маски использовать и где, чтобы добиваться нужного результата.

Так же нужно понимать, что не все можно сделать масками — бывает так, что некоторые объекты должны иметь карту нормалей с хай-поли модели, чтобы передать все тонкости изгибов поверхностей. Например, сложные изгибы тканей одежды на персонаже, или тонкости деталей на оружии. Саму ткань, опять же, уже текстурировать с помощью фактур и масок.

Распознавание фактур, как мне кажется, достаточно сложная задача, потому что наш мозг нацелен на уникальные текстуры, так как просто привык с ними работать. Тем более, что это стандарт игровой индустрии, который является основой всего. А ведь, когда-то стандартом была простая текстура цвета без дополнительных параметров.

Важно научиться пользоваться Substance Designer — это та программа, которая позволит вам создавать собственные маски и фактуры очень высокого качества.
А еще ребята из Epic Games выложили замечательную статью «Jobs in Unreal Engine — Surface Artist», где рассматриваются требования к тому, чтобы стать полноценным художником по поверхностям. Очень рекомендую ознакомиться с ними, чтобы понимать, куда расти и к чему стремиться.

Вместо заключения:

Мое имя Денис Кузнецов, и я представляю компанию Qbercat Studio, мы так же разрабатываем игру «Cat Movies» (на данный момент об игре информацию мы не выкладываем, однако у нас есть группа в контакте, в которой мы планируем выпускать дневники разработчиков и промо-материалы. Поэтому не удивляйтесь, что группа пуста) и практически все наши материалы созданы исключительно фактурным методом. В нашей студии три 3D-художника и 1 художник по поверхностям. На 1-го художника по поверхностям в среднем хватает 3-5 3D-художников. Все зависит от сложности шейдеров, конечного результата, платформы и самого проекта.

Отдельное спасибо Snake из discord-чата «Unreal Engine — RuCommunity», с которым мы в жаркой полемике рождали выводы.
Спасибо Flakky за то, что внес правки по тексту.

Помните, если вы видите в статье какие-то неточности или неверную информацию — я всегда буду рад вашим замечаниям. Эти туторы созданы не для рекламы, а для того, чтобы все желающие могли максимально быстро включиться в работу, поняв саму суть текстурирования и его видов.

Спасибо вам за внимание =)

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 2. Маски и текстуры

Маски и текстуры


Продолжаем серию уроков о том, как стать художником по поверхностям.

Часть 1. Пиксель здесь.
Часть 2. Маски и текстуры — вы ее читаете.
Часть 3. PBR и материалы здесь.
Часть 4. Модели, нормали и развертка здесь.
Часть 5. Система материалов здесь.

Маски


В прошлой части мы рассмотрели принципы работы каналов и нашу первую маску, которую я создал — маску прозрачности.

Маска прозрачности в примере с котиком была создана с помощью отдельного канала под названием Альфа-канал. Этот канал так же имел размерность 8 бит на пиксель.

Каждый пиксель маски может иметь значение от 0 до 255 (или до 1), где 0 — это полностью прозрачный пиксель, а 255 (или 1) — полностью НЕ прозрачный пиксель.

Теперь, если посмотреть на Альфа-канал, как на обычный канал, то станет понятно, что он ничем не отличается от любого другого канала RGB. По факту — это все те же пиксели, у которых есть такая же интенсивность от 0 до 255 (до 1). Это все тот же градиент серого. И если бы мы взяли любой другой канал, скопировали бы его и вставили в Альфа-канал, то получили бы интересный эффект:

Маска накладывается на все изображение, но там, где интенсивность пикселей максимально яркая (близкая к 1 или 255), там цвет маски наименьший, а где интенсивность максимально низкая (ближе к 0), то там маска наоборот очень ярко отображается:

И теперь, если такое изображение экспортировать и открыть в любой программе для просмотра изображений, то получится такая картинка:

Большая часть пикселей имеет полу-прозрачность согласно интенсивности, указанной в альфа-канале. Но если маска прозрачности такая же, как и другие каналы, тогда следует вопрос — обязательно ли ее использовать в Альфа-канале?

На самом деле, не обязательно. Альфа-канал необходим, чтобы изображение могло сохранять данные о цвете и иметь при этом данные о прозрачности. То есть, получается, что в изображении 1 пиксель имеет обязательных 3 канала, а 4-ый канал является дополнительным и не обязательным.

Итого, в нашем изображении не 32 бита цвета, а всего 24 бита цвета (8 бит * 3 канала) + 8 бит прозрачности. Причем, мы можем не включать канал прозрачности в изображение, и тогда размер файла будет на 1/4 меньше.

Что такое Маска?


Маска в текстурировании (да, наверное, и не только) Это изображение, которое состоит из 1-го канала и необходимо для регулирования других каналов и визуализации параметров фактур (Это уже PBR, и мы с ним обязательно столкнемся чуть позже).

То есть, маска используется для решения 2-х задач:

  • Определение степени прозрачности.
  • Определение интенсивности чего-либо в пикселе (об этом позже, но обязательно).

На самом деле, делить на две задачи работу масок не обязательно — и там и там используется степень интенсивности, просто в первом случае для прозрачности, а во втором случае для целей регулирования внешнего вида текстуры.

Сейчас мы рассмотрим наглядно принцип работы масок в Substance Painter и попробуем напялить шапку моему коту.

Для этого мы создадим новый проект, укажем и добавим наши фотографии шляпки и кота в программу. (Заметка: Substance Painter не позволит создать проект без 3D-модели, поэтому я создал квадратный plane в Autodesk Maya. Создание моделей находится за рамками наших туторов, поэтому эту информацию вам нужно найти самостоятельно. Так же мы не будем рассматривать детально интерфейс Substance Painter, чтобы не затягивать туторы по максимуму, однако вы работаете с Substance Painter впервые, то, если ничего лишнего не нажимать, все окна должны отображаться корректно, и найти нужные параметры будет не сложно).

Далее нам необходимо создать 2 слоя заливки:

Слой заливки в Substance Painter — это огромный набор параметров того, как должна выглядеть фактура. Здесь можно настроить визуально представление металла, пластика и любых других фактур. Однако об этом мы поговорим позже, а сейчас у нас должно сформироваться четкое представление, что слой заливки — это изображение (Color), состоящее из 3 каналов и куча дополнительных каналов по 8 бит, которые отвечают за то, как должен этот слой заливки выглядеть.

То есть, слой заливки имеет более сложную комбинацию, чем обычное изображение. В данном случае слой заливки состоит из:

  • 3 основных канала, которые выделяются для построения цвета. Эти три канала объединены в один параметр «BaseColor».
  • 3 дополнительных канала, каждый из которых отвечает за какие-то визуальные эффекты (например, канал Metal отвечает за то, насколько пиксель будет считаться металлом с точки зрения PBR-текстурирования).
  • 3 канала для работы с картой нормалей (Normal map).

Нас сейчас не интересуют дополнительные каналы, так как мы еще не познакомились с PBR-текстурированием, и мы обязательно вернемся к ним позже, а сейчас наша задача научиться с помощью масок контролировать то, какие слои в нужных нам пикселях будут доминировать (в случае полу-прозрачной маски), какие слои будут полностью скрыты, а какие слои будут отображаться в единственном своем роде.

Мы сейчас разберем это на котике и шляпе, а потом перейдем к более простым монотонным цветам и более глубоко разберем сложно-комбинированное применение масок для контролирования слоев.

Наша задача сейчас отключить все те каналы в этом слое, которые нас не интересуют в данный момент. Отключить нужно каналы Height, Rough, Metal, Nrm (Normal) и оставить только цвет (color):

Теперь нам необходимо распределить наши картинки в слои и настроить их корректное отображение. Для этого выбираем слой, находим картинку, импортированию в папку Project (в панели Shelf) и перетаскиваем картинку в параметр Base Color.

Повторяем это действие со вторым слоем и шляпой.

Важно. Слой со шляпой должен находиться выше по иерархии, чем котик, так как мы хотим, чтобы шляпа была НА коте, а не ПОД ним. Помните, что контролировать видимость слоев можно с помощью кнопки в виде глаза слева от слоя.

Так как проект рассчитан на текстуры, а текстуры полагается делать квадратными ( желательно, чтобы размер был всегда кратен 2м. То есть, размер 64*64 пикселя — это 2*2*2*2*2 ), то изображение котика будет слегка растянутым вширь, так как фотография его является прямоугольной по вертикали, и Substance Painter ее растянул до квадратной формы.
В связи с этим нам необходимо изменить масштаб картинки и растянуть фотографию на слое вертикально. Для этого мы снимаем блокировку сохранения соотношений и вытягиваем картинку, установив вертикальный scale на 0.7.

Теперь нужно подогнать таким же образом размер шляпы, однако теперь отключать сохранение отношений уже не нужно. Так как шляпа у меня очень большая получилась, то при изменении масштаба начинает работать такой эффект, как тайлинг — текстура начинает повторяться по горизонтали и по вертикали, таким образом система не позволяет оставлять пустые места, если изображение меньше, чем размер конечного изображения (в нашем случае, меньше, чем 1024х1024 пикселей).

Небольшое отступление: Зачем нужен тайлинг?

Тайлинг необходим, когда нам требуется заполнить какие-то повторяющиеся элементы текстур. Например, сетка или какой-то узор ткани. Ниже представленное изображение имеет специально выстроенную структуру картинки таким образом, что если мы присоединим копию этой картинки сверху, снизу или с любой стороны, то она будет все еще смотреться, как цельная и более широкая (конкретно в нижнем примере уже картинка состоит из 16 повторяющихся картинок):

Эти повторения называются паттернами (или проще говоря — бесшовными текстурами) и они созданы для того, чтобы можно было эти паттерны повторять раз за разом хоть миллион раз. Это повторение в дальнейшем мы будем использовать для улучшения качества картинки, но использовать это мы будем в основном при создании шейдеров, так что вернемся мы к тайлингу и паттернам не скоро.

И так, продолжаем

Мы сделали скейл шляпы до нужного нам размера. Теперь нам необходимо поместить шляпу плюс-минус над головой кота — для этого начинаем крутить параметры Offset (смещение), сдвигая нужную нам шляпу на котика.

У нас получилась примерно следующая картинка:

Ну а теперь настало время использовать маски для того, чтобы отредактировать видимость слоя со шляпами. Маски в Substance Painter можно создать 2 способами:

  • Создать маску на самом слое, ограничивая его видимость.
  • Создать папку, в которую можно поместить слой. И наложить маску на папку.

Второй вариант позволяет создавать больше комбинаций масок, но сейчас нас интересует принцип работы самой маски, а не сложность комбинаций, поэтому мы создадим маску на слое и сразу сделаем ее черной. Для этого мы кликаем по слою ПКМ и выбираем «Add Black Mask».

А что происходит с пикселем, когда канал маски прозрачности пикселя на нем равен 0 (полностью черный)? Правильно, пиксель становится полностью прозрачным и не отображается совсем:

Как вы обратили внимание — теперь слой состоит из двух изображений: одно изображение — это шляпы, а второе изображение — это полностью черная маска. Маска в Substance Painter (как и везде, в принципе) создана из одного канала размером в 8 бит. И сейчас, управляя интенсивностью, мы можем рисовать по маске оттенками серого цвета, «проявляя» верхний слой. Чем выше интенсивность закраски пикселей, тем ярче будет слой пикселей со шляпами вплоть до полного отображения пикселей.

Теперь наша задача сделать видимым нужную нам шляпу, а для этого нам необходимо указать на маске, какая зона слоя заливки шляп будет отображаться. Для этого выделяем слой с маской, и выделяем саму маску (это важно, так как редактировать слой заливки нельзя, можно редактировать только маску). При выделении маски нам открываются настройки кисти, которой мы будем рисовать по маске, и в самом низу настроек есть настройка интенсивности (Grayscale) от 0 до 1 (от 0 до 255 соответственно).

Теперь, рисуя по маске над головой котика мы проявим шляпу:

Ну, и убираем лишнее с помощью кисти с 0 интенсивностью:

Сама маска выглядит так:

Таким образом маска позволила нам определить какой участок в слое со шляпами отображать.
Хорошо, это применимо к редактированию котиков. А как это применять к текстурам в играх?

Сложные комбинации масок.


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

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

Соответственно, мы уже умеем создавать слои заливки с текстурами и сейчас наша задача:

  • Создать новый проект с теми же настройками, что были в предыдущем (мы будем считать их стандартными).
  • Создать 2 слоя — один для плитки, другой для грязи. Так как грязь должна быть сверху плитки, то слой с грязью мы располагаем выше.

Но теперь мы не накладываем маску на слой с грязью, а создаем пустую папку для слоев и помещаем слой с грязью в эту папку (помним, что папка должна все еще быть выше по иерархии, чем плитка).

А маску создаем уже на папке.

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

Итак, у меня получилась примерно следующая картина:

Не шедевр, но зоны, в которых должна отображаться грязь, мы определили.

Теперь создадим еще одну папку в папке со слоем грязи и перенесем слой с грязью в эту папку. Итого, у на получилось, что слой с грязью находится в папке, которая находится в другой папке:

На новой папке так же создадим маску, Но на этот раз уже не сплошную заливку, а выберем что-нибудь из существующих различных масок. Например, вот это я нашел в интернете:

Оффтоп о загрузке изображения в Substance PainterЧтобы загрузить изображение и потом использовать его в качестве маски, необходимо перенести в shelf (в папку) из браузера и выбрать следующие параметры:

Возможно, можно указать другой формат, а не «текстура», и изображение все равно будет подключаться в качестве маски, но я этого не знаю (подсказывайте в комментариях).

Установить в качестве маски эту текстуру легко. Кликаем по папке так же ПКМ и выбираем Add Bitmap Mask. В появившемся окне находим нужную нам текстуру и выбираем ее в качестве маски. Иерархия с папками стала выглядеть так:

Отметим, что в маленьком окошке-превьюшке у верхней папки вместо полноценной грязи стала отображаться куча квадратиков с мало заметными проблесками грязи. Это результат того, как будет обрабатываться текущий слой грязи с учетом всех масок, которые мы добавили.
А в целом, у нас получилась примерно следующая картина:

В данном примере у нас произошло смешение масок. Первый уровень маски определял зоны, где 100% НЕ должна появляться грязь, а где ей можно появиться. Второй уровень маски определял, где 100% появится грязь, а где — нет. Те пиксели, в которых обе маски имели значения больше 0, начинали отображать грязь в зависимости от нижнего предела интенсивности (если у первой маски на пикселе интенсивность 0.5, а на второй 0.2, то пиксель будет прозрачным на уровне 0.2). Еще проще говоря, каждый пиксель учитывает все маски, которые влияют на его отображение. И если хоть одна маска равна 0, то пиксель отображаться не будет.

Итого:

Слои — это заливка на всю площадь проекта, которая имеет кучу каналов для контролирования состояния изображения.

Маска — это 1 канал пикселя изображения (текстуры), который необходим для обработки видимости чего-либо.

Количество каналов для 1-го пикселя может быть очень большое. При стандартных настройках Substance Painter учитывает уже в 1-ом слое 9 каналов — 3 на цвет, и 3 для различных эффектов, 3 на карты нормалей. Само изображение на картинке в вашем браузере содержит всего 3 канала + 1 дополнительный, если есть прозрачность.

Причем, слои могут друг на друга накладываться, и программа уже делает расчеты на 1 пиксель куда большие, чем для 9 каналов. То есть, в случае смешения 2 слоев в 1-ом пикселе, ПО необходимо просчитать 9 каналов одного слоя, потом учесть прозрачность, которая была указана в канале маски и просчитать общую интенсивность пикселя с учетом маски. После чего необходимо просчитать второй слой, и его 9 каналов. Потом наложить сверху полупрозрачный слой. Итого 18 каналов слоев и 1 канал смешения. Конечно, когда вы будете выгружать это в изображения (текстуры), то никаких 19 каналов не будет — Substance Painter создаст 3 изображения (текстуры):

  • Изображение (текстура) с цветом (3 канала на пиксель).
  • Изображение (текстура) с каналами для параметров PBR.
  • Изображение (текстура) для определения нормалей.

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

Текстура


Я намеренно писал в итогах о масках «Изображение (текстура)», чтобы у вас начало откладываться понимание того, что текстура по факту — это не изображение в привычном для нас понимании.

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

Текстура может содержать в себе 1 канал. Например, для прозрачности. Или может содержать в себе сразу 3 канала для различных целей (например, для параметров работы металлика, шороховатости и затенения).

Разновидностей применения текстур очень много, но все они сводятся к одному — к работе с 1-м или несколькими каналами.

Например, текстура Cavity (трещинки) обычно описывает грани (ребра) объекта на развертке, выделяя пиксели максимальном белым по всей длине ребер. Но по факту — это просто текстура, канал которой направлен на отображение интенсивности пикселей в нужных точках. Такую текстуру можно использовать, например, для масок грязи — то есть, по ней мы можем отображать грязь на объекте.

Применение масок за пределами программ для текстурирования.

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

Немного PBR-текстурировании


Исходя из того, как работает текстура и зачем она нужна, можно очень быстро объяснить, что такое PBR.

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

Для этого используются параметры, которые отвечают за то, как должен свет отображаться на пикселе.

Вот список этих параметров:

  • Metallic. Отвечает за представление пикселя в качестве металла. То, насколько легко свет отражается от пикселя.
  • Roughness. Отвечает за степень шороховатости пикселя. То, насколько сильно свет рассеивается, соприкасаясь с пикселем.
  • Ambient Occlusion (устаревшее). Отвечает за затенение пикселей. Тот параметр, который становится устаревшим и, в скором времени, им не будут пользоваться вообще.
  • Normal Map. Отвечает за то, как свет может искажаться на пикселе, создавая мнимую ненастоящую глубину или изгиб.
  • Albedo (Color) — цвет, которым должен отображаться пиксель.

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

Например, если программе воткнуть в канал металлика пиксель с единственным каналом, интенсивность которого будет равна 1 (255), то этот пиксель будет максимально отражать все вокруг, как чистый металл.

Настроив канал Roughness по максимуму (указав все пиксели, как 1 или 255), мы видим, что теперь пиксель перестал отражать все вокруг и стал рассеивать свет настолько сильно, что стал серым:

Очень важно понимать, что не существует отдельных текстур, специализирующихся на чем-то одном. Все текстуры — это каналы, у пикселей которых есть интенсивность или значения, указывая которые, вы сообщаете тому или иному параметру реагировать так или иначе.

Максимально подробно PBR мы разберем в следующей части урока. А так же рассмотрим дополнительные приемы смешивания масок для улучшения картинки.

Если я что-то написал неправильно или не понятно — очень прошу сообщить мне об этом, чтобы я мог скорректировать данный урок.

Всем спасибо за внимание =)

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 4. Модели, нормали и развертка

Модели, нормали и развертка


По моему скромному мнению, художник по текстурам должен отвечать за развертку. Не за саму развертку (ее стоит делать 3D-художникам или вообще отдельным UV-специалистам), а ее укладку. Он должен определять, как острова должны располагаться, как должны быть повернуты и насколько сильно их можно потянуть в той или иной ситуации в зависимости от требований.

Именно художник по текстурам (а в дальнейшем, по поверхностям) должен определять скейл (масштаб) островов (об этом чуть позже).

В этой части мы рассмотрим модели, развертку и нормали. Создадим текстуры для первой полноценной модели (хоть и простой) и настроим ее в Unreal Engine 4.

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

Часть 1. Пиксель здесь.
Часть 2. Маски и текстуры здесь.
Часть 3. PBR и Материалы здесь.
Часть 4. Модели, нормали и развертка — вы ее читаете.
Часть 5. Система материалов здесь.

Модели и PBR. Практика


Я не буду рассказывать, как создавать модели или как зачищать / выстраивать сетку. Эту информацию можно получить со множества курсов, которые есть как в свободном доступе, так и в платном. Наша задача сейчас разобрать конкретные ограничения в строениях моделей для игр и какие варианты решений существуют на данный момент.

Но для начала мы затекстурим модель, а за одно посмотрим на ней первое ограничение. Работать мы будем над этой лавкой:

Для этого нам необходимо будет скачать сам меш и заранее подготовленную карту нормалей к нему (ниже я объясню наглядно, зачем мы ее подготовили). Ссылка здесь.

Так же я бы хотел сделать ее основу деревянной, а ножки — металлическими. Ну и немого накидать грязи. Соответственно, нам понадобятся 2 материала:

  1. дерево
  2. обработанный металл.

Грязь мы не будем выносить в отдельный материал, а воспользуемся генератором в Substance Painter и создадим грязь внутри программы.

Начнем практику и создадим стандартный проект, укажем лавочку, текстуры и запустим его:

Обратите внимание, что в этот раз нам необходимо будет указать Normal Map Format — OpenGL. Я уже писал в прошлой части, что карты нормалей считываются по разному разными программами. И данная карта была сгенерирована под программы, которые используют OpenGL.

У нас были загружены 9 текстур + основной меш.

Сейчас не будем делать никаких слоев и папок, а давайте рассмотрим максимально близко лавочку. Особенно нас интересуют грани объекта:

Я выделил для примера одну грань лавочки. Сейчас она максимально идеальная. То есть, две стороны сошлись в одном ребре и создали идеальный угол. Сколько бы мы не приближали этот стык, он всегда будет идеально ровным. В реальности же идеальных углов не существует, и даже лезвие бритвы при должном увеличении будет скруглено. Именно поэтому ребра выглядят сейчас не кинематографично. Такие модели смотрятся очень слабо, и когда мы видим их в игре, то сразу ощущаем всю слабость визуальной картинки, даже если не замечаем эти углы у моделей напрямую.

Это первое ограничение модели

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

Даже просто глядя на набор параметров в виде этой карты можно ощутить, как карта нормалей будет сглаживать углы.

Теперь давайте укажем эту карту нормалей, как основную (то есть, она всегда будет подкладываться к результату, как самый нижний слой без маски). Для этого нам необходимо открыть настройки основных текстур объекта и указать в параметрах карт нормалей нашу текстуру:

И смотрим на результат:

Это первый самый известный и часто используемый метод борьбы с резкими гранями — запекать в карты нормалей фаски. То есть, модель все так же жесткая, но карта нормалей у ее граней начинает искажать свет, что создает иллюзию красивой мягкой фаски. В интернете можно найти кучу информации о том, как это делать. Для простых объектов, как эта скамейка, можно не делать хай-поли модели (и не запекать с нее соответственно), а сгенерировать карту нормалей с фасками в программах. Например, это умеет делать программа Modo. Наша скамейка имеет карту нормали, сгенерированную в Modo.

Но опустим тему запекания фасок и продолжим текстурирование скамейки.

Если нормали вогнутые

Если у вас фаски не стали такими же гладкими, как у меня, а появилась иллюзия впадин — значит, при создании проекта в Substance Painter вы забыли поменять формат отображения нормали с DirectX на OpenGL.


Теперь создадим 2 папки для слоев, создадим и перенесем в каждую по 1-му слою и в каждый слой вставим все текстурные карты. Не забывайте о нейминге, чтобы потом не путаться:

Сейчас иерархия слоев нам не важна, так как данные материалы (металл и дерево) между собой пересекаться не будут — у нас не будет ситуации, когда сквозь дерево начнет проступать металл и наоборот. Но маски нам все еще нужны будут, так теперь нам необходимо ограничить видимость слоев на разных островах, поэтому сейчас добавьте черные маски на обе папки:

И теперь укажем, какие острова разверток у нас должны быть белыми на масках, а какие — черными. Для этого выделим маску и переключимся в режим выделения островов:

Кликнем на модели по основной скамье (если вы выделили маску дерева) и получим следующий результат:

Как видно на скриншоте — маска обновилась, и теперь на ней огромная белая полоса, которая расположена на месте острова. Покрасим таким образом всю скамью вокруг:

Сам материал дерева оказался не самым удачным, но наша цель сейчас не максимально красиво все сделать, а разобраться в принципах работы.

Сделаем то же самое с маской для металла, отметив видимой зоны с островами ножек. Выделите маску металла и укажите нужные части объекта:

Так же нужно залезть в трудно доступные места на стыках и отметить там нужные нам острова как для дерева, так и для металла:

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

Это именно ограничение, преодолевать которое можно путем выравнивания островов и их растягивания. Сейчас остров, на котором нарисована стрелочка вниз, выглядит так (выделен оранжевым):

Для того, чтобы исправить проблему, необходимо, чтобы остров был выпрямлен в одну линию:

Тогда мы решим это ограничение, но у нас возникнет другое — потяжки:

Потяжки не страшны, если они не сильно заметны, или фактура на них не выдает их. Но с ними нужно быть осторожными, и иногда приходится мириться с тем, что могут возникать несостыковки материалов.

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

Потертости на лавочке

Как мы знаем, на всех гранях всех вещей рано или поздно начинает откалываться краска, или кусочки материала. Там появляется большое количество царапин и сколов:

Поэтому давайте создадим маску, которая позволит нам в дальнейшем под ней отображать такие же потертости, царапины и сколы.

Для этого необходимо открыть настройки основной текстуры (где мы указывали карту нормалей), там выбрать Bake Mesh Maps.

В появившемся окне убрать все лишние галочки, оставив только Curvature и запечь ее, нажав на Bake [доп.название] Mesh Maps:

Когда создание текстуры закончится — она станет доступна в shelf под тегом Project:

А так же эта текстура автоматически подключится в качестве основного параметра Curvature в настройках текстуры. Уберем ее оттуда:

Если создать новый слой вверху иерархии и установить в качестве параметра Base Color полученную текстуру, то мы увидим следующий результат:

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

Далее создадим папку, назовем ее Folder Dirt и поместим ее в папку с деревом НАД слоем с деревом. В этой папке создадим слой под названием LowLayer_Dirt, а на самой папке создадим черную маску, чтобы слой не накладывался на результат:

Укажем, что маска для грязи должна состоять из эффектов Fill, чтобы добавить текстуру, которую мы создали (curvature), и дополнительным эффектом «Levels».

Для чего нам нужен эффект «Levels» сейчас? Вы, наверное, обратили внимание, что маска для граней слишком светлая? Сейчас нам нужно будет обрезать цвета таким образом, чтобы оставить светло-белым места на гранях, а все остальное сделать абсолютно черным.

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

Таким образом мы создали «границу дозволенного» для грязи. Теперь надо ограничить саму грязь. Для этого нужно наложить черную маску на сам слой LowLayer_Dirt. После этого добавить эффект Fill, и в нем указать маску Dirt4, которая спрятана под тегом Procedurals:

Выше на скриншоте обведены дополнительные параметры маски Dirt 4. Дело в том, что это не текстура в том формате, в котором мы привыкли представлять ее. Это генератор случайных чисел по определенным правилам. Иначе говоря, процедурная текстура, пиксели в которой имеют сгенерированную интенсивность. Вы можете поиграться параметрами, например, покрутить Balance и Contrast, чтобы добиться желаемого результата.Теперь измените параметр Height в слое LowLayer_Dirt на -0.35 и посмотрите на результат:

Повторюсь. Сейчас наша цель не в качественной идеальной покраске лавочки, а работа с основами и тренировка работы с масками.

А сейчас домашнее задание

В целом, сейчас мы рассмотрели, как накладывать быстро маски для конкретных материалов, которые между собой не пересекаются. Как можно догадаться, чтобы нанести лак на дерево — нам нужно создать слой в папке с деревом. Но сейчас мы этого делать не будем, а сама задача остается для домашней работы:

  • залакируйте дерево
  • создайте царапины на лаке (те царапины, которые видны только под углом, потому что они продавливают лак, но не повреждают дерево)
  • создайте царапины под лаком

Кидайте в комменты ваши поделки — интересно же =)

Итого

Мы разобрали, как текстурировать модели с помощью масок. Как наносить грязь, сколы и царапины.

Чтобы в дальнейшем у вас было простое представление, как это все работает, запомните правило — один материал — одна папка для работы с ним. Так вы сможете лучше контролировать ваши маски и слои. Например, поместив слой грязи в папку с материалом вы все еще контролируете на уровне маски папки общую зону видимости этого материала, а теперь еще и грязи на нем (или слоя под ним). Например, в реальности под фактурой (материалом) может лежать другая фактура — под металлическим напылением может прятаться пластик. В данном случае, металл — это основной слой, а пластик — дополнительный слой под металлом (хотя в туторе выше мы слой со сколами и поместили выше дерева, по факту — это более низкий слой в иерархии. Иначе говоря, это ошибка).

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

В целом, на этом мы закрываем большую тему того, как можно текстурировать объекты для игр в рамках PBR. Всё остальное — техники. Моя задача рассказать суть, основу всего этого, чтобы у вас не было в дальнейшем вопросов по типу «А чем отличается карта Roughness от Metallic и Normal map?» (сразу отвечу — ничем), а появились вопросы — «А как это можно усовершенствовать? Как сделать лучше и эффективнее?»

Мы разобрали несколько ограничений, у которых существуют решения.

  • Ограничение с фасками.
  • Ограничение с расположением островов.

И то и другое ограничения так или иначе можно обойти. В первом случае мы создаем карту нормалей, которая имитирует изгиб, во втором случае мы тянем острова и жертвуем деталями (создаем потяжки) ради общей картины.

Во втором случае так же нужно помнить о направлениях островов — их нужно разворачивать согласовано, как и направление узора в материалах. Иначе возникнут сложности, описанные выше.

Развертка


Отложим на время в сторону Substance Painter. Не закрывайте проект, он нам пригодится позже, когда мы будем экспортировать текстуры в Unreal Engine 4.

В этом куске туторов мы рассмотрим развертку объектов, плотность островов и наконец-то изучим такое явление, как плотность текселя.
И начнем с текселя.

Тексель

Тексель — это текстурный пиксель (ба-дум-с).

Плотность текселя и островов

Чтобы не путать пиксель монитора (физический элемент реального мира, который всегда фиксированного размера) с пикселем текстуры (визуализированный квадратик, который может менять свои размеры на экране монитора и вообще искажаться в целом), текстурный пиксель стали называть текселем (Текстура и пиксель).

На эту тему есть достаточно полная статья здесь. И перевод здесь.

Однако, мы еще раз рассмотрим это явление, потому что в дальнейшем, если мы не осознаем всю идею текселей, то нам будет сложно работать дальше. И уж тем более будет сложно стать художником по поверхностям.

С этого момента, мы начинаем говорить правильно — пиксель и тексель. Пиксель — мониторный элемент. Тексель — текстурный элемент.

Так вот, повторим пройденное, тексель — это мнимая единица отображения информации. Она существует только в цифрах (массив цифр из различных каналов), но, чтобы нам было проще работать с параметрами рендера, были введены текстуры, как визуальный заменитель массивов цифр. Думаю, никому не было бы приятно разрисовывать космический корабль одними только цифрами, держа в голове представление, что тексель в 8 ряду и в 453 столбце должен быть на 1 значение меньше, чем тексель в 284 ряду и в 112 столбце. Проще тыкать кисточкой в Photoshop’е.
Рендеры (системы визуализации) считывают эти цифры и отображают их в качестве квадратиков (текселей). Отображение текселя в виде квадратика — дело условное. И зависит оно в частности от плотности и натяжения островов развертки модели.

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

Представим себе кусок ткани (если представить сложно — возьмите любой кусок ткани, которую можно растянуть). В спокойном состоянии рисунок (или паттерн материала) на ней остается неизменным, как и задумывал производитель. Но если мы начнем растягивать ткань, то и рисунок начнет так же растягиваться. Тот же самый эффект происходит тогда, когда мы растягиваем (или сжимаем) остров развертки модели:

Развертка левой и правой стороны расположилась вот так:

На примере видно, что сжав репрезентацию (остров) левой стороны, мы растянули тексели таким образом, что теперь они отображаются на левой стороне куба в виде прямоугольных вытянутых палочек. То есть, тексель на объекте зависит от того, как выполнена развертка этого объекта. Часто в 3D-редакторах объектов есть возможность проследить, насколько сильно сжат или растянут остров развертки. Например, в Autodesk Maya это выглядит вот так:

Где красным отображается сильное сжатие, а синим — растяжка.

Плотность островов

Остров развертки должен корректно расправляться, не создавая стяжек. Еще острова должны быть отмасштабированы между собой. То есть, площадь, которую занимает остров, должна соответствовать площади другого острова. В противном случае, получится так, что один остров реальной площадью 20 кв.см будет занимать 20% площади текстурного пространства, а остров с реальной площадью в 100 кв.см будет занимать 5% площади текстурного пространства. И отсюда получится разногласие в отображении количества текселей на острове:

Остров правой стороны куба очень маленький и способен отобразить лишь 25 текселей, на которых он и располагается. В связи с этим, рендер увеличивает тексели согласно площади острова, и мы видим большие квадраты.

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

То есть, чтобы модель правильно текстурировать — нужно выравнивать площадь всех островов, чтобы они были равны по отношению друг к другу:

Выше картинка из статьи хаброчанина Osmandos. Его статья вот здесь. Рекомендовано к прочтению.

Размер текстур

Если мы вернемся к нашему кубу, то увидим, что тексели на нем (черные и белые квадратики, в данном примере) очень большие (опять же — условно. Представим, что в текущей текстуре квадратики — это тексели). Даже если мы выровняем все острова, мы все еще видим черные и белые квадратики на сторонах куба:

Это говорит нам о том, что текущий размер текстуры не достаточно высокого качества, поэтому мы видим тексели. Но так ли это?

Представим, что текущая текстура (ее обычно называют «чекер» (Checker) — текстура для проверки корректной настройки островов) имеет размерность 63 на 63 текселей. И сейчас мы видим этим тексели, потому что объект расположен к нашей камере настолько близко, что размер одного текселя занимает площадь 30х30 пикселей монитора (условно).

А если мы отдалим куб от камеры подальше?

Попробуйте теперь разглядеть тексели на этом кубе?

Теперь 1 тексель равен по размерам 1 пикселю (но это не точно). И размер такой текстуры является идеальным, так как позволяет отобразить все свои тексели, а так же не отображает ничего лишнего и не прячет ничего лишнего. Это идеальный размер для такого расстояния.
То есть, размер текстур зависит очень сильно от площади, которую занимает развертка модели и от расстояния объекта до камеры. Если объект будет находиться на достаточно большом расстоянии от нас — нет смысла ему выдавать текстуры 8к на ноготок. Даже если вы делаете текстуры для фильма — никто просто не увидит белую полоску на ноготке девушки, рука которой занимает 3% от площади экрана.

Итого

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

Не забывайте выравнивать острова относительно друг друга — это важно и очень сильно влияет на восприятие. Если вы откроете, например, игру Fallout 4 и начнете диалог с каким-нибудь NPS, то заметите, что качество текстур на одежде персонажа оставляет желать лучшего, а лицо имеет максимального размера текстуры:

Стоит помнить, что в играх часто специально занижают размер текстур в угоду производительности. Да и кто смотрит на одежду, когда у персонажа такое интересное лицо со шрамами?

Большие размеры текстур занимают большое пространство (в памяти, я имею в виду). Поэтому многие разработчики принимают тяжелое решение — что урезать, а что оставить, лишь бы игра не тормозила на вашем ПК / консоли / телефоне. Однако, к этому вопросу мы еще вернемся и рассмотрим новейшие методики, которые позволяют избегать таких неприятностей.

Запекание текстур


Что такое — запекание текстур?

Запекание текстур — это когда пакет для создания текстур начинает высчитывать конечный результат и сохранять его в отдельные файлы, с помощью которых потом окрашивается модель в игровом движке.

Грубо говоря, в Substance Painter мы накладываем слои за слоями через маски и прочие хитрости, чтобы добиться конечного результата. Мы работаем над тем, как должна выглядеть конечная модель, смешивая различные варианты материалов. Но, если вы заметите — чем сложнее будет ваша комбинация слоев, масок и материалов, тем сложнее будет обрабатывать ваши изменения программе. Дело в том, что Substance Painter (Любая другая программа для текстурирования) сверяет каждое ваше изменение и просчитывает в реальном времени ВСЕ созданные вами слои и каналы (а я напоминаю, что вы можете еще и свои каналы добавлять в слои для всего-чего-угодно), которые приходятся на тексель.

И когда мы довольны результатом и готовы выгрузить его в игровой движок, то мы просим Substance Painter сделать последние расчеты и создать нам текстуру с параметрами для цвета каждого пикселя, и 3 дополнительные текстуры с параметрами Metallic, Roughness и Normal Map. Это позволит нам не выгружать в игру тонны масок и дополнительных материалов, не заставлять движок рассчитывать все заново, а просто предоставить ему готовый результат, который он преобразует в текстуры для модели.

В целом, с запеканием текстур мы разобрались. Однако нам нужно посмотреть, как происходит выгрузка параметров в текстуры, чтобы мы узнали, как мы можем контролировать то, в какие каналы текстур какие данные пойдут. Это важно, потому что в стандартах изображения все еще всего 4 канала. И нам нужно уметь выбирать, в какой канал какие параметры пойдут, чтобы мы могли потом быстро их подключать.

Теперь возвращаемся в Substance Painter, в наш проект, и начнем выгружать текстуры. Для этого откроем окно выгрузки текстур (File — Export textures):

Вот так оно выглядит изначально. Если мы развернем набор текстур, то увидим список файлов, которые будут выгружены в качестве экспорта:

Как видим, здесь 4 текстурных файла, которые должны экспортироваться, против 9 файлов, которые мы загрузили.

Но нас они не интересуют, так как стандартные настройки, а нам нужны свои личные (или по стандарту студии, в которой вы работаете). Поэтому перейдем в окно Configuration:

Для начала создадим новые преднастройки и выберем их, чтобы не сбивать уже готовые:

Теперь обратим внимание на панели справа:

Input Maps — это список каналов, которые мы использовали. Большая часть из них имеют названия, так как используются для PBR для конкретных целей. Есть 8 каналов (от 0 до 7), которые доступны для редактирования, но Substance Painter не знает, зачем вам они могут пригодиться, поэтому у каналов стандартные названия User0 — User7.

Converted Maps — это список текстур, которые зависят от типа рендера. Например, Normal Map зависит от движка. И нам нужно знать, какой API использует движок — DirectX или OpenGL, чтобы выбрать корректную карту нормалей для него. Поэтому Substance Painter выделяет эти карты в отдельную категорию, так как конечный результат их будет зависеть от того, что вы выберете.

Mesh Maps — те текстуры, которые вы загрузили вместе с объектом или сгенерировали во время работы над ним. Мы загружали 9 текстур. 8 из них относились к слоям (материалам), а 9-ая карта нормалей для фасок уже относилась напрямую к объекту. Кроме карты нормалей мы создали еще карту Curvature для наложение по ней сколов. Эти карты относятся именно к объекту и не могут использоваться в качестве основы для материалов, поэтому они вынесены в отдельный список.

Теперь рассмотрим панель создания текстур:

Это кнопки, нажав на которые вы создаете 1 файл текстур (точнее, подготавливаете все для его создания).

Gray — создает текстуру с одним каналом. В этот канал мы можем расположить любые наши настройки — Roughness, metallic, specular, emissive. Все те настройки, которые работают в одном канале.

RGB — создает текстуру с 3 связанными каналами. То есть, это предназначается для таких параметров, как цвет (BaseColor), карта нормалей. То есть, для всех параметров, которые используют 3 канала для полноценной реализации себя.

R+G+B — создает текстуру с 3 не связанными каналами. То есть, у нас текстура с тремя Gray — каналами. Можем указать параметр с 1 каналом в каждый канал текстуры отдельно. Часто это используетс для ORM — (Occlusion-Roughness-Metallic). То есть, в первом канале хранится Ambient Occlusion, во втором хранится Roughness, в третьем — Metallic.

RGB+A — как вы уже догадались — 3 связанных канала и 1 не связанный.

R+G+B+A — четыре не связанных канала.

Теперь, зная это, подумайте, сколько файлов нам необходимо, чтобы выгрузить всю информацию о том, как должна выглядеть конечная текстура для объекта.

Правильно, минимум 3 текстуры:

  1. RGB — BaseColor
  2. R+G+B — ORM
  3. RGB — Normal Map

Нажмите поочередно на нужные вам текстуры, и у вас получится такой список:

Не забываем правильно именовать текстуры, иначе потом не разберемся, что где и как.

Сейчас нам необходимо указать, какие параметры в каких каналах будут храниться. Для этого просто перенесите из Input Maps параметры в нужные каналы. Карту нормалей нужно перенести DirectX, так как в UE4 используется такой формат чтения нормалей.

В итоге, у нас получится следующий набор:

Теперь переключаемся обратно в Export. Там мы:

  • Указываем путь, куда сохраняться.
  • Выбираем созданные нами преднастройки в параметрах Config.
  • Выбираем тип текстур — Targa.
  • Нажимаем Export.

И вуаля — экспорт текстур прошел успешно. Откроем текстуру BC (BaseColor) в Photoshop и посмотрим на нее:

Вы помните, как мы создавали 2 разных материала в разных слоях? Substance Painter сложил все слои, высчитал результат конечного варианта текстуры, которая будет покрывать объект, и «запек» все тексели ровно так, как вы замаскировали их. Все то же самое он сделал с Normal Map, Roughness и Metallic.

Если мы откроем карту ORM в Photoshop, перейдем режим отображения каналов и выберем последний (синий), то мы увидим запеченную карту Metallic:

По этой карте можно представлять, где острова должны быть металлическими, а где — не металлическими.

Итого

Мы научились создавать готовые текстуры для игрового движка.

Важно. Сейчас мы научились запекать текстуры, делая весь расчет создания этих текстур в Substance Painter. То есть, мы сделали все для того, чтобы получились готовые текстуры, которые теперь мы можем использовать в разных движках (с оговоркой на обработку некоторых параметров PBR). Минус такого подхода — если нам нужно что-то кардинально изменить — нам приходится возвращаться в программу и переделывать текстуры.

Чтобы рассчитать, как правильно отображать цвет и свет от текселя — видеокарте нужно произвести расчеты на каждый тексель. И это не будет никак зависеть от того, сколько пикселей у вас на мониторе. Это будет зависеть от того, сколько текселей используется при формировании текстуры (в паинтере мы используем стандартные настройки, значит, используем 1024*1024 текселей). То есть, чтобы отобразить корректно текстуру, паинтеру нужно посчитать каждый пиксель, и учесть в нем все слои, которые вы создали. Это трудоемкая задача, поэтому раньше (да и сейчас) PBR-текстуры создавали в основном в программах для текстурирования.

Unreal Engine 4


И на последок выгрузим наш объект в UE4 и посмотрим наш результат. Я не буду расписывать, как открыть UE4, как создать проект, как вообще его устанавливать и какие там кнопки жать. Для этого есть очень хорошие курсы от Flakky. Курсы все располагаются на его сайте uengine.ru.

Сейчас мы рассмотрим только импорт нашей лавки и получившихся текстур, создание примитивного шейдера и подведем итоги.

Для начала откроем проект и создадим в нем папку «Bench», в которую мы скинем все наши текстуры и объект. Чтобы импортировать все текстуры — достаточно просто перенести их из браузера в проект. Они без проблем импортируются и никаких настроек дополнительно не попросят. Что касается объекта, то при его импорте Unreal Engine попросит вас указать некоторые настройки. В целом, ничего менять не нужно, кроме 2 параметров. Их надо отключить:

Эти параметры отвечают за импорт текстур, а они у нас отдельно хранятся.

В итоге, в нашей папке 3 текстуры и 1 объект:

Теперь в любом свободном пространстве в браузере проекта нажмем ПКМ и выберем Material:

Назовите его M_Bench.

Откройте его и перетащите в него все наши текстуры. Получим такую картину:

Это ноды (Node) контейнеры, которые позволяют визуализировать настройки так, чтобы с ними было удобно работать даже новичку (огромное спасибо за успешную реализацию нод Epic Games. Без систем Blueprints и нод в частности у многих горели бы головы от цифр и кода). Белые пины (выходы и входы) на текстурах (нодах слева) обозначают, что подаются сразу три канала. А вот красные, зеленые и синие — каждый канал отдельно. Последний сероватый — это альфа-канал, но в наших текстурах его нет, поэтому использовать этот пин мы не будем. Справа большая нода, которая принимает в себя параметры, суммирует их и создает полноценный материал.

Весь принцип работы текстур в Substance Painter используется и здесь (и в любом другом игровом движке) — вы указываете, какие параметры для чего нужны, и программа выдает результат. В данном случае, большую часть расчетов взял на себя Substance Painter, Unreal Engine же просто складывает готовые результаты Painter’а и создает готовый шейдер (материал), который можно наложить на лавочку.

Нам осталось только правильно подключить пины и попросить движок рассчитать нам результат:

А почему я не воткнул из текстуры ORM красный канал в Ambient Occlusion? Я уже как-то упоминал, что AO считается устаревшей, так как АО часто рассчитывается в реальном времени. И в ноде материала есть пин Ambient Occlusion, но он не работает. Он даже не принимается в расчеты. Оставлен здесь по какой-то причине. Предполагаю, что достаточно большой объем работ требуется для его удаления.

Итак. У нас готов самый простой шейдер (материал), и мы можем наконец-то покрасить нашу лавку. Для этого откройте лавку в UE4, кликнув по ней 2 раза ЛКМ. И перетащите материал из браузера проекта в слот для материала:

Ну вот. Теперь вы получили свой первый готовый объект.

Результат вы можете увидеть сами, а я лишь подведу итоги.

Итого

В очень простой форме мы научились создавать первые шейдеры в движке UE4. Вы спросите — а почему это называется Material, а не шейдер в самом движке? Так проще объяснять, что это за формат построения текстур такой — это материал, который накладывается на объект, и объект становится красивым. Но возможности шейдеров куда больше (намного, в сотни раз больше), чем просто показать текстуры.

Оффтоп. Решение проблем с фасками

Выше я обозначил проблему с фасками и как ее решить. Но есть второй способ, который мы в рамках этой части рассматривать не будем полноценно — это создание фасок на модели и выравнивание нормалей таким образом, чтобы поверхность меша создавала иллюзию красивой фаски. Такая фаска создается за счет выравнивания нормалей вертексов (тангенсов). И этот метод даже в чем-то более экономичный для производительности, чем метод с картами нормалей, а уровень красоты его запредельно высок по отношению к обычному текстурированию фасок. Вот пример двери, которая стоит в одном из наших игровых проектов (пока что не анонсированных):

Я натыкался на информацию об этой теме только на англоязычных ресурсах. Здесь.

Плюс этого метода в том, что мы создаете красивую фаску, при этом, кол-во вертексов увеличивается не на много, так как жесткие грани — это всегда 2 вертекса в одной точке, а мягкие грани — это 1 вертекс, и увеличивается кол-во треугольников для отрисовки:

Стоит помнить, что нам карта нормалей для объекта нужна в 99% случаев для создания фасок. А карты нормалей для материалов и каких-то отдельных элементов — это уже немного другая тема.

Итого

Оооооох. Ну и большой же получилась эта часть. Но она была необходима, чтобы полностью покрыть тему стандартного текстурирования. И на этом мы можем остановиться.

Ну правда, мы прошли путь от еле заметного элемента пикселя на вашем мониторе до сложных схем из масок, которые определяют видимость не менее сложно устроенных слоев материалов. Наконец-то разбили слово пиксель на два — тексель и пиксель. И научились все это запекать и подключать в игровом движке. На этом шаге можно подвести длинную жирную черту и сказать, что мы стали самыми настоящими художниками по текстурам. Все остальное — красота сколов на объектах, кинематографичность визуального представления — это все наработка временем и постоянным стремлением познать новые техники и способы.

Можно смотреть больше уроков и совершенствовать свой навык. Например, в Substance Designer есть огромная наковальня генераторов, создав которые, вы можете использовать в качестве их генераторов слоев. И все те маски, которые были для грязей, уже не создавать вручную, а реализовывать на уровне функций, которые все сделают красиво за вас.

Нужно всегда помнить, что мы рассматриваем диапазон значений от 0 до 1. Это важно, потому что стандартные текстуры имеют 8 бит на канал, а HDR-текстуры имеют более широкие каналы (от 16 бит и более), а значит, диапазон чисел там намного больше, чем 0 до 255. Но это все еще диапазон от 0 до 1.

И казалось бы все, предел. Мы достигли высокой планки понимания того, как создаются текстуры. Можно просто все бросить и пойти уже на работу художником по текстурам в любую компанию, которая разделяет моделирование и текстурирование (как это делаем мы, например).

Но так ли это? Мы действительно достигли предела в текстурировании и лучше уже не получится?
Или есть куда ещё расти?

Да! И у нас остался еще один тутор, который выведет текстурирование на новый технологический скачок и, по моему скромному мнению, будет представлять собой следующее поколение текстурирования.

Мастер-класс смотреть онлайн: Как создать интересные текстуры: 16 необычных способов

Сначала нам с вами необходимо разобраться, что такое текстура и чем она отличается от фактуры.

Фактура — это то, что характеризует предмет, а точнее его поверхность. Например, гладкий, шершавый, рельефный, колючий, мягкий и так далее.

Текстура — это особый рисунок на гладкой поверхности. Примером могут послужить: мрамор, дерево, мыльные разводы, царапины и так далее.

Текстуры создавать очень интересно. Процесс создания текстур — неиссякаемый по своим ресурсам тренажер развития человеческой фантазии.

Для этих целей подходят не только специальные составы, порошки и иные средства, но и средства вполне доступные — те, что всегда под рукой.

Начнем, пожалуй, с самого простого:

1. Акварель + соль

У меня питерская акварель, хотя подойдёт и самая обычная, детская. Необходимо взять плотную бумагу (ватман или акварельную), намочить под краном и по мокрому нанести на поверхность нужные цвета. Незамедлительно после этого сыпем соль! Соль вбирает в себя воду вместе с красящим пигментом краски, образуются очень интересные и непредсказуемые разводы и абстрактные звёздочки.

Если сыпать соль уже по высохшей краске, то этого эффекта не получится, поскольку цвет проникнет в слои бумаги.

2. Акварельная текстура с раздутием

Делаем заранее акварельный фон на плотной бумаге (ватмане или акварельной) или берем готовый цветной матовый картон. Жидко разводим чёрную акварельную краску, капаем на уже хорошо просохший фон и раздуваем в разные стороны. Самое главное — дуть поперёк «ручейка», тогда дорожки разойдутся «веером».

Также в этих целях можно использовать чёрную тушь.

3. Для третьей текстуры понадобится масляная пастель (или восковые мелки) и акварель

На ватмане рисуем абстракцию масляной пастелью: волны, завитки, зигзаги, пятна и точки. Затем покрываем фон жидкой акварельной краской. Вода (вместе с пигментом краски) скатывается со слоя масляной пастели. Если краска будет слишком густая, то текстура не получится, потому что густая краска ровным слоем покроет ваш абстрактный рисунок.

4. Листья — природный материал, который так здорово помогает всем художникам в их нелегком, но интересном творческом пути.

Мы тоже будем их использовать в создании двух текстур.

Листья+ масляная пастель

Для работы выбираем бумагу потоньше, чтобы через нее хорошо прощупывались прожилки листочка. Подойдет обычная, для принтера. Кладем листик «изнанкой» вверх, сверху накрываем бумагой. Левой рукой плотно прижимаем бумагу к листу (как показано на фото) и проводим широкой стороной мелка по поверхности бумаги. Получается очень красивый, ажурный оттиск.

Дальше продолжим работу с листьями, но уже с гуашью. Будем делать красочные отпечатки на плотной гладкой бумаге (ватмане). Красим листики густой краской и смело отпечатываем их.

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

У меня почему-то ассоциация с космосом 🙂

6. Делаем отпечатки поролоном

Главное условие, чтобы губка была сухая, а гуашевая краска достаточно густая. Получается довольно тонкая, можно сказать, мелкозернистая текстура.

7. Отпечатки скомканной бумаги

Нам понадобятся всё те же гуашевые краски и два вида бумаги: жесткая (тонкая для принтера) и мягкая (салфетки или бумажное полотенце). Сминаем небольшой кусочек бумаги, выступающие части красим нужной нам гуашевой краской и ставим отпечаток на плотном гладком листе.

Теперь попробуем отпечатать салфетку. Эффект будет совершенно другой, с более мягкими очертаниями. Единственный минус в том, что салфетка быстро размокает и ее приходится часто менять.

Кажется, получилось какое-то улыбающееся лицо 🙂

8. Гуашь + вилка

Совсем неожиданный материал для работы с красками — это вилка. Обычная пластиковая, для наших любимых пикников. Просто поводите ей по непросохшему густому слою гуашевой краски. Можно сделать полосы или клетку.

9. Гуашь + детская машинка

Забрала я у сына сломанную машинку и единственной уцелевшей шиной провела несколько раз по влажному слою гуаши. Получилась текстура в мелкую точечку. Вот такая:

10. Целлофан

Далее я экспериментировала с целлофановым пакетом. Скрутила его, намазала гуашью и отпечатала на плотной бумаге.

11. Сухая щетинистая кисть дает очень интересный эффект. Если ее слегка смочить в гуашевой краске, затем постучать о крышку или баночку и поводить по бумаге, то получатся лёгкие волокнистые разводы. Иногда этот способ используют в живописи, когда передают кору дерева или прописывают волны.

12. Упаковочный целлофан с пупырышками 🙂

Да-да, тот самый, что мы так любим хлопать. Главное — перед созданием текстуры этого не делать, а то ничего не получится. Итак, намазываем густо гуашью и смело отпечатываем на бумаге.

Вуаля!

13. Зубная щётка

Предмет универсальный! Подойдёт и для тонировки мишек-тедди и для создания текстур! Разбрызгивать мы будем гуашевую краску при помощи наших умелых пальцев. Причем есть два варианта: разбрызгивание на сухую поверхность и на мокрую —смотрите сами, что вам больше по душе:

Зубная щетка — эффект по-сухому.

Эффект по-мокрому фону (в этом случае плотная бумага смачивается под краном):

14. Карточка рекламная

Иногда раздают в пешеходных переходах или просто на улице. Её легко применить для создания интереснейшей текстуры. Смотрите как:

Для работы используем все те же гуашевые краски

15. Штампик, связанный крючком

Мой сын недавно нашел на улице шахматную фигурку. Сама в шахматы не играю, но, думаю, пригодится….И точно. Как раз для штампика. Связала крючком небольшой фрагмент из обычного шпагата и приклеила ее к пешке. Затем красим штамп гуашью и прижимаем к поверхности бумаги! Получается замысловатый узор.

Если присмотреться, то тут еще просматривается рисунок моего сына, который всё же добрался до маминых акварельных карандашей!

16. Самой последней будет текстура масляными красками

Делайте ее только в хорошо проветриваемом помещении. У меня цветов масляной краски всего два и совсем не интересные: марс и ван дик (все коричневые). Но это же не главное. Самое главное показать вам принцип создания этой текстуры. Нам понадобится пластиковая ёмкость высотой хотя бы 5 см, крышки, палочка и уайт-спирит. Всё вышеперечисленное необходимо будет потом выбросить. Так что берите то, что не жалко.

Итак, наливаем в ёмкость воды. Разбавляем в крышечках масляную краску уайт-спиритом, размешиваем палочкой. Далее выливаем содержимое крышечек на поверхность воды и с помощью палочки распределяем по всей поверхности воды.

Затем опускаем лист и сразу достаем его, переворачиваем и смотрим что получилось. Повторяем процедуру несколько раз и каждый раз будут получаться разные узоры, похожие на мрамор.

Получается вот такая красота, правда пахнет плохо и сохнет долго! Но оно того стоит 🙂

Всем большое спасибо за внимание!

Рисование текстур для 3D моделей, игр, 3D редакторов, фонов для сайтов. Часть 1

В данном уроке рассматривается рисование текстур для 3D моделей, в частности, как рисовать текстуры для 3D моделей для Blender, других 3d редакторов, для игровых движков Unity 3D, UE, UDK, Amazon LumberYard, т.е. рисование текстур для игр.

Для начала рассмотрим основы GIMP, не отрываясь от процесса, создания текстуры (бесшовной, затайленной).

Ристование текстур для моделей. Полетели — Как создать новый документ в GIMP

Создадим новый документ в GIMP, для чего выберем вкладку File, в которой выберем вкладку New (или просто нажмем сочетание клавиш Ctrl+N).
Выберем размер желаемого документа/файла/холста 512 на 512 пикселей.

На рисунке показано меню создания нового изображения в GIMP (нового документа в GIMP).

Добавьте новый слой (Ctrl+Shift+N) и выберите его, кликнув на нем Левой Кнопкой Мыши в меню Layers.

Как в gimp нарисовать прямоугольник

Выберите инструмент прямоугольного выделения “Rectangle Select Tool” и выделите квадрат на выбранном слое.
Чтобы выделить квадратную область, нажмите и удерживайте клавиши Ctrl+Shift в процессе выделения области. Чтобы разместить созданное квадратное выделение строго по центру изображения вы можете переместить его, если наведете на его центр курсор мыши, после чего, зажав Левую Кнопку Мыши вы сможете переместить его.

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

В gimp обвести выделение очень просто

Выберите инструмент Обводки выделенного участка “Stroke Selection” в меню Edit и выставьте толщину линии (Line Width) равной 6 (шести) пикселям. После этого выберите кнопку Stroke, чтобы выполнить обводку.

На рисунке показано меню обводки выделенного контура в gimp.

Здесь стоит отметить, что вы можете выполнять обводку не только заданной толщиной линии, но и используя один из инструментов, например, ластик, аэрограф или кисть, включая текущие параметры настроек для них. Для этого достаточно лишь выбрать “Stroke with a paint tool” в меню обводки “Stroke selection” (или “Stroke Path”, смотрите ниже).

Продолжаем рисование в GIMP. Рисование окружности: нарисуем в GIMP круг.

Создать в GIMP круг очень просто. После того, как вы выполнили обводку выделенной области, выберите инструмент выделения эллипсом и выделите круговую область в центре холста. Чтобы создать окружность, нажмите и удерживайте клавиши Ctrl+Shift в процессе выделения.

На рисунке показано как создать в GIMP окружность (круг), а также показан процесс обводки в GIMP контура.

Обведите выделенную окружность, как было показано выше, той же толщиной линии.
Теперь (продолжаем работать с созданным слоем, который должен быть выделен) нажмите сочетание клавиш Ctrl+A для выделения всей области холста и обведите ее при помощи упомянутого выше инструмента Stroke Selection. Толщину линии оставьте прежней – 6 пикселей. Толщина линии будет меньше, чем при предыдущей обводке, поскольку видимой останется лишь та часть, что находится на холсте, т.е. 3 пикселя.

Рисуем линии в GIMP

Теперь добавим деталей нашей текстуре. Выберите инструмент Path Tool, кликните Левой Кнопкой Мыши в левом верхнем углу внутреннего квадрата, после чего кликните Левой Кнопкой Мыши в противолежащем углу внутреннего квадрата (правом нижнем), чтобы нарисовать путь. Не удерживайте кнопку мыши, поскольку данный инструмент позволяет рисовать кривые линии Безье.
Данный инструмент позволяет рисовать даже разорванные линии.

На рисунке показан инструмент рисования векторных линий, т.е. путей, как и в Photoshop.

После того, как вы разделите линией квадрат по диагонали, подведите курсор мыши к верхнему правому углу квадрата, зажмите клавишу Shift и кликните Левой Кнопкой Мыши, чтобы обозначить/поставить новую точку новой линии/пути. Подведите курсор мыши к левому нижнему краю квадрата и кликните Левой Кнопкой Мыши, чтобы завершить линию.

Обводим линию (путь) в GIMP

Теперь выберите инструмент обводки пути Stroke Path в меню Edit. И обведите выбранный путь толщиной линии в те же 6 пикселей.

На рисунке показано, как в GIMP нарисовать прямую линию и обвести ее.

Можно оставить резкие края линий, а можно сгладить/размыть изображение на слое.

Для того чтобы осуществить размытие по гауссу, размыть изображение, сделать размытый фон, размыть фото и так далее подойдет размытие по Гауссу.

Как размыть изображение или фон

Выберите вкладку размытия по Гауссу “Gaussian Blur” в меню Filters->Blur и установите параметры размытия по горизонтали и вертикали равными 5 пикселям.

На рисунке показано как размыть изображение в GIMP с использованием фильтра Gaussian Blur.

Экспортируйте полученное изображение, нажав сочетание клавиш Ctrl+E (Shift+Ctrl+E) или выбрав вкладку “Export To” или “Export As…” в меню File. Выберите формат PNG и назовите экспортируемое изображение, например, bump-map.

На рисунке показана рельефная карта (bump map), которая может быть использована для создания карты нормалей, а также карты высот.

Как создать копию слоя. Создаем дубликат слоя в GIMP

Создайте копию слоя с вашим изображением, для чего выберите Правой Клавишей Мыши в окне Layers ваш слой и далее в выпадающем меню выберите вкладку Duplicate Layer.

На рисунке показано, как создать копию слоя в GIMP.

Отключите вновь созданный слой, нажав на иконку глаза слева от созданного дубликата слоя.

Как залить выделение (выделенную область). Заливалка в GIMP.

Теперь при помощи инструмента заливки изображения Bucket Fill Tool залейте различными оттенками серого различные части изображения, например, как показано на рисунке ниже.

На рисунке показан инструмент заливки и диалог смены цвета текущего инструмента через Color Picker.

Цвет заливки вы найдете под набором инструментов в GIMP, как показано на рисунке выше.
Что важно — вы можете использовать инструмент, как на текущем слое, так и на отдельно созданном.
Экспортируйте получившееся изображение в отдельный файл и назовите его bump-map-grayscale.

На рисунке показана еще одна альтернативная текстура, которая может быть использована для рельефного текстурирования (bump mapping) или создания карты нормалей, а также карты высот.

В следующей части урока мы продолжим рисование текстур для 3D, сайтов и т.д.

Рисование: как рисовать текстуры для сайтов, игр и моделей, Blender. Рисование текстур для Unity 3D . Уроки GIMP 2 Часть

Автор

Максим Голдобин (Maxim Goldobin aka MANMANA)

Post Views: 16 808

фактуры и текстуры — Restless Creativity

Привет, друзья. В этой статье мы попробуем ответить на вопрос, как передать свойства материала в рисунке тушью.

Чем бы мы ни рисовали, эта тема всегда остаётся актуальной. Окружающий мир представлен огромным количеством различных материалов, каждый из которых обладает уникальной структурой. Также мы поговорим о том, на что обращать внимание во время анализа материалов, и о практике.

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

Рисунок – двухмерная форма. Рисуя, мы создаем иллюзию текстуры, беря за основу свои наблюдения за реальным материалом и его свойствами.

Фактура и текстура

Если Вы когда-либо изучали информацию по материалам и их изображению в англоязычном интернете, то наверняка заметили, что визуальные свойства материала обычно обозначают ёмким понятием texture, не вдаваясь в разграничения между фактурой и текстурой. Этот момент вдохновил меня на некоторые вольности – я часто говорю о текстуре, подразумевая под этим еще и фактуру.

Однако, есть некоторые различия между понятиями «текстура» и «фактура», и о них стоит помнить.

Фактура – это характер поверхности материала, его форма и рельеф, визуально-тактильные характеристики, определяющие внешний вид. Текстура – наблюдаемые на поверхности внешние признаки структуры (рисунок, цвет и т.д.) Получается, что текстура без фактуры – это плоский узор.

Также можно сказать, что текстура – упрощенно – это просто изменение рисунка на поверхности объекта, и на форму она влияет незначительно, а вот фактура строится формой, рельефом. На фактуру свет оказывает большое влияние, а на текстуру – минимальное.

Как анализировать свойства материалов

Чтобы понять свойства материала, нужно увидеть объект, который данный материал представляет – это первый и очевидный пункт. Желательно, чтобы у Вас была возможность внимательно осмотреть этот объект с разных сторон, потрогать, послушать свои ощущения.

В некоторых случаях это невозможно (например, если мы работаем с фотографией). Тогда, прикоснуться к объекту мы можем только мысленно. Какие-то детали приходится додумывать и прибегать к опыту; например, мы знаем, что камни, как правило, гладкие, а кора дерева шероховатая и имеет специфический рельеф. Однако бывают камни и с шершавой поверхностью. Поэтому, поспешные выводы порой оказываются не совсем верными.

Чтобы наиболее полно проанализировать текстуру, можно задаваться определёнными вопросами. Например:

  • Какова отражательная способность у этого материала?
  • Насколько он глянцевый или матовый?
  • Сколько бликов Вы видите, как можно его (или их) охарактеризовать?
  • Что это за материал – органический или искусственный?
  • Как можно охарактеризовать рельеф? Материал скорее гладкий или шершавый?
  • Этот материал новый или старый? Как это влияет на его свойства?
  • Есть ли признаки прозрачности или просвечивания?
  • Каков силуэт изображаемого материала?
  • Каковы края или грани этого материала – жесткие, мягкие, резкие и т.д.?
  • Каков общий тон материала?

Далее, можно вдаваться в детали и подмечать нюансы; например, узор поверхности, который делает данный материал особенным, отличным от других.

Дополнительные советы

Развивайте наблюдательность в обычной жизни. Стоит смотреть на объекты, запоминать отличительные черты материала, из которого они сделаны (состоят), и представлять, как такой объект будет выглядеть в туши. С опытом этот процесс становится всё проще и быстрей.

Поможет также анализ черно-белых фото разных объектов.

Если Вы хотите нарисовать что-то относительно сложное, и Вас путает цвет и различные детали, можно сфотографировать этот объект на телефон и через какое-нибудь приложение перевести фото в монохромный режим. Будет проще понять и визуальные характеристики материала, и форму самого объекта. В случае с цветным фото всё еще проще – переведите его в оттенки серого. В некоторых случаях будет полезно настроить яркость/контрастность, чтобы основные детали стали очевиднее.

Обращайте внимание на ритм. У любой текстуры он есть, просто у каких-то видов ритм четкий, как, например, у чешуи рыбы, а у каких-то он лишь угадывается. Также старайтесь вычленять отдельные формы или линии, которые составляют узор.

И еще один совет напоследок: не пытайтесь выдумывать то, что можно подсмотреть. В использовании любого рода подсказок нет ничего зазорного! Если какой-то материал Вам не знаком или Вы не уверены в том, как лучше его изобразить, поищите реальный объект или качественные референсы. После того, как Вы проанализируете текстуру, выделите ее отличительные черты и потренируетесь, можно будет изображать данный материал «из головы».

Во время практики рисования текстур я рекомендую фокусировать всё внимание на отличительных чертах данного материала. Будьте настолько внимательны и вовлечены в процесс, как если бы Вам нужно было завтра повторить тот же рисунок материала безо всяких референсов. И, кстати, подобные проверки значительно помогают развивать память.

Работу с материалом можно условно разделить на две категории: анализ «плоского» образца и формирование текстуры на объемном предмете.

Первый вариант – базовый, его простота заключается в том, что мы имеем дело со светотеневыми отношениями лишь самой плоскости, ее рельефом и узором. Второй вариант представляет собой двойную задачу, поскольку к базовому рельефу и деталям добавляется еще и форма самого объекта. (Далее мы подробно рассмотрим эти упражнения, поэтому не волнуйтесь, если прямо сейчас мои слова кажутся Вам абстракцией.)

Чтобы наглядно проиллюстрировать данную идею, представьте себе кору дерева как она есть, будто Вы рассматриваете её с близкого расстояния, а затем как бы отодвиньте воображаемую «камеру», чтобы увидеть ствол дерева целиком. Когда Вы видите общую форму объекта (ствол), становится понятно, что именно она первична, а текстура и микрорельеф коры уже ложатся поверх неё.

Это слайд-шоу требует JavaScript.

Создание иллюзии материальности при помощи базовых техник

Контраст и текстура

Совсем скоро мы с Вами перейдем непосредственно к упражнениям. Но сперва нужно рассмотреть тему базовых приемов рисования тушью под новым углом — с точки зрения работы над текстурой.

В предыдущем посте мы уже затрагивали тему тушевых техник, контраста и объема. Рекомендую при необходимости к нему обратиться.

Можно предположить, что контраст — это когда темнее-светлее 🙂 С точки зрения светотеневого контраста, так и есть. Но существуют и иные виды контраста. Текстура не является исключением. С помощью различные приемов (штрихов и их групп, наслоения, введения точек и т.д.) мы можем создавать особого рода контраст, который подскажет зрителю изменения в текстуре.

Давайте проанализируем картинку ниже.

Вывод, который сразу приходит на ум, заключается в важности направления линий, их характера (прямые или изогнутые, толстые или тонкие, спонтанные или выверенные) и длины. Упорядоченная штриховка дает ровно и гладко выглядящий результат. Точки, особенно используемые в одиночку, придают эффект зернистости или шершавости.

То, что мы рисуем на бумаге, является стилизованной версией реальности. Это что-то наподобие отпечатка направляющих линий, теней, узора и основных деталей текстуры, наблюдаемой в жизни. Или созданной нами у себя в голове — но это уже уровень рисования чуть выше.


По сути, в рисовании тушью мы здорово ограничены. Нету многообразия цветов, да и варьировать ширину следа на бумаге сильно не получится (если только мы не рисуем кистью, но это не про данную статью). Но, как оказывается, простыми штрихами и точками можно передать очень многое.

Следующую иллюстрацию я не буду комментировать. Просто понаблюдайте за тем, что может получиться при сочетании базовых приемов. Интересные эффекты получаются, если мы творчески сочетаем просто линии, штриховки, где уместно — приправляем всё точками, варьируем толщину и характер линии. Ничего особенного! Это всего лишь владение базой, которое приходит с практикой.

Если есть желание разобраться в использовании техник, уделите полминутки каждому образцу, разберите его. Какие конкретно приемы использованы? За счет чего получен тот или иной эффект? На какой материал из реального мира похож этот образец?

Упражнения первого типа

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

Затем, расчертите небольшой прямоугольник (или квадрат, круг, любую другую фигуру) и приступайте к рисованию. 🙂

Вот некоторые примеры из моей «библиотеки текстур»:

Как было сказано выше, в данном упражнении акцент делается на микрорельеф поверхности и узор. Общая форма и объем самого объекта не вносят существенных корректив.

Готовые примеры могут выглядеть сложновато для понимания. Давайте разберем несколько поэтапных демонстраций.

Чешуя рыбы, поверхность клубники в макро и кирпичная стена являются достаточно простыми примерами текстуры — их рисование можно разложить на минимальное количество этапов. На картинке ниже слева направо — шаг 1, шаг 2, шаг 3.

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

Затем, я добавляю тени с помощью тонкой штриховки, мягко отделяя элементы друг от друга. Обычно на данном этапе создается микрорельеф поверхности.

Далее я усиливаю контраст с помощью дополнительных слоев штриховки. Также можно добавить точки там, где хочется показать детали, но штрих кажется слишком грубым средством достижения этой цели. Точки также помогают создать иллюзию мягкой или шероховатой поверхности, сглаживают светотеневые переходы.

Я делаю небольшое затемнение по периметру прямоугольника, чтобы объединить образец по тону и дать ему некоторую глубину. Этот нехитрый прием быстро создает иллюзию пространства внутри наброска.

Второй тип упражнений

Также полезно делать упражнения на совмещение формы и текстуры. Вы как бы берете форму с ее объемом, освещением и светотеневым рисунком, и добавляете текстуру. Получается нечто комплексное.

Пожалуй, данный принцип похож на обтяжку кресла тканью. Если рассмотреть обивку без каркаса, мы обнаружим просто плоскую поверхность с узором. Но кресло, обтянутое этой же тканью — это уже на порядок более сложный и интересный объект.

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


Сперва нужно нарисовать фигуру, которая будет задавать форму, например, куб или сферу, и определить, как этот объект будет освещаться, какие его грани или участки будут наименее или наиболее освещенными. Также стоит наметить падающую тень – это сделает образец чуть более правдоподобным.

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

Первый образец рабочего листа лучше сделать без текстуры как таковой, а просто задать свет, тень, полутень.  Он будет своего рода моделью или отправной точкой с точки зрения светотени. (Первый куб на рисунке внизу как раз такой.)


Возможный порядок работы для данного вида практики

1. Сперва мы выделяем главные характеристики материала, анализируем его. Пока ничего не рисуем.

2. Передаем с помощью линий узор и ритм текстуры. Конечно, не забываем про контур самого объекта.

3. Возможно, Вы захотите придать уникальные черты Вашему образцу, например, сколы, трещины или другие подходящие детали.

4. Выявляем форму и рельеф с помощью штриховки. Должно быть понятно, какие грани и участки фигуры более и менее освещены.

5. Усиливаем контраст. Завершаем работу над деталями текстуры.

Важно помнить, что предложенные шаги не являются неким чек-листом, который годится на все случаи жизни. В процессе рисования одних объектов последовательность может такая, как описано выше. В других же случаях может оказаться, что удобнее сначала «вылепить» форму и рельеф через светотень, и только потом вплотную заняться текстурой.


С точки зрения теории, бывает полезно анализировать процесс по шагам. Главное, сохраняйте легкое отношение к такому теоретизированию 🙂 Оно должно помогать Вам, а не вгонять в рамки.

Вот, например, видео реального процесса рисования. Вы наверняка узнаете кое-какие шаги из приведенной выше последовательности. Однако на каждом этапе что-то дорабатывается, добавляются детали — так что мы не можем говорить о строгом следовании алгоритму.


Иллюстрация ниже предлагает пример работы над формой, объемом и текстурой как бы в связке.

Может возникнуть вопрос, как затемнить текстуру, которая расположена с менее освещенной стороны объекта. Есть пара подходов:

1) можно плотнее располагать линии, которые образуют текстуру;

2) наложить поверх узора текстуры штриховку (или, если нужно набрать плотный темный тон, то в несколько слоев).

Чем больше Вы практикуетесь, тем проще найти тот алгоритм анализа и последовательности шагов, который подходит именно Вам. Вариантов ведь куда больше одного, и тот, что я предложила, точно не является единственно верным или возможным. Каждый автор приходит к чему-то своему.

Предложения для практики

Вариантов, какие текстуры можно изобразить на форме, огромное количество. Вы найдете что-то по душе, если просто посмотрите вокруг и понаблюдаете за окружающими объектами.

Я рекомендую начинать с более-менее простых однородных текстур, которые Вам знакомы и понятны, и только потом переходить к более сложным.

Если хочется изучить какой-то материал как можно глубже, попробуйте создавать коллекции образцов, посвященные одной теме. Например, шерсти:

Или еде:

Довольно привычные, даже стандартные материалы могут быть обыграны за счет введения новых, дополнительных элементов.

Например, дерево не существует в отрыве от всего остального мира — на коре растут грибы, мох, лишайники, на ветвях устраивают гнезда птицы и т.д.


Кстати, есть еще и отличная вариация данного упражнения. Она дает возможность потренировать изобретательность и нестандартное мышление.

Кто сказал, что Вы должны просто «надевать» текстуру на произвольную форму вроде куба, шара или цилиндра? Сам объект может стать формой. Например, вместо «обтягивания» куба текстурой клубники можно нарисовать саму клубнику, чуть видоизменив и упростив ее форму.

Вы можете с тем же успехом тренироваться в изображении объектов как они есть, особенно небольших.

К примеру, можно изобразить ту же клубнику в разных ракурсах, наблюдая за тем, как взаимодействует освещение, рельеф и узор поверхности.

Или вот еще один пример, с глазами животных:


По мере формирования своей визуальной библиотеки и укрепления навыков, переходите к более сложным материалам. Исследуйте текстуры, которые демонстрируют неритмичный узор, и те, что сложно узнать без цвета, в черно-белом варианте.

Сохраняйте свои образцы текстур, складывайте их в отдельную папку. Пусть они будут Вашими наглядными пособиями. А также, возможностью напомнить себе, с помощью каких приемов рисования Вы достигли нужного результата.


Чтобы практика стала привычным делом, стоит найти для нее место среди значимых задач. У меня был период, когда я ежедневно рисовала по 1-2 образцу разных материалов. Это занимает немного времени, зато позволяет осваивать тему и понемножку увеличивать визуальную библиотеку.

Успехов!

 Копирование текста и/или иллюстраций из этой статьи в целях наполнения своего сайта или паблика запрещено. Это предупреждение для тех, кто ленится самостоятельно подумать над контентом и паразитирует пользуется тем, что создают другие 😀   Картина текстуры

, Стоковые Фотографии и Роялти-Фри Изображения текстуры картины

, Стоковые Фотографии и Роялти-Фри Изображения текстуры картины | Depositphotos®Красочные акварельные пятнаКрасочный абстрактный фон масляной живописиСиняя бумагаАкварельный фонКрупный план масляной краски абстрактный фон. Художественный текстурированный мазокАбстрактный фон картиныБумажный фонАбстрактная текстура бежевых и коричневых мазков масляной краскиПолный кадр из красочных акварельных пятен для фонаГуашевые краски, кисти и абстрактные красочные мазки на бумаге на белом фонеХудожественный фон с бежевыми и голубыми мазками масляной краскиКоричневый бумажный фонКоричневый бумажный фон фонМасляная живописьПодходит для фонов, фресок, стен, упаковки и оберточной бумагиВенецияАкварельная бумагаВинтажная бумагаСиняя текстура бумагиВид сверху на бумагу с японской росписью с разноцветными листьями на деревянном фоне, панорамный снимокЗеленая бумагаТекстура камняТекстура масляной живописиАбстрактный фон с серой масляной живописьюХудожник Наталья Бабкина, картина написана масляными красками .Абстракция масломГранж брызги краски фонСиние лошадиРозовая текстураВид сверху на бумагу с японской живописью с разноцветными листьями на деревянном фонеКрупный план светло-голубых и белых мазков масляной краскиАбстрактный фонТекстура тканиМасляная живопись цветы одуванчик, василек, маргаритка в полях. Цветочный фон Амстердам в Голландии, произведения искусства в стиле живописиСиний акварельный фонКрасочная абстрактная акриловая живописьСтарый винтажный фонХлопок цветочные ботанические цветы.Дикие весенние листья уайлдфлауэр изолированы. Набор акварельных фоновых иллюстраций. Акварельный рисунок моды акварель изолированы. Изолированный элемент иллюстрации хлопка. Удивительная Венеция — произведение искусства в стиле живописиКошкиАбстрактная фиолетовая и синяя акварельная живопись на белой бумагеКрасочная живопись Триумфальной арки в ПарижеМакиАкварельная текстура бумагиПроцесс покраски деревянных досокРыболовные лодки в гавани утромОкрашивание деревянной полки с помощью кистиЗеленый гинкго билоба с изолированными листьями на белом.Акварель гинкго билоба рисунок изолированных иллюстрация элемент. Винтаж абстрактный фон природыВенеция, мост РиальтоКрупный план синих мазков масляной краскойОкрашенный фонАбстрактная живопись фон. Современная настенная живопись маслом большого размера. Хаотичные мазки краски на холсте. Впечатление яркими красками. Шаблон для печати или дизайна плаката, приглашения, открытки и флаераИллюстрированный портрет красивой девушки | акварельБабочка мечтыПодсолнухиТропическая сцена — произведение искусства в стиле живописиВид сверху на живопись и пустые образцы возле цветных карандашей, изолированные на желтом фоне с голубыми и белыми мазками масляной краски Художник собирается рисовать Фон с бежевыми и коричневыми мазками масляной краскиЦветной акварельный фонЦветной жидкий фон искусства, контрастная смесь жидкие краски.Обои для рабочего стола абстрактная русалка Акварель гинкго билоба рисунок изолированный элемент иллюстрации. Акварельные кругиАбстрактный фон с бежевыми и голубыми мазками масляной краскиХудожественный фон с синими и серыми мазками масляной краски

Живопись текстуры PNG изображений | Векторные и PSD файлы

  • ручная роспись текстурированный эффект молнии

    1200 * 1200

  • креативная ручная роспись текстуры звездное небо узор

    1200 * 1200

  • золотой и черной краской эффект текстуры кисти

    1200 * 1200

  • белая краска масляная живопись текстура кисть

    1200 * 1200

  • ручная роспись текстурированные фиолетовые блики молниеносное облако

    1200 * 1200

  • синий творческий ручная роспись текстурированная защита от вирусов

    1200 * 1200

  • ручная роспись текстуры световой эффект бабочка

    1200 * 1200

  • ручная роспись текстурированные пасхальные яйца

    1200 * 1200

  • ручная роспись текстурированные черные облака

    1200 * 1200

  • Всемирный день аудиовизуальных материалов наследие ручная роспись текстуры проектор плеер

    1200 * 1200

  • ручная роспись текстуры результатов теста на беременность

    1200 * 1200

  • ручная роспись текстуры результатов теста на беременность

    1200 * 1200

  • ручная роспись текстуры материал трехмерной рождественской этикетки

    1200 * 1200

  • ручная роспись текстуры творческий всплеск шампанского

    1200 * 1200

  • белая трехмерная кисть текстуры краски

    1200 * 1200

  • творческая ручная роспись текстуры синяя граница

    1200 * 1200

  • ручная роспись текстуры креативная иллюстрация креативный дизайн деревянный знак

    1200 * 1200

  • ручная роспись текстуры облачное небо черные облака

    1200 * 1200

  • желтый мазок кисти

    1500 * 1500

  • абстрактная ручная роспись текс фон кистью tured чернил с геометрической рамкой, изолированные штрихи с сухими шероховатыми краями

    2000 * 2000

  • ручная роспись текстуры вокруг флага перу

    1200 * 1200

  • детский день ручная роспись текстуры дети запускают воздушных змеев

    2880 * 1620

  • синяя и зеленая освежающая краска всплеск спрей краска текстура текстура png

    2000 * 2000

  • старинная картина маслом текстурированная цветочная заливка

    2000 * 2000

  • ручная роспись текстурированная синяя гортензия

    1200 * 1200

  • королевский красный фон

    1200 * 1200

  • краска текстура радуга фон

    2500 * 2500

  • масляная живопись густая текстура текстуры мазки кистью png художественное оформление

    3000 * 3000

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

    192 0 * 2000

  • акварель нарисовал текстуру фона 0712

    800 * 800

  • масляной живописи текстуры мазок в стиле радуги

    2000 * 2000

  • Рисование текстур кожи · 3dtotal · Learn | Создать

    В этом уроке вы узнаете несколько советов и приемов по рисованию реалистичных текстур кожи.Эти методы можно применять к текстурам для 3D-моделирования, а также к вашим иллюстрациям. Вместо того, чтобы описывать каждый шаг, я дам краткий обзор трех типов кожи, о которых я собираюсь рассказать, а затем выделю некоторые из использованных мной методов, которые, по моему мнению, являются ключевыми областями на каждом этапе.

    Я использую последнюю версию Photoshop, но вы сможете применить эти методы и техники в любом другом программном обеспечении для цифровой живописи. Также важно иметь какой-нибудь планшет для рисования; Я использую планшет Wacom.Если вы используете Photoshop, стоит упомянуть, что в этом уроке я не использую никаких пользовательских кистей. На самом деле я в основном использую устаревший набор кистей, который включает в себя базовые кисти для мела и кисти для шума. Обратите внимание, что каждый из типов кожи в этом уроке создается поверх последнего, а не с нуля, поэтому кожа среднего возраста использует молодую кожу в качестве основы, а старая кожа использует кожу среднего возраста в качестве основы.

    Раскрашиваем кожу в разном возрасте!

    Цвета и оттенки кожи

    Существуют сотни и тысячи вариантов тона кожи, потому что каждый из нас индивидуален.Точно определить, какие палитры составляют кожу, очень сложно, и я бы никогда не стал утверждать, что знаю или понимаю их все, сказав, однако, что это пара цветовых палитр, к которым я склонен тяготеть в своих работах, которые, кажется, хорошо подходят для кожи. .

    Если вы ищете какие-то эталоны для оттенков кожи, недавно Pantone реализовал интересный проект, в котором они попытались записать все возможные оттенки кожи, которые только можно вообразить. Это довольно интересно и определенно помогает при поиске цветовой палитры, подходящей для кожи, которую вы ищете.Вы можете узнать больше об этом на их сайте.

    Некоторые цветовые палитры я люблю использовать для оттенков кожи в моих собственных работах. Проект кожи Pantone

    Молодая кожа — обзор

    Глядя на молодую кожу, можно заметить несколько вещей — она ​​обычно довольно гладкая и имеет ровный цвет. Как правило, нет видимых пор или морщин, а кожа имеет лишь очень легкую текстуру.Молодая кожа также не бывает жирной, поскольку наша кожа начинает вырабатывать много масла только после того, как мы достигаем половой зрелости. Это означает, что обычно на коже не бывает резких бликов, а свет обычно довольно рассеян, так как не отражается от кожи.

    Молодая кожа — вероятно, то, что вы ожидаете увидеть у детей до подросткового возраста.

    Молодая кожа — добавление разнообразия

    Так как кожа, даже детская, никогда не бывает на 100% гладкой, я хочу добавить к коже несколько очень тонких вариаций, не делая ее пятнистой или состарившейся.Эти вариации помогают придать коже гораздо более естественное ощущение, поскольку рисование чего-то слишком гладкого может в конечном итоге выглядеть как пластик. Я сделал это, используя простую кисть мелом, нарисовав немного шума и установив этот слой на Darker Color в моем Layer Blend Modes с непрозрачностью, установленной на 12%.

    Всегда добавляйте немного вариаций, иначе ваша кожа может выглядеть как пластик

    Молодая кожа — создание текстуры

    Вся кожа слегка текстурирована, даже молодая кожа! Здесь я создаю текстуру для добавления поверх нарисованной мной кожи, создавая слой с серым цветом заливки.Затем я применяю фильтр, доступ к которому можно получить, выбрав «Фильтры»> «Галерея фильтров» (Alt + Ctrl + F, если вы используете ПК) . Я выбираю Texturizer с выбранной текстурой Sandstone. В результате получилась приятная текстура с мягким шумом, которую теперь можно использовать.

    Вся кожа имеет легкую текстуру

    Молодая кожа — нанесение текстуры

    На этом этапе я применяю только что созданную текстуру кожи, просто установив режим наложения слоя на Мягкий свет и непрозрачность на 13%.13% — это немного, но вы заметите огромную разницу, если будете включать и выключать слой!

    Кожа среднего возраста — обзор

    К двадцати годам наша кожа сильно изменилась. На этом этапе у многих из нас есть пятна на коже, рубцы от прыщей, может быть, пара солнечных пятен или веснушек. Когда нам за тридцать, вы тоже можете добавить пару тонких морщинок. Кожа на этом этапе, вероятно, самая жирная.Масло означает, что свет, падающий на кожу, часто создает резкие блики, особенно в таких областях, как нос или лоб. То, как свет отражается от масла, также подчеркивает текстуру кожи и, как правило, приводит к тому, что кожа выглядит так, как будто у нее более глубокие поры. Если вы знаете что-нибудь о макияже, вы знаете, что обычно наносят тональную пудру на лицо, чтобы уменьшить жирность и такие блики, что неизбежно приводит к тому, что кожа выглядит намного моложе и гладкой.

    Кожа среднего возраста — пятна

    Большая часть кожи на этом этапе не без пятен, будь то небольшие неровности под кожей, поры или просто общие недостатки. Я добавляю небольшие неровности, закрашивая пару крошечных точек, добавляя к ним небольшой скос и тиснение в моих стилях слоя, а затем устанавливаю режим наложения слоя на Linear Dodge (добавить) с непрозрачностью 60%.

    Пятна есть у всех, даже у тебя!

    Кожа среднего возраста — текстура!

    Как и прежде, вся кожа имеет текстуру, и по мере взросления количество текстур и несовершенств увеличивается.После того, как я добавил несколько пятен, веснушек и пару тонких морщинок, я дублирую всех своих слоев и объединяю их в один слой. Теперь я могу взять этот новый объединенный слой и применить к нему фильтр «Пластиковая пленка». Я делаю это, выбирая Filters> Filter Gallery> Plastic Wrap . Текстура, которую вы создаете, будет выглядеть довольно грубо, но она сотворит чудеса с текстурой вашей кожи.

    Больше текстуры с помощью фильтров!

    Кожа среднего возраста — масла

    Теперь я беру Plastic Wraplayer, который я создал на последнем шаге, и устанавливаю режим наложения слоя на Soft Light . Вы заметите, что я сохраняю непрозрачность этого слоя на 100%. Это потому, что я хочу, чтобы кожа казалась более жирной в тех областях, где на нее падает свет. Чтобы удалить текстуру с остальной части кожи, я просто добавляю маску слоя на этот слой и закрашиваю области, где я хочу уменьшить текстуру, с помощью любой мягкой кисти.

    Старая кожа — обзор

    Раскрашивать старую кожу становится намного интереснее! Когда мы становимся старше, наша кожа становится тоньше, иногда даже немного напоминает папиросную бумагу! Это означает, что кожа становится более прозрачной, что позволяет легче увидеть кровеносные сосуды, синяки, пятна и любые другие недостатки.У пожилых людей кожа менее жирная, поэтому мы видим менее резкие блики и более рассеянный свет.

    Из-за того, что комбинация кожи является более прозрачной и менее блестящей, мы начинаем видеть добавление голубых, пурпурных и желтых тонов к оттенкам кожи, часто это становится очевидным из тонов, которые фактически видны под поверхностью кожи. На большей части старой кожи также будут выцветшие пятна, новые солнечные пятна и пятна, видимые поры, неравномерная окраска и множество морщин.

    Старая кожа — цвета

    Чтобы дать вам представление о количестве дополнительных цветов, которые я добавляю на этом этапе, я установил для всех своих цветовых слоев полную непрозрачность. Обратите внимание, сколько синего и желтого я добавляю к коже, а также сколько более темных областей я добавляю. Для большинства этих цветовых слоев установлена ​​различная непрозрачность с помощью режима наложения слоев, установленного на Soft Light или Overlay . Вам придется поиграть с цветами и непрозрачностью и использовать то, что лучше всего подходит для создаваемой вами кожи.

    Старая кожа — морщины

    При попытке создать реалистичные морщинки важно правильно выбрать направление. Морщины никогда не бывают случайными, они повторяют контуры нашей кожи, они появляются более плотно на участках, которые чаще всего складываются, и различаются по глубине. Но самое главное, что я обнаружил, это то, что морщины появляются в виде заштрихованных ромбов. Обычно это более глубокая морщина, от которой отходят более мелкие, образуя ромбовидную форму.

    Здесь я использую фиолетовый, чтобы показать морщины, которые будут самыми глубокими / самыми большими, оранжевый для вторичных морщин и синий для всех крошечных морщин между ними.

    Старая кожа — вариация

    Я держу каждый из этих «типов» морщин на отдельных слоях. Важно отметить, что я устанавливаю непрозрачность заливки слоев на 0. По сути, это делает все содержимое моего слоя прозрачным, но, в отличие от изменения непрозрачности слоя, это не влияет ни на какие стили слоя или эффекты, которые я добавляю к слой.Это действительно ключ к созданию эффекта, который мне нужен.

    К каждому слою я применю стиль слоя, установленный на Bevel & Emboss. Из моих настроек вы увидите, что я установил режим наложения в фактических настройках стиля слоя, а не в режимах слоя. Это связано с тем, что установка режима наложения в настройках слоя применит его только к видимому содержимому слоя, а наше — невидимому. Вы можете обнаружить, что вам нужно отрегулировать глубину для различных типов морщин, чтобы найти лучшую комбинацию, но в целом это должно дать вам хороший результат.

    .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *