Что такое shader в макияже

Что такое shader в макияже thumbnail

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

Правила выбора кистей для макияжа глаз:
1) Перед покупкой той или иной кисти лучше всего спросить у консультанта для чего кисть предназначена производителем. Возможно, в последствии вы и будите ей делать что-либо другое, но все же покупать ее стоит руководствуясь именно ее предназначением, а не догадками.
2) Если вы не умеете сами определять качество кисти, то лучше всего покупать кисти надежных марок (MAC, Bobby Brown, Make Up For Ever и другие). Больше шансов, что вы купите хорошую и качественную кисть, которая прослужит вам долго.
3) Чтобы не тратить лишние деньги на кисти, которые вы возможно и не будите использовать. Нужно просто посмотреть на свой повседневный макияж и по тому какой он у вас, понять нужна ли вам та или иная кисть. Например, если не подводите глаза или делаете это только по праздникам, то первоочередной покупкой не должна стать кисть для подводки.

Назначения кистей я решила разобрать на примере Mac. Если в скобках дан символ (Mac Pro) – это значит, что кисть продается в профессиональных магазинах, а не в широком доступе.
Под катом фото кисти, ее номер и описание.

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

205 Mascara Fan Brush (Mac Pro)
Насколько я поняла, то эта кисть сугубо профессиональная, хотя бы потому, что продается только в Mac Pro. Хотя по назначению и функциям точно будет использоваться не каждой из нас. Кисть, как я поняла, предназначена, чтобы снимать излишки туши и наносить базу и закрепитель для нее же. В общем по всей видимости визажисты используют ее, что при крупном плане глаз ресницы выглядели более натурально, словно тушь и не наносили.

208 Angled Brow Brush
Применяется во время прокрашивания бровей – для того, чтобы цвет был нанесен равномерно. Так же кисть идеально подходит для того, чтобы подводить глаза тенями и для прочих прямых линий макияжа. Подходит как для пудровых основ (тени например), так и для кремовых. Ей же можно наносить и гелевую подводку.

209 Eyeliner Brush
Кисточка для нанесения подводки, не самая тонкая кисть у Mac, скорее подойдет для более насыщенной линии. При помощи этой кисти можно нанести, как жидкую подводку, так гелевую, при желании думаю, что можно намочить кисть и провести стрелку тенями для век.

210 Precise Eye Liner Brush
По мнениям прочитанным в интернете – эта кисть, в отличие от 209, дает более четкий и тонкий контур. Может использоваться для жидкой, кремовой и сухой подводки.

212 Flat Definer Brush
Широкая кисть, которую удобно применять для нанесения большого количества цвета. Хорошо делать острые формы. Судя по отзывам, многие наловчились подводить ей глаза, это получается с ней заметно быстрее (конечно, если приспособиться). Подходит для нанесения пудровых, жидких и кремовых текстур.

213 Fluff Brush
Более маленькая, чем похожая на нее 239. Применяется для нанесения теней. Фанатки этой кисти отмечают, что ей очень удобно наносить тени под бровь, т.к. она более маленькая.

214 Short Shader Brush
Кисть с коротким ворсом идеальна для создания smoky eyes, т.к. позволяет нанести слегка растушеванный контур не пачкая при этом все веко. Ей так же удобно наносить небольшие цветовые блики из-за ее размера.

217 Blending Brush
Кисть подходит для нанесения, смешивания и растушевки цветных и кремовых текстур. Ну все-таки чаще всего ее используют для растушевки, она идеальна для создания мягких и размытых контуров.

219 Pencil Brush
Идеальная кисть для создания smokey eyes, т.к. помогает точно и плавно растушевать контуры, при этом не перемазав все веко, так же используется для нанесения теней для более детального прокрашивания.

222 Tapered Blending Brush
Кисть подходит для нанесения, очерчивания и обводки теней, пигментов. Сделана из натуральных материалов.

224 Tapered Blending Brush
При помощи этой кисти удобно растушевывать и смешивать тени. Особенно удобно прокрашивать и очерчивать ей верхнюю складку века. Этой кистью удобно наносить яркие цвета, т.к. ее форма не дает возможно переборщить с цветом.

226 Small Tapered Blending Brush (Mac Pro)
Так же как и предыдущая облегчает работу со складкой века, но на мой взгляд более удобна для этих целей, т.к. имеет более короткий ворс и более тонкая и маленькая.

227 Large Fluff Brush
Большая кисть, очень универсальная, т.к. может использоваться и на лице (об этом потом поговорим). Применяется для нанесения теней. Так же ей очень удобно наносить верхний цвет.

228 Mini Shader Brush
Идеальна для нанесения базы под тени. Так же подходит для нанесения кремовых теней.

Читайте также:  Макияж как наносить блески на веко

231 Small Shader Brush
Кисть подходит для нанесения как сухих, так и кремовых теней. Хорошо смешивает и растушевывает, так же подходит для тщательного смешивания теней (последнее скорее для профессионалов).

239 Eye Shading Brush
Хорошо подходит для нанесения интенсивного цвета, так же может применяться так кремовых текстур (база, кремовые тени).

242 Shader Brush
Подходит для прорисовывания округлых форм. Применяется для нанесения теней сухих и кремовых, баз, консилера.

249 Large Shader Brush
Большая кисть для нанесения теней сухих и кремовых. Кисть с искусственными волокнами.

252 Large Shader Brush
Большая кисть, которая предназначена для нанесения теней, базы под тени. Позволяет нанести насыщенный цвет.

263 Small Angle Brush
Используется, как и 208, но она более маленькая, т.е. она подойдет для более тонких линий. Отличается от 266 тем, что сделана из искусственного ворса, больше отличий я не нашла, хотя почти по всему Интернету искала.

266 Small Angle Brush
Используется так же как и 208, но в отличие от нее она более маленькая и подойдет для прорисовки более тонких линий.

275 Medium Angled Shading Brush
Скошенная кисть для нанесения и растушевки теней. Наверное, в особенности ей будет удобно пользоваться тем, кто уже успел научится обращаться со скошенной кистью для румян.

Источник

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

Что такое shader в макияже

Моделирование 

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

Что такое shader в макияже

Стадии моделирования и детализации 

Далее я создаю UV-равертку без наложения. Каждый раз, добавляя новый участок бюста, я пользовался функцией Project All в ZBrush для того, что бы я мог переносить полученную фигуру в новую полигональную модель. Эта новая полигональная модель выглядит идентично, однако обладает хорошей конфигурацией и UV-раверткой. Я проделывал эти этапы для каждой детали модели: очистить топологию, сделать UV-равертку, перенести на новую полигональную модель.

Что такое shader в макияже

Создание UV и перенос модели

Что такое shader в макияже

Детали модели

Моделирование кожи

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

Что такое shader в макияже

Структура пор и морщинок

Что такое shader в макияже

Конечный вид модели бюста

Параметры окружения

Для создания правильного окружения нам нужно определить куда будет падать тень, источник света и расположения камеры – все эти элементы должны работать как одна система. Если мы правильно настроим источник света и камеру, то мы значительно облегчим процесс настройки теней. Для пробного рендеринга я установил источник света и камеру под настройки тени, конечный вариант может быть другим. Я расположил свет таким образом, что бы подчеркнуть рассеивание. Обычно я делаю фронтальный источник света с наклоном в 45 градусов и еще один на заднем плане, что бы подчеркнуть рассеивание в области ушей. Параметры для V-Ray камеры точно такие же, как и для обычной, Баланс Белого – нейтральный (я старался избежать искажения цветов). Я так же добавил HDRi карту для верхнего освещения и использовал ее в качестве карты окружающей среды. И я еще раз убедился в том, что модель, импортированная из ZBrush составлена верно, так как тени в VRayFastSSS2 очень чувствительны к размеру.

Что такое shader в макияже

Параметры сцены в 3dsmax

Параметры для наложения теней на кожу – часть 1

Наложение теней на кожу это сложный процесс, поэтому я предпочитаю разбить его на несколько частей или подпунктов. Я начал с подповерхностного рассеивания (SSS) без каких-либо бликов. Текстуры влияют на тени (цвет, насыщенность, яркость) на ранних стадиях я вместо текстур использую точки VRayColor. Это намного упрощает задачу и в будущем эти точки станут основой для текстур. Затем я стараюсь найти радиус рассеивания, как правило, величина оптимального находится где-то между 1.2 и 2 cм.

Что такое shader в макияже

Различные радиусы рассеивания для подповерхностного рассеивания

Cпомощью VRayMtl Я добавил единичное рассеивание (SS) к структуре шейдера, связав серый цвет со слотом Diffuse (цвет рассеивания на освещённых участках). Затем я объединил шейдеры при помощи VRayBlendMtl, при этом задав вычитания SS (серого цвета) из SSS. Разница между SSSи SSSвместе с SSбудет более заметной, когда я использую текстуры вместо VRayColor.

Что такое shader в макияже

Добавление единичного рассеивания для шейдера структуры кожи

Так как красный цвет рассеивается намного глубже, чем зеленый и синий я решил использовать это для наложения теней на кожу. Я разделил SSS цвет на красный, зеленый и синий (RGB) каналы, используя ColorCorrection. Каждый канал имеет свой VRayFastSSS2 шейдер с индивидуальным радиусом рассеивания. Все это было объединено с помощью VRayBlendMtl (Additive (shellac) режим должен быть включен!). В итоге у меня получилось многослойное подповерхностное рассеивание и плавный переход градиента (сравните единичное рассеивание и многослойное).

Что такое shader в макияже

Многослойное подповерхностное рассеивание  

Затем я добавил основные и вторичные блики. Все шейдеры связаны с VRayBlendMtl (Additive (shellac) режим должен быть включен!). Теперь можно приступить к процессу наложения текстур.

Читайте также:  Синий цвет в дневном макияже

Что такое shader в макияже

Добавление основных и вторичных бликов на текстуру кожи

Текстуры

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

Что такое shader в макияже

Функция PolyPaint в ZBrush 

Что такое shader в макияже

Добавляем разнообразие цвета в PolyPaint

Для того что бы из обычной карты (Normal map) получить cavity map я воспользовался в Photoshop функцией xNormal>Normals2Cavity в меню фильтры. Затем взял ее за основу для Glossiness, Specular, Single Scattering карт.

Что такое shader в макияже

Конвертирование текстур. Из обычной карты в cavity.

Простой способ создания текстур для радиуса рассеивания:

  • Инвертировать нормали модели
  • Соединить карту VRayDirt с одним из слотов Self-illumination шейдера VRayMtl
  • «Запекаем» текстуру (texture baking) (я использовал VRayCompleteMap)
  • Инвертируем полученную текстуру

(Как вариант, вы можете поменять местами черный и белый цвета в VRayDirt, тогда вам не придется выполнять 4й пункт)

Что такое shader в макияже

Простой способ создания текстур для радиуса рассеивания

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

Что такое shader в макияже

Текстуры для шейдера кожи

Параметры для наложения теней на кожу – часть 2

Вернемся к параметрам шейдера. Это финальная структура шейдера кожи и как вы могли уже заметить, VRayColor был заменен готовыми текстурами. Я так же поработал с микро-геометрией фигуры и сделал плавные текстуры для отдельных участков головы. Для каждой текстуры я установил определенное количество копий. Каждый участок с разными текстурами пор выделен маской – для одной текстуры у меня было три маски. Каждая маска располагается на своем канале (R, G, и B), который отражен на изображении масок соответственно красным, зелёным и синими цветами. (На самом деле у вас может быть и 4 маски для каждого файла (R, G, B, и Альфа канал)). Спросите, чем это может быть полезно? Благодаря этому вы можете четко видеть границы каждой маски и тем самым избежать пробелов. Я извлек каждую маску из файла с помощью ColorCorrection в 3ds Max. Затем я объединил обычную карту (Normal map) головы с микрогеометрической картой. Я повторил все те же шаги как для Specular так и для Glossiness карт.

Что такое shader в макияже

Использованные текстуры для шейдера кожи

Что такое shader в макияже

Наглядная схема структуры мультислойного шейдера кожи

Золотая маска

Для золотой маски я использовал 3 шейдера — Base, Glossy с царапинами, и Dirt. Я так же использовал маску, что бы ограничить влияние последних двух шейдеров. В этом случае все шейдеры так же соединены с VRayBlendMtl (Additive (shellac) режим должен быть включен!).

Что такое shader в макияже

Схема структуры шейдера маски

Что такое shader в макияже

Три слоя шейдера маски

Волосы

Я использовал стандартный генератор волос в 3ds Max, модификатор волос и шерсти. Я разделил волосы на отдельные пряди. Косички и хвостики это уже другая история. В качество основы для генератора волос я использовал сетку.

  • Сперва я сделал направляющие и сплайны
  • Затем я добавил сферы в качестве поперечного сечения для сплайнов
  • После чего я с помощью сплайнов обернул косу вокруг хвостика. Я использовал модификатор Path Deform
  • Выделил все края витков…
  • … и создал новые сплайны
  • И наконец, для этих сплайнов применил генератор волос и шерсти

Что такое shader в макияже

Процесс создания волос

Для ресниц я использовал дополнительные (тем не менее, временные) формы. В 3ds Max есть очень полезный инструмент Graphite. С помощью функции Draw On: Surface я выделил все фигуры, где будут находиться ресницы. В той же категории (произвольная форма) я подобрал сплайны. Теперь можно создать основу для ресниц, после чего применить генератор волос. Точно таким же способом я сделал брови.

Что такое shader в макияже

Создание ресниц и бровей

Рендеринг и готовый результат

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

Что такое shader в макияже

Корректировка цвета и добавление финальных штрихов

Что такое shader в макияже

Готовая работа

Источник

Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Сегодня хочется поговорить про шейдеры. Умение писать шейдеры (и в целом работать с рендером) очень важно при разработке под мобильные платформы или AR/VR, если хочется добиться крутой графики. Многие разработчики считают, что шейдеры — это магия. Что по ним мало хорошей информации, и что чтобы их писать нужно иметь, как мимимум, звание кандидата наук. Да, разработка шейдеров по своим принципам сильно отличается от клиентской разработки. Но основное понимать базовые принципы работы шейдеров, а так же знать их суть, чтобы в этом не было ничего магического и поиск информации по этой теме был простой задачей. Данная серия статей рассчитана на новичков, так что если вы разбираетесь в программировании шейдеров, данная серия вам не будет интересна. Всем же кто хочет разобраться в этой теме — добро пожаловать под кат!

Это вводная статья в которой я расскажу общие принципы написания шейдеров. Если тема будет интересна, то мы разберём уже подробнее в отдельных статьях: вершинные шейдеры, геометрические шейдеры, фрагментные/пиксельные шейдеры, трипланарные шейдеры, скринспейс эффекты и компьют шейдеры (OpenCL, СUDA и т.п.). И в целом всю ту магию, которую можно делать на GPU. Разбираться это будет в контексте стандартного рендер пайплайна Unity. Так LWRP и HDRP мне пока кажутся немного сыроватыми.

Что такое шейдер?

Источник: www.shadertoy.com/view/MsGSRd

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

Читайте также:  Макияж с накладными ресницами аниме

Для понимания того, как работают шейдеры нужно рассказать, что такое графический конвейер (graphic pipeline). Очень часто про эту тему говорят довольно сложными словами, но мы это немного упростим для понимания. Возьмём на примере OpenGL. В этом плане мне очень нравится эта картинка.

Если опустить детали связанные с освещением и т.п. То в целом с точки написания тех же Unlit шейдеров на hlsl суть такова. У нас есть в шейдере

#pragma vertex vert
#pragma fragment frag

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

Структуры которые мы описываем в шейдере определяют какие данные мы будем забирать из меша и после обработки вертексным шейдером, которые висят на нашем MeshRenderer и MeshFilter объекте.

struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};

struct v2f
{
float2 uv : TEXCOORD0;
UNITY_FOG_COORDS(1)
float4 vertex : SV_POSITION;
};

Дальше вертексный шейдер вычисляет получив на вход данные appdata и отдаёт результат в виде структуры v2f, которая дальнейшем пойдёт в фрагментный шейдер. Который в свою очередь уже рассчитает цвет пикселя. Так как информация v2f пишется только в вершины (которых меньше, чем пикселей), данные в фрагментной части интерполируются. Всё это можно представить как то, что vert считается в каждом вертексе независимо. Потом результат передаётся в фрагментную часть, где frag для каждого пикселя считается так же независимо. Так как вычисления производятся параллельно, в данных частях нет никакой информации о соседях (если не передавать её как-то хитро).

Более детально все нюансы, а так же множество примеров описаны в документации Unity docs.unity3d.com/Manual/SL-Reference.html

Языки программирования шейдеров

Источник: www.shadertoy.com/view/WsS3Dc

О чём ещё важно не забывать. О том, что шейдеры сейчас пишутся на трёх языках программирования, которые не имеют никакого отношения к юнити. CG, GLSL и HLSL. Самый простой способ писать шейдеры в юнити — это HLSL, так как именно на нём пишутся файлы шейдеров с разрешением .shader. И если по шейдерам в контексте юнити информации сравнительно мало, то информации отдельно по HLSL, GLSL и CG — просто тонны. В документации к шейдерам описано, каким образом написанное на этих языках перенести в Unity. Поэтому получается что почти вся информация в общем про эти языки программирования валидна. Все три языка очень сильно похожи на язык С, но у каждого свои особенности.

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

Почему if в шейдерах — это плохо?

Источник: www.shadertoy.com/view/Md3cWr

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

Основная идея графических процессоров — это максимальная параллельность вычислений. Тут нужно ввести такое понятие, как “волновой фронт”. По сути оно довольно простое, волновой фронт — это группа шейдеров выполняющая одну и туже последовательность операции. То есть с точки зрения гпу самый лучший вариант, когда в одно и тоже время выполняются одни и те же инструкции. Единственно различие в выполнении — это входные данные. Проблема ветвления в том, что может случиться ситуация, когда в одной группе шейдеров, шейдеры должны вызывать разные операции. Что в свою очередь приводит к созданию нового волнового фронта, копированию в него данных и т.п. А это очень дорого.

Там есть нюансы и исключения, но для того чтобы спокойно писать if, вы должны понимать, как он себя поведёт на целевой версии графического апи. Так как тот же самый OpenGL ES 2 или DX11 в этом плане сильно отличаются.

Зачем мне это знать, ведь есть нодовые редакторы?

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

Полезные ресурсы для изучения

Источник: www.shadertoy.com/view/4tlcWj

С точки зрения изучения шейдерного программирования хорошим упражнением является переписывание шейдеров с www.shadertoy.com или glslsandbox.com. Кроме того существует крутой профиль специалиста из Unity, где можно посмотреть много интересного github.com/keijiro

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

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

Все эффекты в статье — это запись эффектов шейдеров с shadertoy.

Источник