Как сделать emissive map в фотошопе

Обновлено: 07.07.2024

В общем, моделирую в blender, столкнулся с такими понятиями как "UV, карта нормалей, запекание текстур и т. п." С UV-развёрткой ещё более менее понятно, UV-развёртку можно "разукрасить", а затем наложить на модель. С этим я работал. Но эти понятия "карты нормалей, какие-то ещё карты, запекание и т. п." - они мне непонятны. Вообще сколько их этих карт? В одних источниках эти названия карт на английском, в других на русском из-за этого у меня создалось впечатление, что этих карт бессчётное количество. И отличаются ли эти карты в зависимости от 3D пакета? Может в 3D MAX свои карты, а в Blender свои? Но мне нужна информация именно про Blender.

Пожалуйста, максимально развёрнуто и понятно))))))

Простой 5 комментариев

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

p. s. Я отблагодарю вас, когда стану миллиардером.

Egor Padalka, "Архитектор - занимаюсь проектированием зданий, визуализацией, сложным 3d моделированием.
В компьютерной графике с 1997г." - Кто, если не ВЫ? Egor Padalka, Обязательно))) Ща допилю проект, заработаю триллион долларов, а если повезёт и квадраллион и обязательно закину вам на почту.

Для какого игрового движка контент создавать будешь? (Или не под движок?)
(для игр одно - это рендеринг в реальном времени и тут одни требования, для др. систем рендеринга другие требования)

Тебе надо разобраться с основными понятиями комп. графики. (модель\меш, полигон, вертекс, edge, топология, ретопология, нормали, RGBA, каналы, маски, альфа и др)
А вот когда с ними разберешься, можно посмотреть в сторону PBR (Physically-Based Rendering)(скорее всего контент "под него" будешь пилить)

"UV-развёртку можно "разукрасить", а затем наложить на модель."
Всё не так, нужно разукрасить не UV-развёртку, а подготовить набор текстурных карт для наложения на модель.
Никому ведь модель только с одной диффузной текстурой не нужна

UV-map это проекция всех поверхностей 3d модели на плоскость (ведь сами текстуры то плоские)
Вспомни бумажные модели (например куба)
Вот такая развертка нужна чтобы построить куб из бумаги

eea39eb602f327149c839ec5d56302b4.jpg

А чтобы получить UV-развёртку куба, нужно не собрать куб, а разрезать и развернуть.

Запекание (запекать можно много какие карты - Normal Map, AO и др)

Normal Map Baking
Вот есть у тебя модель ботинка (полигонов очень много) и тебе нужно перенести детализацию подошвы с этой самой модели ботинка, на более простую модель ботинка. (кто у персонажа подошвы ботинок разглядывает? Там ведь много полигонов не нужно)
Ты запекаешь карту нормалей (Normal Map) и на ней создается изображение подошвы. (Информация перешла с высокополигональной модели на карту нормалей) затем ты накладываешь её на простую модель ботинка и вуаля!
На почти плоской подошве появился псевдо рельеф
Освещение в движке реагирует на эту самую Normal Map и создает видимость рельефа, для наблюдателя. Смотришь и кажется что подошва богата на детали!
И так поступают со всей моделью.

"И отличаются ли эти карты в зависимости от 3D пакета? Может в 3D MAX свои карты, а в Blender свои?" - нет ничем не отличаются. Все подобные крупные 3d пакеты похожи и не уступают друг другу.
Но ты должен понимать что существуют специальное ПО для работы с текстурами. (MARI, Substance Painter и мн. д)
(обойтись естественно можно и без них, но новичку будет одинаково сложно что с ними, что без них)

"В одних источниках эти названия карт на английском, в других на русском" (там всё намного веселей!)
Введи в поисковик "Texture map terminology confusion"

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

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

5a0ed3d153d39855990575.jpg

(именно в этом редакторе там где написано Bump map пихают Normal map)

Вот карты для "старого метода" (Для PBR используются некоторые другие карты и "парочка" карт отсюда - например Normal map)

Diffuse maps - это просто текстура цвета объекта (без бликов и проч)
Normal map - уже написал про неё (псевдо рельеф)
Specular map – влияет на способность отражения материала (карта бликов)
Glossiness\gloss map - эта текстура отвечает насколько размыты будут отражения
Ambient occlusion map\AO map - эта текстура создаёт мягкое затенение модели (прямо на неё не направлен источник света)

5a0e671082a59675942102.jpg

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

Текстурных карт очень много и про остальные нет смысла писать. (Про PBR тем более)

"Но мне нужна информация именно про Blender"
Тысячи видео на многих языках мира, сотни страниц из статей и книг к твоим услугам!
(Чтобы видео смотреть и понимать логику работы в программе, не нужно знать английский\японский\хинди - я например смотрел уроки на итальянском! И иногда слышал знакомые слова)
Это касается не только блендера.

p.s
Помни о правиле 80\20 (80% практика, 20% теория) если наоборот значит всё будет плохо. Утонешь в теории (ты не знаешь как к ней правильно подступиться)

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

Еще немного о текстурах и PBR . Рендер системы появились давно - V-Ray имеет уже почтенный возраст. Первая бета-версия рендера V-Ray появилась в далеком 2000 году.

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

Рендер движки для продакшена, теперь тесно "сотрудничают" с реал-тайм движками и наоборот. PBR это попытка привести всю CG отрасль к определенным стандартам и некой универсальности, что бы люди не испытывали "боль" при совместной работе в разном софте и рендер системах.

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

В статье про PBR текстуры я упоминал следующие карты: Diffuse, Specular, Metalness, Glossy, Roughness, Opacity, Normal, Height, Ambient occlusion, Cavity, Emissive maps. Есть еще ряд текстурных, карт, которые не фигурировали в этой статье, поэтому я решил сделать обзор всех возможных текстур, которые можно, так или иначе, использовать в стандартном шейдере VRayMtl и разобрать их по слотам подключения.

Слот Diffuse

Слот Diffuse - сюда можно\нужно подключать карты имеющие в своем названии - Albedo, Color (Colour), Diffuse, Base. Иногда эти определения могут быть сокращены до Diff, Col, Alb.

Если в текстурном сете есть карты Cavity и Ambient Oclusion , то их можно использовать следующим образом. В таблице я отобразил возможный метод подключение через стандартную ноду Composite . Подключать эту ноду, которую я назвал Extended Diffuse , так же к слоту Diffuse , вместо простой диффузной карты.

Отличие текстурных карт Cavity и Ambient Oclusion состоит в том, что Cavity "работает" на мелкую детализацию - трещинки, морщинки, углубления и прочие дефекты поверхности, а Ambient Oclusion работает на выявление и подчеркивания объема у небольших деталей, которые при расчете GI могут "потеряться" в общем объеме. Обе эти карты можно использовать одновременно или по отдельности, замешав их с основной диффузной картой через ноду Composite в режиме Multiply , а контрастность контролировать через непрозрачность слоя.

Слот Reflect

Сюда подключаем карты Specular или Reflect . Если работа ведется в Metalness WorkFlow , то Reflect должен быть просто белым. Если вы используете Specular WorkFlow , то подключаемая карта может будет серой для неметаллов, так и цветной для металлов. Подробней читать здесь - Что такое PBR? Часть V

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

Слот Refract

В этот слот можно подключить карты с названиями Refract, Transmission, Transmittance, Translucency, Scatter Radius. Вне зависимости от названия, эти карты определяют прозрачность поверхности. Белый цвет это полная прозрачность, черный - это непрозрачный материал.

Карты Translucency и Scatter Radius более актуальны для использования в VrayFastSSS2 и других аналогичных решениях, но и стандартный шейдер VRayMtl поддерживает упрощенный режим SSS , поэтому ничего плохого не случится если вы возьмете в "оборот" и эти карты.

Слот Bump

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

"Синенькие" карты - Normal Map подключаются исключительно через ноду VRayNormalMap . Данная нода поддерживает так же подключение и обычной Bump карты, поэтому в одном шейдере можно совместить несколько рельефных решений.

Если вы производите какие-то дополнительные манипуляции с Bump картой, например, её можно смешать с Cavity картой в режиме Multiply или производите еще какие-то манипуляции, то следует данные решения подключать к слоту Bump , через ноду VRayColor2Bump , так как в некоторых случаях шейдер может не "прочитать" композитные решения.

В целом я рекомендую все процедурные карты и растровые карты, после корректирующих или композитных нод, подключать в слот Bump через ноду VRayColor2Bump , это 100% гарантирует корректную работу вашего решения.

Слот Reflection Glossy

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

Слот Refraction Glossy

Для "размытия" прозрачности - VRayMtl использует только Glossy режим и если вам досталась карта Roughness для прозрачности, то её следует инвертировать.

Слот Displacement

К этому слоту нужно подключать Height карту. Силу рельефа контролировать через множитель для этого слота, а качество семплирования этой карты можно контролировать здесь: Render Setup > Settings > Default displacement

Чем меньше значение Edge Length тем точней и качественней будет рельеф, но за качество нужно будет "платить" большим расходом оперативной памяти - Displacement это очень прожорливое решение.

Слот Tranclucency

К нему можно подключать цветные карты Scatter color , SSS , которые определяют цвет "внутренностей" материала. В VRayMtl данные карты будут работать только при "включенных" опциях Refract и Translucency . Сама карта, подключенная к слоту Tranclucency, будет обозначаться как Back-side color.

Слот IOR

Обычно, этот параметр не запекается в отдельную карту, а настраивают непосредственно в опциях шейдера, так как эта опция использует порядок цвета, за пределами стандартного динамического диапазона, т.е. больше 1 (255 sRGB). При большом желании значение IOR можно сохранить в растровой карте через форматы *.hdr или *.exr - эти форматы поддерживают расширенный динамический диапазон.

Слот Fresnel IOR

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

В отличие от IOR , диапазон карты для Fresnel IOR лежит в пределах от 0 до 1, где черный цвет (0) это максимальное значение IOR , белый цвет это минимальное значение IOR , равное 1.

Слот Opacity

Слот для подключения карт непрозрачности. Данные карты могут иметь название Opacity, Opaque , в редких случаях - Mask . В этих картах черный цвет, задает полную прозрачность поверхности, а белый полную непрозрачность.

Слот Rougness

Этот слот для подключения карт диффузной шероховатости - Diffuse Roughness . Не стоит путать обычную карту Roughness для размытия отражений и подключать её к слоту Diffuse Roughness напрямую.

На моей практике, если честно, карты для Diffuse Roughness не мне попадались, но в сети используется следующая формула для создания Diffuse Roughness карты

Исходник этого решения обсуждается здесь . На практике это можно реализовать через ноды VrayCompTex или Composite . Карта шероховатости для отражения смешивается через умножение с картой цвета со значением 0.33 и подключается в слот Rougness

Слот Anisotropy

Мне доподлинно не известно, как обстоят дела с анизотропией в игровых движках, от куда собственно и перекочевала традиция "запекать" текстуры. В VRayMtl , анизотропность можно задать через черно-белую карту в диапазоне от 0 до 1, где 0 это отсутствие анизотропии, а 1 максимальное значение. Из практики - значение больше 0.8 ставить не следует.

Слот Anisotropy Rotation

Слот Fog Color

Через этот слот можно задать цвет прозрачности материала. Карты для этого слота могут иметь название Transmitance color, Observed color, Transmission Color

В Corona renderer — заявленная опция absorption color , употребляется неуместно и физически не корректна, правильней было бы использовать термин Observed Color (англ. Observed Color — наблюдаемый цвет, видимый цвет)

Слот Self-Illumination

К данному слоту подключаются карты с названием Emissive или Self-Illumination . Функции этой карты очевидны, они "заставляют" поверхность объекта светиться.

Слот Metalness

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

ID mask, Mask, RGB mask

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

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

Оглавление:

Категория Surface

Карта Normals


Вывод Normals запекает карту нормалей касательного пространства ( tangent space normal map ). Существуют опции для отзеркаливания ( flip ) красного (X), зеленого (Y) и синего (Z) каналов, а также опция для переключения Размытия ( dithering ).

Карта Normals (Object)


Вывод типа Normals (Object) запекает карту нормалей объектного пространства ( object space normal map ). При создании ассетов для игр и фильмов, карты данного типа не используются напрямую, но они являются отличным источником для создания масок направленности ( directional masks ) для ваших текстур. Например, для добавления слоя пыли на верхнюю часть вашего объекта.

Карта Height


Вывод Height запекает карту высот ( height map ) или карту смещений ( displacement map ). Настройки внутреннего и внешнего расстояния, определяют минимальное и максимальное расстояние (в единицах измерения сцены) которое будет записываться. Если у вас есть деталь, которая утоплена на 2 единицы и выступает на 5 единиц, вы должны выставить эти значения на -2 и 5 соответственно. Чтобы быть уверенным в том, что 0 точкой являются 50%, устанавливайте минимальное и максимальное значения пропорционально, например -5 и 5.

Карта Position

Вывод Position , также известен как карта Градиента ( Gradient map) , он запекает положение вашего меша в каналах X, Y и Z в RGB каналы изображения. Карта положения также является хорошим источником для генерации разного рода текстурных масок. Например, создание цветового градиента или градиента насыщенности, от нижней к верхней части объекта.

Карта Curvature


Вывод Curvature запекает карту выпуклостей ( convexity map ) и карту вогнутости ( concavity map ). По умолчанию, карта кривизны запекается в черно-белом стиле, где вогнутые детали изображены более светлыми, а выпуклые детали более темными. Карта кривизны полезна при создании масок для разного рода царапин, грязи находящейся в углублениях и других эффектов.

Карта Concavity


Вывод Concavity , также известный как cavity ( впадина ), запекает карту впадин поверхности , или трещин и провалов. Карта вогнутости/впадин используется для создания масок окружающего освещения и генерации таких эффектов как грязь, пыль и сажа.

Карта Convexity


Вывод Convexity запекает карту выпуклостей поверхности , или острые края ( sharp edges ). Карта выпуклостей полезна при генерации таких эффектов как поцарапанные края/ребра.

Карта Thickness


Вывод Thickness , также известный как пропускание ( transmission ), запекает карту основываясь на толщине HP объекта. Более тонкие области создают светлые значения, в то время как более толстые области являются темными.

Карта Bent Normals


Вывод Bent Normals генерирует карту нормалей , которая содержит окклюзию окружения (AO) запеченную в данные нормальных векторов ( normal vector data ). Карты типа Bent Normals используются для симуляции сложного освещения в сочетеании с определенными шейдерами.

Карта Bent Normals (Object)


Вывод Bent Normals (Object) запекает карту типа Bent Normals в объектном, а не касательном пространстве.

Категория Lighting

Карта Ambient Occlusion


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


Параметр Ray Count определяет качество AO. Чем больше лучей используется тем более мягкой и гладкой будет карта AO. Но стоит отметить, что это замедляет процесс запекания. По умолчанию, используется значение 256 которое соответствует среднему качеству, значения от 512+ будут выдавать высокое качество, а значения ниже 256 можно использовать при тестовых запеканиях.


Параметр Floor Occlusion добавляет дополнительную окклюзию области, обращенной к низу. Floor occlusion может помочь вам в добавлении направленного AO. Что обычно наиболее полезно для статических объектов.


Опция Ignore Groups позволяет отбрасывать тень AO между разными группами запекания. Это помогает обособить разные части сложных объектов. Если у вас есть определенные элементы, которые можно убирать или они буду анимированными — например, прицел или магазин у автомата — вы можете переместить эти группы запекания в сторону, так что они не получат группу в группе AO.


Опция Two-Sided будет отбрасывать AO с задней стороны граней у HP объектов. Это полезно для точного захвата AO вокруг пересечений объектов, но приведет к появлению теней вокруг плавающей геометрии. При работе над сложными ассетами, хорошей идеей может оказаться запекание сразу двух карт — с включенной и выключенной опцией Two-Sided , и их последующее объединение в редакторе изображений, типа Photoshop.


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


Опция Exclude When Ignoring Groups позволяет вам запретить опцию Ignore Groups для определенных Групп Запекания ( Bake Groups ). Это особенно полезно в тех случаях, когда у вас есть подвижные части, например, оружие с затвором или магазином, который будет анимирован. Просто активируйте Exclude When Ignoring Groups в настройках слота Low расположенного в Bake Group, чтобы быть уверенным что AO не будет отбрасываться или формироваться от остальных групп.

Карта Diffuse Lighting


Вывод Diffuse Lighting запекает освещение и тени от Sky Light и направленных источников света ( direct lights ) в сцене. Свойства поверхности, определяемые материалами применяются к high poly объектам.

Карта Specular Lighting


Вывод Specular Lighting запекает зеркальные отражения ( specular reflections ) и тени от Sky Light и направленных источников света в сцене. Зеркально отраженный свет — это эффект, зависящий от положения камеры, и он не рендерится для задней части вашей модели.

Карта Complete Lighting


Вывод Complete Lighting запекает цвет материала, диффузную составляющую освещения, тени и зеркальные отражения из вашей сцены. Свойства поверхности, определяемые материалами применяются к high poly объектам.

Категория ID’s & Masks

Карта Material ID


Вывод Material ID запекает уникальный цвет для каждого материала, назначенного на HP объект. Цвет применяется автоматически, а сами цвета выбираются таким образом, чтобы максимально отличаться от других. Если вам требуются конкретные ID цвета, вы можете применить их непосредственно к карте Albedo, в материале, который используется HP объектом. Затем, просто запеките карту Albedo.

Карта Group ID


Вывод Group ID запекает уникальный цвет для каждой группы материалов ( material group ).

Карта Object ID


Вывод Object ID запекает уникальный цвет для каждого объекта с определенным материалом.

Карта UV ID


Вывод UV ID запекает уникальный цвет для каждого UV островка.

Карта Wireframe


Вывод Wireframe запекает карту, которая представляет UV развёртку low poly объекта.

Карта Alpha


Вывод Alpha запекает карту отверстий, имеющихся на high poly меше.

Категория Material

Карта Albedo


Вывод Albedo запекает значение альбедо (это работает с простыми значениями цвета, входным изображением ( image input ), или обоими вариантами) из материалов HP объекта.

Карта Specular


Вывод Specular запекает значение Specular (это работает с простыми значениями цвета, входным изображением или обоими вариантами) из материалов HP объекта.

Карта Gloss


Вывод Gloss запекает значение глянца ( gloss value ). Это работает с простыми значениями цвета, входным изображением или обоими вариантами) из материалов HP объекта.

Карта Albedo (для Metalness подхода)


Вывод Albedo запекает карту цвета ( color map ), которая подходит для использования с подходом Metalness , взятое из материалаов HP объекта.

Roughness Map


Вывод Roughness запекает значение шероховатости ( roughness value ) взятое из материалаов HP объекта.

Карта Metalness


Вывод Metalness запекает значение металличности ( metalness) взятое из материалаов HP объекта. Если ваши материалы не имеют metalness inputs , контент типа metalness будет сгенерирован автоматически. Для более точной настройки данного преобразования используется параметр Metalness Threshold , который не применяется, если исходные материалы используют подход metalness.

Карта Vertex Color


Изображение представлено Xavier Coelho-Kostolny

Вывод Vertex Color запекает цвета вершин ( vertex color ) или данные типа polypaint взятые из zBrush в изображение.

Карта Transparency


Вывод Transparency запекает карту основываясь на значениях прозрачности ( transparency ) заданных в материалах HP объекта.

Карта Emissive


Вывод Emissive запекает карту основываясь на значениях излучения/эмиссии ( emissive values ) заданных в материалах high poly объекта.

В следующей статье под названием «Запекание в Marmoset Toolbag. Основы запекания» расскажем об основах переноса нормалей и о том, как устранять типичные проблемы.

Научиться работать в Marmoset Toolbag под руководством опытного ментора вы сможете, выбрав блок «Retopology & UV & Baking» курса «ZBrush. Создание 3D-персонажа». Вы можете выбрать отдельные блоки, или пройти курс полностью, изучив все этапы создания 3D-персонажа — начиная с блокинга и до финальной визуализации.

Часть 5. Обзор приложений для создания различных карт.

В предыдущей части статьи было рассказано про Теорию карт нормалей.

Данная часть статьи посвящена мини-обзорам программ и плагинам для генерации карт, включая карты нормалей, карты смещения, самоосвещенной карты нормалей, карты освещения/затенения и карты отражений из текстуры и карты высот. В данной части статьи, помимо уже упомянутого в одной из предыдущих частей Normalmap Online, обозреваются такие программы и плагины, как Normalmap Online, NVIDIA Texture Tools for Adobe Photoshop (NVIDIA Normal Map Filter), SSBump Generator, xNormal, GIMP normalmap plugin и SmartNormal, CrazyBump и Awesome Bump.

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

NVIDIA Texture Tools для Adobe Photoshop

Раз разговор зашел о картах нормалей, не могу не сказать еще об одном удивительном инструменте NVIDIA Texture Tools for Adobe Photoshop, который позволяет:

Более подробно с возможностями данного набора инструментов вы можете ознакомиться на сайте Nvidia, либо в pdf-файлах NVJavaScript.pdf, PhotoshopDDSPlugin.pdf и PhotoshopNormalMapFilter.pdf, которые будут доступны вам в папке “\\Program Files\NVIDIA Corporation\“ или в “\\Program Files (x86)\NVIDIA Corporation\“после установки пакета.

Для того чтобы запустить плагин, выберите слой, на котором хотите применить фильтр, затем вкладку Filter в главном меню, в котором выберите вкладку NVIDIA Tools, а в ней – NormalMapFilter.

Карты нормалей, создаваемые в NVIDIA Texture Tools for Adobe Photoshop в режиме по умолчанию, как и 3ds Max, имеют инвертированный зеленый канал, следовательно, для того чтобы они правильно работали в Unity3D, необходимо инвертировать ось Y (Invert Y) при создании карты нормалей из текстуры или карты высот.

На рисунке показаны созданные карты нормалей из текстуры. nvidia-filter-normal-maps

Как видно из рисунка, NVIDIA Normal Map Filter не просто позволяет создавать карты нормалей из изображений (в центре), используя большое количество настроек (окна настроек показанынад созданными картами нормалей), но и инвертированные карты нормалей (справа), как если бы цвета текстуры предварительно были бы инвертированы.

Также в данном плагине существует возможность предпросмотра карты нормалей на 3D модели (плоскости), что присутствует и в плагине для Фотошопа xNormal, который является частью standalone версии xNormal.

16-битный фильтр для плагина от nVidia доступен по ссылке NormalMapFilter16.zip, который позволяет работать с 16bit изображениями в градациях серого, в которые экспортирует изображения ZBrush.

SSBump Generator

Еще одним представителем семейства генераторов карт нормалей и карт высот является SSbump Generator 5.3 w/ CUDA, который позиционируется, как должно быть понятно из названия, как генератор ssbump карт нормалей (Self-Shadowed Bump Maps). Карты нормалей ssbump являются частью системы самозатенения (хранения карты затенений вместе с картой нормалей), реализованной в движке Source от Valve Corporation. На данном движке был реализован известный Half-Life 2, а также переиздана первая часть данной игры, получившая название Half-Life: Source, которая была издана в 2004 году, и включающая ряд графических нововведений и дополненная изменениями в игровом процессе.

На рисунке показан интерфейс программы SSbump Generator 5.3 w/ CUDA, а также пример создания самозатененной карты нормалей (Self-Shadowed Bump Maps) для движка Source, разработанного компанией Valve. ssbump-generator

Помимо ssbump текстур (самозатененных и не самозатененных) SSbump Generator способен генерировать простые карты нормалей, карты высот, а также добавлять карту затенения (ambient occlusion) к изображению. Интерфейс не совсем интуитивно понятный.

Кстати карты нормалей ssbump также можно запечь и в xNormal.

xNormal

xNormal представляет собой приложение для запекания различных карт с высокополигональной 3D модели на низкополигональную, включая закпекание карт нормалей, карт высот, диффузных текстур (Albedo), карт затенения/освещения (Ambient occlusion), bent normalmap (карты нормалей с самозатенением), PRTpn, Convexity map, Thickness map, Proximity map, Cavity map, Wireframe and ray fails, Direction map (Vector Displacement Map), Radiosity normal map (карта нормалей с запеченным освещением), vertex colors хайполи модели, curvature map, карты прозрачности (translucency map), derivative map (карты нормалей в пространстве объекта).

На рисунке показано меню настроек запекания в xNormal. xnormal-maps-to-render

Имеется предпросмотр модели в 3D пространстве в выбранном разрашении, причем как ее highpoly версии, так и lowpoly с возможностью наложения карты нормалей, текстуры, карты затенений, карты отражений (Reflect texture), текстуры блеска/глянцевости (Gloss texture), карты свечения (emissive texture), карты отражений (Reflect texture) и карты глобального освещения (DiffuseGI texture).

Кстати, xNormal поддерживает контроллер Xbox360 для навигации по сцене в окне предпросмотра, достаточно лишь включить его в окне настроек предпросмотра.

На рисунке показано окно настроек предпросмотра 3D модели в приложении xNormal. xnormal-preview-settings

Хватает и настроек в самом окне просмотра.

На рисунке показано окно визуализации загруженной в xNormal 3D модели и варианты ее отображения в окне 3D просмотра: с отображением направления нормалей, карты нормалей, сетки и т.д. xnormal-preview-head

В программе также доступна опция вращения 3D модели и источника света.

На рисунке показан набор инструментов/ утилит xNormal. xnormal_tools

Как можно заметить на рисунке, созданные карты нормалей имеют “правильную” ориентацию Y оси, т.е. данный инструмент с настройками по умолчанию отлично подходит для создания карт, которые могут быть импортированы в Unity3D и Blender без дополнительных преобразований и инвертирования Зеленого (Y) канала.

Некоторые утилиты xNormal доступны в плагине для Фотошопа, например, создание карт затенений и карт нормалей из карты высот. Плагин позволяет нормализовывать карты нормалей и создавать Cavitymaps (могут использоваться для имитации грязи в углублениях) из карты нормалей.

На рисунке показано меню создания карты нормалей из изображения (текстуры, карты высот) плагина xNormal для Фотошопа, а также диффузная карта и результирующая карта нормалей. xnormal_normalmap-plugin

Есть и фильтр для расширения краев изображений/текстур “Dilation” (Filter->xNormal->Dilation), по сути являющийся аналогом параметра Margin в Blender’е (выставляется в параметрах запекания карт “Bake”).

Помните Dilate Many из набора AlphaUtility.atn.zip для создания альфа канала для листьев, работа с которым описана в статье “How do I Import Alpha Textures?” руководства пользователя?

На рисунке показан результат работы фильтра Dilation из набора xNormal для Photoshop. dilation-margin-black-texture-inverted

Плагин normalmap для GIMP

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

Плагин normalmap после загрузки с репозитория Google доступен в GIMP в вкладке главного меню Filters->Map->NormalMap (Фильтры->Карта->NormalMap).

Как и его братья данный плагин обладает всеми необходимыми настройками для создания качественных карт нормалей.

На рисунке показан плагин normapmap для GIMP. gimp-normalmap-plugin

Как и описанный выше плагин NVIDIA Texture Tools, данный плагин по умолчанию создает карту нормалей с инвертированным зеленым каналом, а, следовательно, его необходимо инвертировать для импорта в Unity3D.

Данный плагин также предлагает пристойный предпросмотр создаваемой карты нормалей в 3D пространстве на одной из пяти 3D моделей-примитивов: плоскости, кубе, сфере, торе и знаменитом “максовском” чайнике Юта/Ньюэлла (хотя, если честно, я ожидал увидеть здесь Blender’овскую Сюзанну).

На рисунке показан затекстурированный чайник Юта/Ньюэлла в окне 3D предпросмотра созданной карты. gimp-3dview

Smartnormal

Заканчивая обзор бесплатных утилит, плагинов и приложений для создания карт нормалей (и не только), хотелось бы рассказать еще об одном онлайн приложении. Smartnormal представлен в двух версиях – более поздней Smartnormal 2.0 и Smartnormal 1.0.

Основным отличием Smart Normal 1.0 от второй версии является возможность выбора фильтра, который будет использован для создания карты нормалей: упомянутый выше Собель и Condensed. Судя по заверениям разработчиков от февраля 2009 года, данный генератор карт нормалей был (или и сейчас) доступен в виде плагина для After Effects и Photoshop, но требует предустановленного Pixel Bender Plugin.

На рисунке показана текстура и карта нормалей, сгенерированная для нее в онлайн генераторе карт нормалей Smart Normal (Smart Normap). smartnormal-1

В данной версии приложения карты нормалей по умолчанию создаются с инвертированым Красным (R) каналом (как в Normalmap Online, описанном выше), так что не забудьте его “обратить” в веру Unity3D. Количество настроек – минимально: Сила (Bias), Размытие (Blur), возможность инвертирования исходного изображения (Invert source) и возможность инвертирования Зеленого (G) и/или Красного (R) каналов.

В SmartNormal версии 2.0 инвертировать каналы уже не нужно, но можно, если очень хочется, например, если вы хотите использовать созданную карту нормалей в 3dsMax. Отличительной особенностью данной версии является поддержка изображений размером 8192*8192 пикселей, сохранение результата без компрессии изображения (в несжатом виде). Реализация на WebGL с поддержкой вычислений на GPU.

На рисунке показано окно онлайн приложения SmartNormal версии 2.0 для создания карты нормалей из карты высот/текстур. smartnormal-20

CrazyBump

На рисунке показан основной интерфейс программы CrazyBump с созданными картами для исходной текстуры, а также показаны меню настроек, окно 3D-просмотра и меню настроек параметров сохранения изображения. crazybump

Помимо своих основных функций по превращению карт высот и изображений в карты отражений, смещения, нормалей и карты затенений, приложение CrazyBump обладает функционалом конвертера изображений. Вы всегда можете загрузить в него свое изображение, чтобы на выходе получить изображение в практически любом существующем формате. Помимо сохранения в файл, данное приложение обладает возможность сохранения одной из выбранных карт в буфер обмена, как если бы вы использовали “Snip” от Microsoft (правда, в Snipe вам еще придется выделить интересующую для копирования область или щелкнуть мышью на активном окне программы, чтобы сделать скриншот).

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

Данное приложение – платное, но ценовая политика – крайне гибкая, поскольку для студентов и индии-разработчиков автор идет навстречу и по личной договоренности может разрешить использовать приложение по лицензии “CrazyBump for Students”, купленную за $49 USD, в коммерческих целях. Если же вы хотите заполучить себе копию CrazyBump на одно лицо (один компьютер), а ваш годовой доход или годовой доход вашей компании не превышает 200.000 долларов, то вам останется лишь выложить за этот “аппарат” 99 долларов. Если вы давно зарабатываете более 200 тысяч долларов в год или доход вашей компании хотя бы на доллар превысил данную планку, то вам остается лишь выложить 299 долларов за одну копию данного приложения.

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

Awesome Bump

Следующей программой в списке генератором карт, является AwesomeBump. Для того чтобы создать карту нормалей в данном приложении из изображения, например, Albedo (диффузной) текстуры или карты высот, его необходимо загрузить. Переходим в окно работы с диффузной картой, открыв соответствующую вкладку “Diffuse”, затем ставим флаг напротив опции Enable preview, загружаем текстуру, нажав на иконку дискетки и выбрав вашу диффузную карту или карту высот. Теперь осталось лишь нажать на кнопку “Convert to N H”, чтобы создать карту нормалей (а также карту отражений, карту высот и карту освещения/затенения) из вашего изображения. В окне предпросмотра 3D примитиву автоматически была назначена созданная карта нормалей. Чтобы снять отображение карты нормалей, снимите флаг напротив опции “ Enable preview”.

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

На рисунке показан интерфейс программы Awesome Bump создания карты нормалей из текстуры. awesomebump_3dbuffer

Можно подвигать источник света в окне 3D предпросмотра (удерживая Среднюю Клавишу Мыши перемещайте мышь в окне с 3D примитивом).

Если вы хотите посмотреть, как будет выглядеть текстура на вашей 3D модели, то вам достаточно лишь нажать кнопку “3D settings” на окном 3D предпросмотра модели, после чего нажать кнопку “Load OBJ Mesh” и выбрать свою 3D модель в формате OBJ. Awesome Bump не понимает 3D модели без UV развертки!

При некотором умении данный инструмент станет вам незаменимым помощником в создании и доработке 3D контента для игр.

Читайте также: