Запекание карты displace с геометрии

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

Баскетбольный мяч без микрорельефа (слева и по центру) и с микрорельефом (справа)
Баскетбольный мяч без микрорельефа (слева и по центру) и с микрорельефом (справа)

Наложить рельеф на мяч можно разными способами. Самый достоверный — полностью следовать геометрии реального мяча. Однако на поверхности баскетбольного мяча располагается от 10 до 35 тысяч мелких выступов, собственно и создающих его рельеф. Сделать такое моделированием можно, но итоговая модель будет весить очень много и сильно нагружать систему при рендере.

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

Процесс создания карты «дисплейса»:

  1. Переключиться на Blender Render (рендер Cycles пока не может запекать «дисплейс»).
  2. Добавить в сцену сферу (shift+a — Mesh — UV Sphere).
    1. Segments = 16
    2. Rings = 8
  3. В Т-панели (t) установить тип шейдинга Shading = Smooth.
  4. Добавить к сфере модификатор Subdivision Surface.
  5. Немного уменьшить сферу: s — 0.8 — ввод.
  6. Перейти в режим редактирования (tab):
    1. Удалить нижнюю половину сферы.
    2. Добавить плоскость (shift+a — Plane)
    3. Удалить у плоскости основной полигон (оставить только ребра): перейти в режим выбора полигонов (Face select), выделить полигон — del — Only Faces.
    4. Вернуться в режим выбора точек (Vertex select), выделить четыре оставшихся от плоскости ребра: w — Subdivide, number of cuts = 3.
    5. Выделить дополнительно нижний пояс точек у сферы (с зажатыми alt+shift).
    6. Заполнить промежуток: сtrl+e — Bride Edge Loops.
    7. Убрать скругления краев:
      1. Выделить внешний квадрат точек.
      2. s — 0.9 — ввод.
      3. e — s — 1.1 — ввод.
      4. Выделить два внешних квадратных лупа.
      5. В N-панели (n) установить для них Man Crease = 1.
Этап моделирования рельефа баскетбольного мяча (полусфера)
Этап моделирования рельефа баскетбольного мяча (полусфера)
  1. выйти из режима редактирования (tab).
  2. Добавить к получившейся полусфере модификатор Array. Count = 10, отметить галочку Merge.
  3. Добавить еще один модификатор Array, с такими же параметрами но для оси Y.
  4. Оба модификатора Array поднять выше модификатора Subdivision Surface.
Этап моделирования рельефа баскетбольного мяча (массив полусфер)
Этап моделирования рельефа баскетбольного мяча (массив полусфер)
  1. Применить оба модификатора Array.
  2. Открыть UV/Image Editor, создать новое изображение (Image — New  Image) нужного разрешения для запекания на него карты дисплейса. Галочка Alpha должна быть отмечена.
  3. Для полученного в п. 11 участка поверхности баскетбольного мяча с рельефом сделать развертку на созданное изображение в проекции вида «сверху»:
    1. Перейти в режим редактирования (tab), проекция вида сверху (num7) — выделить все (a) — u — Project From View (Bounds).
Развертка готового участка поверхности мяча
Развертка готового участка поверхности мяча
  1. Выйти из режима редактирования (tab).
  2. Добавить в сцену плоскость shift+a — Mesh — Plane.
  3. Увеличить ее размеры до всей площади готового участка поверхности баскетбольного мяча. Поднять так, чтобы она была чуть выше верхних точек полусфер.
Создание плоскости для запекания карты рельефа баскетбольного мяча
Создание плоскости для запекания карты рельефа баскетбольного мяча
  1. Создать для плоскости развертку на созданное в п. 12 изображение: tab — выделить все (a) — u — unwrap.
Создание развертки для плоскости
Создание развертки для плоскости
  1. Выйти из режима редактирования (tab).
  2. В меню Render — Bake:
    1. Установить Bake Mode = Displacement
    2. Отметить галочку Selected to Active.
    3. Выбрать сначала участок смоделированной поверхности баскетбольного мяча, затем, с зажатым Shift, плоскость.
    4. Нажать Bake.
    5. По окончании процесса «запекания» на созданную в п. 12 текстуру будет сохранена карта высот с модели участка поверхности мяча.
"Запекание" рельефа с смоделированного участка поверхности баскетбольного мяча в текстуру
«Запекание» рельефа с смоделированного участка поверхности баскетбольного мяча в карту «дисплейса»
  1. Cохранить полученную карту в файл (f3).
  2. Переключить режим запекания в Normals: Bake Mode = Normals, и еще раз нажать Bake — в результате будет запечена карта нормалей.
"Запекание" рельефа с смоделированного участка поверхности баскетбольного мяча в карту нормалей
«Запекание» рельефа с смоделированного участка поверхности баскетбольного мяча в карту нормалей
  1. Cохранить карту нормалей в другой файл (f3).

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

Подключение карты нормалей и "дисплейса" к материалу баскетбольного мяча
Подключение карты нормалей и «дисплейса» к материалу баскетбольного мяча

Одновременно карту нормалей и карту дисплейса к материалу обычно не добавляют, для получения хорошего результата достаточно использовать что-то одно. Материал приведенный в примере с двумя картами избыточен.

Иногда при попытке «запекания» (п. 19.4 или 21) Blender выдает ошибку «No objects or images found to bake to». Это происходит из-за того, что развертка либо модели с участком поверхности мяча, либо плоскости, потеряла связь с созданным в п. 12 изображением. Для устранения ошибки нужно выделить модель, перейти в режим редактирования (tab) и в окне UV/Imaga Editor выбрать созданное в п. 12 изображение, после чего выйти из режима редактирования (tab). Тоже самое нужно проделать с плоскостью. После чего повторно нажать Bake.