Как сделать карту glossiness в фотошопе

Обновлено: 01.07.2024

По этой теме имеется два вопроса:
1) Как корректно конвертировать текстуры specular / glossiness в metall / roughness (желательно GLSL)?
2) Как при получении нормалей из карты высот корректно вычислить координату Z? Сколько видел примеров, вычисляются только координаты XY, хотя в 3D-редакторах координата Z запекается корректно и в Фотошопе она вычисляется корректно.

2) может из условий нормировки? Z = sqrt(1 - (x*x + y*y))

1) metalness подразумевает, что цвет металл-спекуляра - в альбедо текстуре, а также что какие-то тексели либо 100% металл, либо совсем не металл (не знаю случаев где бы юзалось значение посередине). Обычно у диэлектриков (если по-пбрски) довольно низкий спекуляр, в районе 0.04, значит можно попробовать просто if'нуть яркость спекуляра так и получить металнесс. Далее всё что металл - содержимое спек тексы переносишь в альбедо.
Roughness это просто 1-glossiness, однако стоит иметь в виду, что разные движки и известные формулы юзают разную кривую его, где-то придётся ещё корень/квадрат от результата взять.

AMM1AK
> может из условий нормировки? Z = sqrt(1 - (x*x + y*y))
Ну вроде всё нормально работает :) если кому-то будет нужно, вот код шейдера конвертирования Height Map в Normals:

Mr F
На мой взгляд все текстуры должны быть стандартны, так как распространяются без учёта типа реализации PBR, но я использую вот этот.

Daniil Petrov
> 1) Как корректно конвертировать текстуры specular / glossiness в metall /
> roughness (желательно GLSL)?

endeavour_pr
Это мне всё попадалось, а мне нужен алгоритм.

Daniil Petrov
> Это мне всё попадалось, а мне нужен алгоритм.
Лол . там же вроде пишут что нельзя алгоритмом

в анриле как-то делают мутно я сам нихера не понимаю и вроде оно не выглядит норм после

endeavour_pr
Жаль, очень жаль! А хотелось бы, так как в интернете полно халявных текстур именно под этот вид PBR.

В сегодняшнем уроке мы сосредоточимся прежде всего на корректирующем слое Gradient Map (Карта градиента) в Adobe Photoshop. Градиенты этого корректирующего слоя являются перекрытием (наложением), включающие в себя всего лишь несколько цветов. Они в значительной степени скрывают оригинальные цвета изображения, перекрывая его сочетанием выбранных вами цветов. Ниже я покажу вам, как применить слой, загрузить градиенты, которые ещё не установлены, а также как откорректировать градиент. После этого мы добавим корректирующий слой Curves (Кривые), где будем использовать один из доступных пресетов. На этом этапе нам необходимо добавить немного контраста. И в завершении мы воспользуемся фильтром Camera RAW, чтобы произвести заключительные настройки. Надеюсь в итоге у нас получится придать изображению устрашающий вид или что-то в этом роде.

Выбор изображения

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

Корректирующий слой «Карта градиента»

Загрузка дополнительных градиентов

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

В нижней части раскрывающегося меню находятся различные наборы градиентов, которые можно установить. Выберите один из них, а затем нажмите Append (Добавить). Этим вы добавите выбранные градиенты в текущий набор. Я выбрал пресет Photographic Toning (Фотографическое тонирование). Добавленные мною градиенты вы можете увидеть на скриншоте выше.

Выбор градиента

Теперь настало время выбрать градиент и применить его к нашему изображению. В предверии Хэллоуина, мне бы хотелось добавить на изображение немного оранжевого оттенка. Поэкспериментируя, я остановился на Sepia 1 (Сепия 1).

Посмотрите на полученный эффект.

Выглядит неплохо, но я решил не останавливаться на этом.

Добавление контраста при помощи кривых

Как я уже говорил чуть ранее, я хочу добавить немного контраста на изображение. В этом нам поможет корректирующий слой Curves (Кривые), добавьте его. На панели «Свойства» кликните по раскрывающемуся списку Preset (Наборы) и выберите вариант Strong Contrast (RGB) (Сильная контрастность (RGB)). Этим мы затемним изображение и придадим ему устрашающий вид.

Дополнительные корректировки градиента

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

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

Добавление фильтра Camera RAW

Эффект получился неплохой, но выглядит не так страшно. Теперь мы будем использовать Camera RAW, для этого перейдите в меню Filter > Camera RAW Filter (Фильтр – Фильтр Camera RAW).

В окне Camera RAW мы поработаем с несколькими ползунками. Для начала переместите ползунок Highlights (Света) влево, чтобы уменьшить яркость лампы, висящей на потолке. Затем переместите ползунок Whites (Белые) вправо для увеличения выборочной яркости (центр огней), ползунок Blacks (Чёрные) влево, чтобы на изображении выделялись тени и самое главное ползунок Clarity (Чёткость) вправо до упора. Этими настройками мы придали изображению устрашающий вид, который я хотел.

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

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

Постскриптум – вот ещё один вариант. Здесь я обесцветил оранжевый оттенок.


Reflection

vray reflection

Возможно, принцип работы построения отражений будет легче понять, если представить их, как слой, наложенный поверх Diffuse. При 100% величине Reflect [255;255;255] материал будет давать полное отражение окружающей обстановки, света и т.д. Чтобы сквозь отражения можно было разглядеть Diffuse, в цветовом селекторе Reflect надо задать более тёмный оттенок серого. При абсолютно чёрном цвете виден будет только Diffuse. В общем понимании схема взаимодействия Reflection и Diffuse выглядит именно так, хотя на самом деле всё устроено малость замысловатее.

vray reflect величина

Добавление реализма при помощи текстур

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

В общем плане для получения реалистичных результатов значение Reflect следует держать в диапазоне от 1 до 230 единиц.

vray карты отражений

Всегда включайте Fresnel

Так почему же наши материалы кажутся такими ненатуральными?

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

vray fresnel

На первом изображении обратите внимание, как отражение становится сильнее по мере отдаления пола от камеры. На втором отражения усиливаются ближе к краю шара для боулинга. Таким образом становится очевидно, что уменьшение угла наблюдения приводит к усилению отражений. При взгляде на объект перпендикулярно (90°) отражения оказываются гораздо слабее, чем если бы мы посмотрели на него под небольшим углом.

угол по френелю

Сымитировать этот эффект в V-Ray можно, задействовав параметр Fresnel Reflections (Отражения по Френелю).

настройки fresnel

Вообще рекомендуется включать опцию Fresnel в каждом создаваемом материале. Разница между хромом и бетоном заключается в значении Fresnel IOR (Коэффициент преломления отражений по Френелю). Оно определяет, как именно должен происходить спад отражений. Чтобы получить к доступ к настройке Fresnel IOR, отключите кнопку L. Имейте в виду, что дефолтное значение 1.6 сгодится разве что для стекла и некоторых типов пластика.

fresnel ior

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

Reflection Glossiness

reflection glossiness

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

Понижение величины глянца делает отражения более размытыми. Эффект чем-то напоминает зашкуривание поверхности материала мелкой наждачкой. Но этому есть и своя цена: чем размытее отражения, тем труднее V-Ray их рассчитывать. Отсюда на выходе и зашумлённость материала, и увеличение времени рендеринга. Для самых шероховатых поверхностей величина Reflection Glossiness (Размытие отражений) не должна опускаться ниже 0.35.

Таким образом, допустимый диапазон значений составляет от 0.35 до 0.99.

reflection glossiness диапазон

Расцепляем Hilight и Reflection glossiness

По умолчанию Reflection glossiness и Hilight glossiness (Размытие бликов) связаны между собой. Однако бывают случаи, когда целесообразнее отсоединить их друг от друга, установив Hilight Glossiness в значение несколько пониже. В результате отражения останутся такими же чёткими, но плюс к этому мы получим небольшое свечение вокруг них. В реальности именно так и происходит с большинством объектов:

шлем 3ds max

Пойдя на такое маленькое ухищрение, мы сможем сымитировать подобный внешний вид без прибавки ко времени визуализации. Строгих правил, указывающих, на сколько нужно понижать блеск Hilight, нет, а потому оценивайте материал на глаз по ситуации. Хотя, в принципе, хорошо смотрится разница между Hilight и Reflection Glossiness где-то от 1.0 до 1.5 раз.

vray hilight gloss

Применение текстур для контроля над блеском

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

Зачастую желательно производить карту Refl. Glossiness из карты Reflect, а сверху неё можно наложить ещё какую-нибудь текстуру, сделав итоговый вид Refl. Glossiness более интересным. Области с меньшей отражательной способностью можно также слегка заблюрить в Photoshop. Опять-таки, правило не строгое и вы в праве его нарушить, если результат вас устраивает.

refl. gloss

vray gloss карта

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

Следующим у нас идёт Subdivs (Подразбиения).

vray сабдивы

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

значения subdivs

Примечание: большинство пользователей V-Ray для рендеринга изображений предпочитают использовать сэмплер Adaptive DMC. Это подразумевает под собой, что фактическое количество сэмплов, необходимое для получения чистого изображения, меняется в зависимости от настроек DMC: при 1/4 потребуются более низкие значения, чем при 1/100. Рекомендуется оставлять эту настройку в стандартном значении (8 сабдивов), если планируете передавать свои модели или материалы другим людям. У каждого из нас имеется своё видение рабочего процесса, кажущееся единственно верным, и соответственно будет лучше, чтобы каждый сам уже настраивал сабдивы, как ему или ей хочется. В противном случае человеку может быть обеспечено «весёлое» времяпровождение с вылавливанием материала, у которого количество сабдивов задрано до небес, что, вероятнее всего, не будет вписываться в его сетап рендеринга.

Max depth и Exit color

vray refl. depth

Параметр Max depth (Максимальная глубина) определяет, сколько раз отразится луч света, формирующий отражение, прежде чем перейти в состояние Exit color (Цвет выхода). Опция помогает ускорить процесс визуализации за счёт уменьшения количества вычислений, которые V-Ray вынужден делать специально для отражений. Вот вам пример, где цвет выхода установлен синим:

vray max depth

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

20 обычно не целесообразно.

Если на материале есть размытые отражения, можно немного ускорить их расчёты без потери качества за счёт уменьшения Max depth. Руководствуйтесь следующей табличкой:

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

Менее известные параметры

На этом обзор свитка Basic parameters (Основные параметры) для отражающих поверхностей можно считать завершённым. В нынешние времена задействоватьUse interpolation (Применять интерполяцию) резона нет, т.к. намного быстрее и проще включить для этого галочку Use light cache for glossy rays (Использовать световой кэш для расчёта бликующих лучей) в настройках рендеринга V-Ray. Dim distance (Расстояние затухания) и Affect channels (Воздействие на каналы) используются только в некоторых очень специфических случаях (больше относится к оптимизации сцены, нежели чем к созданию материалов).

vray параметры

Чуть ниже, в свитках BRDF и Options, спрятаны ещё несколько немаловажных параметров.

BRDF (Bidirectional Reflectance Distribution Function — функция распределения двунаправленного отражения) — это некая математическая модель, применяемая для расчёта отражений и зеркальности материалов. На выбор доступны три типа таких моделей: Blinn (По Блинну), Phong (По Фонгу) и Ward (По Уорду). У каждого из них есть свои особенности поведения.

BRDF

BRDF модели

Как вы можете видеть, основное различие заключается в способе обращения с бликами. Phong даёт самые чёткие блики, Blinn — чуть размытее, а Ward — наиболее мягкие.

Жёстких правил, указывающих, когда какой тип нужно применять, нет, но в виде общих рекомендаций можно принять к сведению, что Ward подходит для имитации металлов и анизотропных материалов, а Blinn и Phong для всего остального (подойдёт любой, какой вам больше нравится). Единственное исключение для Ward, когда его не рекомендуется применять, касается металлов, отполированных до зеркального блеска, или имеющих очень чёткие отражения, такие как хром, золотые ювелирные изделия и т.д.

Anisotropy

анизотропия

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

примеры анизотропии

Анизотропию следует устанавливать в интервале значений от -0.99 до 0.99. При -1; 0 и 1 изменений вы не увидите.

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

сила анизотропии

Эффект растягивания можно также вращать на любой угол с помощью параметра Rotation (Вращение).

vray anisotropy rotation

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

анизотропия оси

Для обеспечения правильной работы Anisotropy необходимы размытые отражения. Если Reflection glossiness у вас установлен в очень высокое значение, то эффект работать не будет.

Аналогично другим аспектам V-Ray, для управления параметрами анизотропии имеется возможность использовать карты или текстуры.

Точное количество дефектов, привносимое анизотропией, можно тонко настроить, поместив в Anisotropy текстуру с уменьшенной силой воздействия. Имейте в виду, что текстурные карты работают только как положительные величины, поэтому лучше комбинировать их с положительными значениями силы Anisotropy. В примере ниже в свитке Maps (Карты) у нас используется смесь из Anisotropy 0.6 + 20% текстуры. На выходе материал выглядит чуть более естественнее, чем если бы мы просто решили сделать анизотропию однородной.

анизотропия текстура смешивание

анизотропия текстура

Карты углового поворота An. Rotation применяются для изменения направления распространения царапин. Приём пригодится, например, для создания круговых узоров или металлических чешуек, отражающих свет в случайных направлениях. Плавные градиенты делают угловой поворот постепенным, в то время как карты, состоящие из «лоскутов» различных цветов, дают резкие переходы, при этом каждый оттенок серого отражает под разным значением угла поворота.

анизотропия хлопьями

анизотропия градиент

Свиток Options

Прежде чем поставить точку в теме об отражениях в V-Ray, рассмотрим ещё пару достойных внимания настроек. Давайте перейдём в свиток Options (Опции) и взглянем, что он нам предлагает.

vray options

Все выделенные выше опции влияют на формирование отражений.

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

vray speculars

Следующей у нас идёт опция Reflect on back side (Отражения на обратной стороне). По умолчанию она выключена, и так и должно быть для большинства материалов, т.к. это помогает сократить время рендеринга. А вот если надо создать стекло или другой прозрачный материал, придётся эту опцию включить, иначе на выходе реалистичность пострадает.

reflect on back side vray

И, наконец, рассмотрим Energy Preservation mode (Режим сохранения энергии). Стоящая по умолчанию настройка RGB в физическом смысле корректна, однако в некоторых случаях результат бывает трудно предсказать. В качестве иллюстрации посмотрите на белый материал с синими отражениями (ниже).

Величина Reflection вычитается из Diffuse. Для наглядности возьмём белый цвет Diffuse [230; 230; 230] и синий Reflection [0; 0; 230]. Так что же получится после вычитания? А получится жёлтый цвет [230; 230; 0], что в точности мы и видим после рендеринга на данном конкретном примере:

rgb

Переключите Energy Preservation mode в режим Monochrome (Монохромный), и результат окажется куда более предсказуемым: получится белый диффузный цвет с синими отражениями.

refl. mono

монохром

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

В следующей части курса по материалу VRayMtl мы поговорим о преломлениях Refractions.

Часть 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 контента для игр.

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