Как сделать карту displacement для 3д макс

Обновлено: 06.07.2024

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

Есть несколько способов создать/имитировать рельеф в 3dsMax:

  1. Моделирование
  2. Bump maps
  3. Diffuse maps
  4. Normal maps
  5. Displacement

Рассмотрим их все по порядку, случаи их применения, плюсы и минусы:

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

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

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

2. Bump maps

Можно создать нехитрую черно-белую карту (растровую или процедурную) описывающую неровности материала – чем светлее участок карты, тем «выше» точка рельефа и наоборот. Bump-карты не изменяют геометрии вашего объекта, а лишь управляют отражением света от его поверхности, в результате чего создается иллюзия, что материал имеет неровности (Рис.2.А). Поэтому часто такой рельеф называют псевдорельефом.

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

Bump-карты могут существенно изменить внешний вид материала, а значит и сделать его интереснее. На Рис.3 все материалы созданы с использованием bump-карт.

Необязательно использовать только рисованные (или фотографические) Bump-карты. Вполне неплохих результатов можно добиться комбинируя стандартные процедурные карты доступные в 3ds Max - Рис.4.

3. Diffuse maps (Диффузные карты)

Взгляните на рисунок Рис.5. Между изображениями A и B почти не видно разницы. Тем не менее на рисунке Рис.5.А изображен материал только с диффузной картой (непосредственная окраска поверхности), на рисунке Рис.5.B к диффузной карте добавляется Bump-карта для формирования микрорельефа.

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

Однако для криволинейных поверхностей (особенно, если они отражают) bump-карты усиливают свою роль в формировании материала. На Рис.6.В. действие bump-карты очень заметно, а значит применение ее оправдано.

4. Normal maps (Карты нормалей)

В своей физике карты нормалей сходны с bump-картами. Отличие состоит в том, что карты Bump строятся на основе двух измерений (по шкале от черного до белого), а Normal во всех трех. Поэтому карты нормалей выглядят немного необычно (Рис.7).


Рис.7 (Автор рисунка: Cory Sponseller)

Карты нормалей очень активно используются в играх, так как позволяют существенно сократить количество полигонов, почти не потеряв в детализации модели. На Рис.8.А изображена низкополигональная (!) модель (700 полигонов), на Рис.8.В карта нормалей соответственно.


Рис.8 (Автор рисунка: Buddikaman)

Первоначальная высокополигональная модель (со всеми узорами и орнаментами) этого сундука содержала почти 2 миллиона полигонов. Понятно, что такой «тяжелый» сундук использовать в игре было бы просто невозможно.

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

5. Displacement (Смещение геометрии)

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

Для Displacement используют черно-белые карты высот (точно такие же как и для Bump).

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

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

Что же выбрать? Боюсь, что дать однозначный ответ здесь невозможно. Для каждой задачи вам понадобится свой способ формирования рельефа. И возможно, что в одной сцене вы используете и bump, и displacement, и normal; что-то сделаете реальной геометрией, а какая-то модель останется довольствоваться диффузной картой.

Как использовать карты микрорельефа в 3ds Max?

Если с честным моделированием все более-менее понятно, то как поступить с картами Bump, Diffuse, Normal, Displacement? Как заставить их работать?

Почти все карты (процедурные и растровые) в 3ds Max помещаются в специальные слоты (каналы). Слоты для материалов можно найти в Map Editor (Редактор материалов – горячая клавиша M) на свитке Maps (Карты) – Рис.10.

В зависимости от того, с каким типом материала мы в данный момент работаем, список карт будет меняться. На Рис.10 мы можем видеть карты для материала типа VrayMtl (материал используется с визуализатором Vray). Левый столбик свитка содержит названия карт. Самые часто используемые карты:

  • Diffuse (Диффузная – непосредственная окраска объекта, его фактура)
  • Reflect (Отражение – сила отражательной способности материала)
  • Refract (Преломление – насколько сильно материал преломляет свет)
  • Glossiness (Глянцевитость – сила размытия блика на поверхности)
  • Bump (Микрорельеф – карта неровностей поверхности)
  • Opacity (Непрозрачность – управляет прозрачностью объекта)

Правее названий карт располагается столбик с окнами-счетчиками, где можно указать силу действия карты на выбранный параметр. Большинство карт используют значения от 0 до 100, но встречаются исключения, например Bump позволяет задавать числа от -1000 до 1000. Галочка после окна-счетчика позволяет включить/исключить действие карты на материал.

Если в слоте не указана какая-либо карта, то слот содержит надпись None (Пусто). Если карта добавлена, то слот меняет свое название на имя карты – Рис.11.

Добавить карту можно, щелкнув по слоту левой кнопкой мыши и в открывшемся списке выбрав требуемую, нажать ОК. Если карта выбирается растровая (Bitmap), то после необходимо указать в диалоговом окне путь к растровому файлу. Удалить карту из слота не сложнее – правая кнопка мыши по слоту, выбрать в контекстном меню команду Clear (Очистить) или Cut (Вырезать), в последнем случае карта при удалении будет помещена в буфер.

Итак по порядку.

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

С диффузной картой дело обстоит точно также как с картой Bump. Только слот следует использовать Diffuse. Это по сути самое простое текстурирование объекта – просто окрашивание его в какой-то рисунок.

Карты нормалей помещаются в слот Bump, но в списке тип карты следует выбрать Normal Bump (даже если карта у вас растровая), после в настройках самой карты Normal Bump указать непосредственно карту, отвечающую за микрорельеф – Рис.12. Получится некоторая вложенность «карта в карте».

Карты Displacement нужно помещать в слот Displace. Следует учитывать, что чем большее разрешение имеет карта, тем качественнее произойдет смещение геометрии, но тем больше будет время визуализации. Иногда большие карты просто «подвешивают» компьютер. Displacement - очень затратная по расчетным ресурсам технология.

Также можно поместить карту в слот модификатора VrayDisplacementMod, предварительно назначив последний на ваш объект. Актуально, только, если вы используете визуализатор Vray.

Где найти карты?

Карты Diffuse – это фотографии, рисунки или коллажи из того и другого. Bump и Displace в большинстве случаев представляют собой обесцвеченные (использовать цветные изображения бессмысленно) и скорректированные аналоги диффузных карт. Карты нормалей можно получить с помощью плагинов также из обычных рисунков или фотографий. Но если у вас под рукой есть высокополигональная копия объекта, то имеет смысл «снять» Normal Map с high-poly модели и спроецировать на low-poly, но это тема отдельного урока.

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

alt

Displacement – отличный инструмент, чтобы визуализировать сложный рельеф на простых формах. Но как быть, если нужно превратить рельеф в геометрию? Для этого можно воспользоваться аналогом инструмента – модификатором Displace. Он выдавливает рисунок прямо на сетке объекта, задавая ему неровности.

1. Создание рельефа

Прежде всего необходимо создать высокополигональный объект. Чем больше будет полигонов, тем выше окажется качество проекции рисунка. Затем нужно перейти в Modify – Modifier List – Displace.

Как только модификатор применится – появится оранжевая рамка. Если рамки нет или она сильно отличается по размеру от объекта, то модификатор применился некорректно.

Displace

В разделе Image задается текстура, по которой создастся рельеф. Нажав кнопку None в подразделе Map, можно будет выбрать любую стандартную карту 3ds Max. В подразделе Bitmap устанавливается любое стороннее изображение. Кнопками Remove Map/Bitmap назначенные карты удаляются.

О полезных картах, которые можно использовать в данных разделах, вы найдете в статье «10 самых нужных карт 3ds Max»

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

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

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

Blur

2. Изменение формы рельефа

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

Planar – проекция в виде плоскости. Больше всего подходит для прямоугольных ровных объектов.

Cylindrical – проекция в виде цилиндра. Исходя из названия, больше всего подходит для цилиндрических объектов.

Spherical – сферическая проекция.

Shrink Wrap – второй вариант сферической проекции. Отличается от предыдущего тем, что имеет всего один полюс, в котором сшивается текстура. Spherical имеет 2 таких полюса.

Shrink Wrap

Параметры Length, Width и Height отвечают за размеры проецирующей формы. Изменяя эти значения, можно изменять размер рисунка.

U/V/W Tile изменяет повторение текстуры в пределах проецирующей плоскости. Flip просто отражает текстуру по какой-либо оси.

U/V/W Tile

3. Быстрая настройка проекции

В разделе Alignment находится набор кнопок, благодаря которым можно быстро изменять проецирующую плоскость.

X, Y, Z – выравнивание плоскости по какой-либо из осей.

Fit – масштабирование плоскости в соответствие с габаритным контейнером объекта.

Center – устанавливает плоскость по центру объекта.

Bitmap Fit – задает плоскости размер изображения, которое можно выбрать на компьютере. Причем, картинка не обязательно должна быть такая же, как и в модификаторе.

Normal Align – перемещает и размещает плоскость по нормалям объекта. Для использования нужно включить этот режим и нажать ЛКМ на самом объекте.

View Align – выравнивает плоскость относительно точки взгляда.

Region Fit – растягивание плоскости по объекту.

Acquire – позволяет выбирать для настройки размера плоскости другой объект.

Reset – возвращает плоскость к изначальной форме.

Alignment

Этот модификатор имеет довольно узкий список задач. Больше всего он нужен при создании моделей, предназначенных для ЧПУ станков. Для визуализации он полезен при создании барельефов. Но тогда придется задуматься о снижении числа полигонов. Конечно, в этом поможет модификатор Optimize. Либо, если рельеф несложный и его можно повторить сплайнами, воспользуйтесь ShapeMerge.

photo


Фотография реального полотенца из каталога.

Создание карты Displacement

Издалека, полотенце выглядит как множество хаотичных выпуклостей. И один способ создать карту displacement: это сделать много мелких выпуклостей, используя процедурный шум (procedural noise) маленького размера.

pic1

Другая идея: использовать разновидность пористого шума (cellular noise) :

pic2

Но для этого примера, я собираюсь сделать немного более детализированную текстурную карту в Photoshop-е. Которая, возможно, будет просчитываться быстрее, чем процедурные Noise или Cellular карты.

Запускаем Photoshop, создаём новый документ 1024х1024 пикселей, цвет задника (background) чёрный. Выберем кисть с чёткими границами по краям (hard brush).

Изменим кисть и придаём её размеру немного неровной структуры (Size jitter).

pic4

Включим распыление (Scatter) и увеличим его количество (Count).

pic5

Во вкладке Color Dynamics изменим значение Brightness Jitter. Это создаст имитацию эффекта разных значений высоты у каждой ворсинки полотенца.

pic6

Теперь выберем чёрный цвет и закрасим рисунок кистью. Вот часть рисунка.

pic7

Для создания карты с повторяющимся рисунком (tilable map) можно воспользоваться этим уроком.
Сохраняем файл. Теперь идём в max.

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

В max-е выбираем mentalray renderer. В редакторе материалов – Arch & Design материал.

  • Меняем значение Roughness (шероховатость) на 1, поскольку это шероховатый материал.
  • Убедитесь, что нет отражения (в mentalray соответствует параметру specular reflectivity).
  • Устанавливаем голубой цвет.
  • В Special Purpose Maps, в Displacement добавляем bitmap-карту, и устанавливаем значение displacement равное 3.
    Выбираем, карту displacement полотенца, созданную в Photoshop-е.

pic8

pic9


Настройка рендера

  • Создайте пробный объект, в данном случае, я просто создал объект Plane и используя
    простую технику редактирования сетки объекта сделал нечто похожее на полотенце.
  • В панели Render установите значения Min и Max Samples Per Pixel на более высокие, например,
    1 и 16 соответственно. Это необходимо, чтобы получить все те мелкие детали, которые
    создаст ваш displacement.
  • Для вкладки Shadows & Displacement настройки приведены ниже.
  • Жмём Render.

pic10

pic11

pic12

Вот результат:

Если у вас получился другой результат, убедитесь в том, что несколько раз размножили карту изображения (параметр tile) для того, чтобы получить мелкий шум.

Выглядит достаточно хорошо. Но давайте ещё добавим "эффект изношенности" или "чёсанной ткани".

Переводим bitmap-карту в тип Composite Map, которая содержит оригинал изображения и карту бóльшего шума, которая затем перемножается с вашим (созданным ранее) узором, придавая одним участкам меньше displace-эффекта, чем другим, таким образом воспроизводится "эффект изношенности" вещи.

pic13

pic14

Обратите внимание на то, что в шуме бóльшего размера нет 100% чёрного цвета, только серый. Это для того, чтобы на некоторых участках поверхности избежать эффект "пятнистого" displacement-а и 100%-ной изношенности.

pic14a

Вот этот бóльший шум:

А вот результат смешивания ваших карт основного шума меньшего размера с бóльшим шумом, выглядит более органично:

pic15

Вот файл (для Max 2009), с bitmap-версией, и с вариантом, использующим карту пористого и процедурного шума (cellular & noise procedural map).


В 3ds Max для работы с картами смещения существует несколько способов это такие как применение модификатора Displacement, и работа с материалами 3ds Max и шейдерами Mental Ray, я вам опишу способ, который мне дал Mental Ray 3.5. Основные инструменты управления Displacement’ом находятся в: Material Editor и Render Scene Dialog.


В редакторе материалов 3ds Max в стандартном материале используется слот displacement из свитка Maps, в материале Mental Ray используется слот Displacement из группы Extended Shaders. В окне диалога Render Scene для настройки displacement используется свиток Shadows & Displacement, группа Displacement (Global Settings), а так же группа параметров Ray Tracing свитка Rendering Algorithms для оптимизации процесса визуализации.

В редакторе материалов работа с картами смещения представлена в виде наборов шейдеров Mental Ray, которые в свою очередь добавляются в слот канала карт смещения.


Список шейдеров mental ray доступных в 3ds Max для работы с displacement.

Продолжив работу над сценой, я приступил к созданию шейдеров.

Моя цель заключалась не в создании ландшафтов, как таковых, т.к. 3ds Max нам дает массу разных возможностей по созданию ландшафтов. Я на примере модели ландшафта рассматривал работу двух шейдеров Mental Ray для создания смещения – это 3D Displacement (3ds Max) и Height Map Displacement (3ds Max) шейдеров.

Шейдер 3D Displacement (3ds Max).

Открыв редактор материалов, и нажав на кнопку Get Material. Я выбрал в списке материалов, материал Mental Ray – он послужил отправной точкой, в создании шейдера с использование карты смещения.


Создание шейдера (материала) Mental Ray.

Затем, для того, что бы шейдер формировал поверхность объекта, я добавил шейдер DGS Material (3ds Max) щелкнув на кнопке рядом с надписью Surface. После этого задал Diffuse Color практически белый цвет.

Т.к. модель, которую я создавал, не является прозрачной и отражающей, а блики должны быть мягкими я задал следующие значения параметров: Glossy Highlights (Глянцевитость) = R: 0,1; G: 0,1; B: 0,1; Shiny (Сияние) = 5; Index Of Refraction (Преломление) = 1,0


Добавление и настройка шейдера DGS Material (3ds Max) в слот Surface материала Mental Ray.

Добавляем шейдер смещения 3D Displacement:

Вернувшись в материал Mental Ray, и щелкнув на кнопке с надписью None рядом с пунктом Displacement. Это группа Extended Shaders. В открывшемся окне Material/Map Browser я выбрал 3D Displacement (3ds Max).

Далее я начал добавлять карту смещения, щелкнув на кнопке None рядом с надписью Extrusion Map. Выбрал Bitmap и затем открыл карту текстуры mountain.tga.

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

Методом перетаскивания, я перетащил карту из слота Extrusion Map в слот Direction Map на кнопку с надписью None, в появившемся диалоговом окне Copy (Instance) Map я выбрал Instance.


Создание шейдера для смещения 3D Displacement (3ds Max) и добавление карты текстуры.

Полученный шейдер я назначил объекту disp_object – это однополигонная плоскость.

Следующее что я сделал – настроил параметры смещения в шейдере 3D Displacement (3ds Max).

В параметрах шейдера 3D Displacement (3ds Max) я указал: Displacement Length = 150,0 mm; Direction Strength = 4,0

Произведя тестовую визуализацию, у меня получилась вот такая картинка.


Время визуализации 3 секунды, объем занимаемой ОЗУ 159,6 Mb.

Визуализация данной сцены выполнялась на компьютере с Intel Core2 Duo 6600 (2,4 GHz), 2 Gb RAM. (файл 019low.jpg)

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

Для изменений этого, я выполнил настройки в Render Scene, и перейдя на закладку Renderer, в свитке Shadows & Displacement я настроил параметры следующим образом:


Настройка Displacement (Global Settings) в окне Render Scene.

Убрал флажок View, это позволило выполнять алгоритм разбиения в единицах сцены, т.е. миллиметрах.

Установил значение Edge Length равным 0,5 мм, это оптимально разбивает геометрию, при этом, не нагружая память и ресурсы компьютера.

И установил Max. Displace равным 1000,0 мм. Max. Subdiv = 4К (4000).

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


Время визуализации 21 секунда, объем занимаемой ОЗУ 337,2 Mb.

Визуализация данной сцены выполнялась на компьютере с Intel Core2 Duo 6600 (2,4 GHz), 2 Gb RAM.

Шейдер Height Map Displacement (3ds Max).

Но результат, который нам дает шейдер 3D Displacement (3ds Max) не всегда дает четкие детали на модели, более четких деталей позволяет добиться шейдер Height Map Displacement (3ds Max), особенно при использовании карт нормалей (normal maps).

Выбрав в списке материалов, материал Mental Ray и поместил его в свободном слоте материалов.

Скопировав шейдер DGS Material (3ds Max) из созданного ранее шейдера 3D Displacement Shader используя Instance.

Я создал новый шейдер для Displacement, для этого щелкнув на кнопке None рядом с надписью Displacement, и выбрав шейдер Height Map Displacement (3ds Max).

После чего я добавил карту высот из файла mountain.tga к параметру Height Map.


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

Далее, я изменил параметры, Minimum Height = 0 мм; Maximum Height = 150 мм.

В окне Render Scene на закладке Renderer в свитке Shadow & Displacement я убрал Smooth, т.к. при работе с Height Map Displacement (3ds Max) шейдером, этот параметр желательно отключить.

Произведя визуализацию, я получил еще большую передачу деталей ландшафта.


Время визуализации 21 секунда, объем занимаемой ОЗУ 332,4 Mb.

Визуализация данной сцены выполнялась на компьютере с Intel Core2 Duo 6600 (2,4 GHz), 2 Gb RAM.

Давайте сравним результаты визуализации обоих шейдеров, вы увидите, что при визуализации с 3D Displacement шейдером модель очень сглажена, на ней нет всех деталей ландшафта, при визуализации же Height Map Displacement и с отключенным параметром Smoothing, появилось больше деталей на модели ландшафта, он стал с более резкими краями на перепадах, появились мелкие впадины и углубления.


Результат по времени визуализации обоих шейдеров на данном примере одинаков 21 секунда, объем расходуемой памяти так же составляет в разнице 2 -5 мегабайт. Но шейдер Height Map Displacement (3ds Max) визуализирует больше деталей, чем 3D Displacement (3ds Max).

Визуализация данной сцены выполнялась на компьютере с Intel Core2 Duo 6600 (2,4 GHz), 2 Gb RAM.

Главное помните, что вы должны грамотно строить свою сцену, и при использовании разных шейдеров, к примеру, 3D Displacement и Height Map Displacement можно добиться разных результатов, но при этом помните, что при работе с 3D Displacement флажок Smooth должен быть поставлен, а при работе с Height Map Displacement – убран.

Далее я создал текстуры гор, с использованием обычного материала Top/Bottom и материалов Standard с процедурными картами текстур типа Smoke и заданными цветами.

Сцена после финальной визуализации со всеми материалами и шейдерами и последующего композитинга в Photoshop выглядит вот так:


Финальная сцена с горным ландшафтом.

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


Схема финального шейдера для ландшафта показанного выше.

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

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