Как применять bump-карту на практике?

Семинар 3: Текстурные карты (Displacement, Bump, Specular)

Введение

На самом деле мы изучали процедурные текстуры именно для того, чтобы использовать их в текстурных картах! Ведь именно там они чаще всего и применяются. Зачем? Чтобы творить чудеса!

Карта отражений

Карта отражений (она называется SpecularMap) представляет собой информацию о том, какой участок должен отражать свет, а какой нет. Состоит она из градаций серого цвета от абсолютно чёрного до абсолютно белого. Там, где чёрный (значение = 0), там отражение минимально, где белый цвет (значение = 1) отражение максимально. Отражение в области серого цвета определяется тем на сколько он темный или светлый. Давай разберемся на практике.

Создай объект, например, UV-Sphere и настрой освещение. Добавь материал шару, включив режим нодов. Перейди в режим отображения рабочего пространство Compositing. В окне
3D-View(справа внизу) поставь режим Rendered.

Сейчас у нас есть только нод DiffuseBSDF, который задаёт цвет, но мы же хотим ещё получить и отражение. Для этого нам понадобится нод шейдера GlossyBSDF. Отлично. Но нам нужно, чтобы оба нода работали одновременно. Для этого надо добавить нод MixShader, который смешивает два шейдера.

Как видишь, на шарике появился блик. Если ты будешь двигать слайдер влево, то первый шейдер будет ярче, если вправо, то второй. А теперь представь, что мы передадим на вход Facкарту значений, с числами от 0 до 1. То есть такую карту где значение 0 – полностью включает первый шейдер, а значение 1 – полностью второй, значение 0,5 – оба шейдера одинаково работают. А теперь, как мы уже договорились, представь, что 0 это чёрный, а 1 это белый цвета.

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

Здесь для наглядности используется процедурная текстураChecker. Как мы видим, в некоторых местах, где значение текстуры черное, проявился первый шейдер DiffuseBSDF, а где значение белое – шейдер Glossy BSDF. Это потрясающе!

Но мы совсем не контролируем процесс. Давайте добавим больше способов управления! Добавь нод Converter – Math между нодами текстуры и ShaderMix. И переключи его на Multiply (умножение). Ты заметишь, как отражающие клетки сразу потускнели (в два раза, если быть точным). А почему?

Нод Mathпроизводит математические операции над теми значениями, которые получает. А умножение на 0.5, это же то же самое, что и разделить на 2. И когда мы получаем карту значений от нода текстуры, мы делим все значения пополам. Ноль делить на два равно ноль. А вот единица деленая на два уже даёт 0.5. Вот так у нас и уменьшилась яркость второго шейдера. Понятное дело, что умножать ноль на какое-либо число бесполезно, всё равно получим ноль. И шахматная доска, где всего два цвета, – не лучший пример для нода Math. Однако зачастую ты будешь иметь дело с более сложными текстурными картами и для получения реалистичного изображения тебе нужен будет контроль над происходящим, который и обеспечивает нод Math.


Карты bump

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

Карты bump, как и карты отражений, это черно-белые 8-битные изображения. И это только 256 цветов черного, серого или белого. С помощью этих значений карты bump сообщают 3D-редактору всего 2 вещи: деформировать геометрию вверх или вниз.

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

Карты bump отлично подходят для создания на поверхности модели мелкой детализации, например, пор или морщин на коже. Кроме того, их сравнительно легко создать в таком 2D-редакторе, как Photoshop или Gimp, помня при этом, что работать нужно только с черно-белыми цветами.

Как применять bump-карту на практике?

Для того, чтобы начать пользоваться bump-картами достаточно соединить нод текстуры) с нодом материала в порт Displacement. Просто, не правда ли?

На данном примере использована текстура Voronoi. Но как-то плохо видно, да? Давайтеповысим контрастность нашей текстуры. Добавим нод Bright /Contrast из подменюColorмежду нодом MaterialOutputи нашей текстурой. Увеличим контраст до 2. Ну вот, теперь заметно!

Так, что же произошло? Текстура увеличила контрастность и это повлияло на нашу карту выпуклостей.

А что делать, если мы хотим наоборот, там, где сейчас выпуклости, сделать вмятины? Что делать тогда?

Используем нод Color – Invert. Он получает на вход цвет и инвертирует его с некоторым фактором. Фактор равен нулю – нет инверсии, единице – полная инверсия.

Заметь, что bump-карты не меняют геометрию объекта. Выпуклости только визуальные.

Нод ColorRamp

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

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

Как это работает? Нод получает карту значений, в нашем случае это текстура Voronoi. Выкладывает значения (от 0 до 1) в одну линию и рядом прикладывает линию цвета своей шкалы. И замещает старые значения новыми в тех местах где они были. На примере, на картинке выше все черные цвета так и остались черными, все серые, интенсивность которых выше 0,15 (позиция белого слайдера) стали белыми (то есть не отображаются на карте выпуклостей), а то что было между, приобрело равномерно распределенный цвет от белого до чёрного. Это и образовало такие аккуратные ямки, как у сыра Маасдам.

Карты Displacement

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

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

Карта Displacementнакладывается с помощью модификатора Displace.

Далее следует выбрать текстуру из уже нам известных. Свойства текстур мы уже рассматривали. Их отличает лишь то, что они настраиваются не с помощью нодов, а в соответствующей вкладке панели свойств. Ты можешь задать имя текстуре, выбрать её тип. Для коррекции используй ColorRamp. Принцип тот же, как и с нодом ColorRampиз предыдущего раздела. Раздел Adjustсовмещает в себе аналог нодаBright / Contrastи опцию Saturation (яркость). Ну и конечно же ты можешь выбрать картинку для загрузки в качестве текстуры.

Задания


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: