top of page

Bump mapping - это метод компьютерной графики, который делает рендерную поверхность более реалистичной путем моделирования небольших изменений поверхности. Однако, в отличие от смещения (displacement mapping), геометрия поверхности не изменяется. Вместо этого изменяется только нормаль поверхность, как если бы поверхность была смещена. Измененная нормаль поверхности затем используется для расчета освещения (с использованием, например, модели отражения Фонга), что дает появление деталей вместо гладкой поверхности.

Модель отражения Фонга была разработана Bui Tuong Phong в Университете штата Юта, который опубликовал ее в своей диссертации в 1975 году.

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


По сути Bump map - это изображение в оттенках только серого цвета, например:


 

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

Вариант реалистичного текстурирования с помощью: Bump, Normal, Specular, Displacement map.

Как видим, геометрия поверхности фактически не изменяется, это видно по неизменности отбрасываемой тени объектами.

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

Перейдем к непосредственному созданию Bump map в программе Photoshop. В качестве изначальной текстуры возьмем вот эту фотографию:

Путь: Image – Adjustments – Desaturate.

Далее, Image – Adjustments – Levels правим каналы. Необходимо быть осторожным, что бы не потерять все мелкие детали:

Для улучшения качества передачи мелких деталей используем: Filter – Sharpen – Sharpen.

Увеличиваем контрастность изображения:


 

Сохраняем полученное изображение – Bump Map.jpg
Переходим в Blender.
Создаем новый Mesh – Plane. Добавляем в Blender окно UV/Image Editor и окно Node Editor.
В окне 3D View переходим в режим редактирования, нажимаем U и выбираем пункт Project From View (Bounds), да внимание: нужно в окне 3D View перейти в вид отображения Orto и выбрать вид сверху. В окно UV/Image Editor подгружаем текстуру изначальную Diffuse. В окне Node Editor в Image Texture также подгружаем текстуру. В результате получаем:

 

Создаем в окне Node Editor еще один Node Image Texture, в который подгружаем Bump Map.jpg, обязательно в ноде выставить Non-color Data. Создаем новый нод Bump. Соединяем ноды как показано на изображении и получаем:

До применения Bump:

После применения Bump:

Если добавить еще пару нодов получим следующее:

Карта нормалей - это изображение в RGB цвете, которое используется для создания иллюзии детализации на поверхности mesh.

Красный, зеленый и синий значения карты нормалей соответствуют оси X, Y и Z в 3d мире

Следовательно, карта нормалей может хранить информацию об ориентации поверхностных нормалей сетки

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

С помощью Photoshop создадим карту нормалей. Открываем в программе файл, Filter > 3D > Generate Normal Map…
С помощью опции Invert Height (поставить/убрать галочку) можно инвертировать высоты или на себя или от себя.

Теперь переходим в Blender. процедура осталась прежней, только изменится набор в node-editor:

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

Текстура после применения текстуры Normal map + Sheder - Normal Map:

Теперь, все тоже самое, но добавим следующие Shader: Glossy + Mix

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

Отражающая способность объекта зависит от значений оттенков серого:

В этом примере показано, как фактически работает зеркальная карта:

Перейдем к процедуре создания Specular map. В программе Photoshop открываем текстуру и применяем уже известный метод: Image – Adjustments – Desaturate.

Далее правим каналы, путь: Image – Adjustments – Levels...

Для смягчения переходов используем: Filter - Blur - Gaussian Blur...

Теперь переходим в Blender. процедура осталась прежней, только изменится набор в node-editor. Фактически это будет синтез всех предыдущих карт: Bump map, Normal map, Specular map:

Но, не нужно забывать еще и о Displacement map.

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

Основу для карты можно взять из выше созданного по схеме Bump map файла. Если подключить Displacement map к нашей текстуре, то получим следующий вид Mesh:

Как создать/изменить геометрию Mesh (объекта) по карте Displacement? Для этого в режиме редактирования Mesh нажимаем “W” и выбираем пункт Subdivide Smooth. Другими словами многократно подразделяем объект на части. Применяем к Mesh модификатор Subdivision Surface. Чем выше ставим качество применения - тем лучше будет конечный результат, но и размер файла и ресурсы тоже увеличиваются пропорционально !

Далее применяем модификатор Displace:

В меню модификатора иногда нужно будет поиграться со значением Direction ! С помощью Strenght выставляем глубину применения изменений геометрии Mesh.
После, во вкладке Texture выбираем пункт меню Displace - Texture, Image or Movie и выбираем необходимый файл (по которому будет произведено изменение геометрии Mesh).

Теперь посмотри, что получилось в итоге:

3D

© 2018. Сайт создан на Wix.com

  • квадратная иконка facebook
BLENDER

Для связи :

Отлично! Сообщение получено.

bottom of page