Создание океана в Blender

15 ноября 2014 74 комментария Артем Слаква Симуляция и частицы

В данном уроке Вы узнаете как:

  • Генерировать океан с помощью модификатора
  • Создавать группы вершин с помощью Dynamic Paint
  • Настраивать материал для океана и пены

Финальный результат

ocean

Моделирование океана

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

Находясь на первом кадре установите ключевой кадр для параметра модификатора Time (его значение должно быть 1) и затем на 250-ом кадре установите значение Time равным 10 и снова установите ключевой кадр. Чтобы анимация была равномерной, измените в окне Graph Editor кривую на прямую линию (V — Vector):
ocean1
Теперь необходимо настроить необходимые параметры модификатора и выставить камеру. Все настройки делятся на три основных группы: геометрия, волны и пена. В настройках геометрии мы уже анимировали значение Time. Также можно настроить повторение геометрии по осям X и Y, глубину, размер и разрешение (чем выше, тем качественнее, но и тяжелее для ПК). В разделе Waves производится настройка высоты волн, скорости ветра и их количества. В самом низу нужно отметить пункт для генерации пены и отрегулировать ее количество (увидеть пену можно отметив пункт Texture Solid в Blender Internal).

Произведите собственную настройку океана и выставите камеру:
ocean2
Продублируйте океан (куб), расположите его позади первого и увеличьте параметр Repeat X до двух. Затем еще раз и уже Repeat X установите равным 3. Делается все таким способом, чтобы не создавать лишней геометрии, а также была возможность настроить меньшее разрешение для дальних объектов. Они находятся слишком далеко и нет никакого смысла дожидаться рендеринга несколько часов.

Увеличьте камеру, чтобы было видно, какие области она захватывает и расположите части океана так, чтобы не было зазоров по краям. Дальние объекты опустите немного ниже, чтобы в случае поднятия волны не образовывались отверстия на поверхности.

На виде из камеры 3-ю часть океана Вы скорее всего не увидите. Для это на вкладке камеры нужно увеличить параметр Clipping до тех пор, пока объект не будет полностью виден (лучше с запасом):
ocean3
Добавьте в сцену Сюзанну (Subdivision Surface 2 и Smooth) и расположите ее перед камерой как на рисунке ниже. Переместите 3D-курсор в тоже место, где находится обезьянка и добавьте в сцену пустышку. Выделите обезьянку, затем пустышку и свяжите данные объекты (Ctrl + P):
ocean4

Dynamic Paint

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

Не смещая 3D-курсор добавьте в сцену цилиндр. Перейдите на вкладку физики, активируйте Dynamic Paint и укажите цилиндр в качестве кисти (Brush). Затем на вкладке Object создайте группу состоящую из одного цилиндра и настройте его внешний вид (чтобы он на закрывал Сюзанну).
ocean5
Теперь выделите куб (океан) и на вкладке физики активируйте Dynamic Paint и укажите его в качестве полотна (Canvas). Укажите тип поверхности и только что созданную группу состоящую из цилиндра:
ocean6
Выделите обезьянку, на вкладке физики активируйте Dynamic Paint и укажите ее в качестве кисти (Brush). Здесь же измените параметр Paint Source:
ocean7
Перейдите на вкладку Object и создайте группу состоящую из одной обезьянки (как мы делали это для цилиндра). Затем выделите океан, создайте еще одну группу вершин на вкладке физики и назовите ее (на пример, macaco). В меню Brush Group укажите только что созданную группу состоящую из одной обезьянки:
ocean8
В меню Dynamic Paint Output для обеих групп (Surface и macaco) нажмите кнопку + напротив образовавшихся групп. Поля перестанут быть красными и они появятся в соответствующих меню на вкладке Object Data.

Чтобы при анимации Сюзанна «плавала» на поверхности океана, а не оставалась неподвижной, создайте для пустышки два ограничителя и привяжите ее (а значит и обезьянку) к поверхности океана. После заново выставите обезьянку как Вам нужно:
ocean9
Проиграйте анимацию, выберите подходящий кадр для рендеринга и выполните пробный OpenGL рендеринг, чтобы убедится в отсутствии зазоров между волнами. После этого приступим к настройке материала океана.

Настройка окружения, освещения и материалов

Перейдите на вкладку мира и активируйте Sky Texture с настройками по умолчанию:
ocean10
В окне Outliner скройте цилиндр и пустышку из виду и финального рендера и создайте новый материал для океана.

Произведите следующую настройку нодов для океана. Ее также можно разделить на три части: настройка шейдера океана, настройка пены и смещения (displacement). При настройке пены используется два нода Attribute. В первом указано название пены генерируемой модификатором, а во втором группы созданной нами при при помощи Dynamic Paint.

Название для группы генерируемой модификатором Вы придумываете сами и указываете его на вкладке модификатора. Для пены вокруг Сюзанны у Вас название должно быть такое же как и на скриншоте (посмотреть его можно на вкладке Object Data в меню Vertex Color).
ocean11
Добавьте в сцену цилиндр без заполнения его центра и увеличьте его в размере так, чтобы создать панораму вокруг океана. Добавьте ему шейдер Smooth, в режиме редактирования пометьте одно ребро, которое находится позади камеры (Mark Seam) и выполните его развертку (U — Unwrap). Создайте для него новый материал, тип Emission и в качестве текстуры загрузите любую текстуру неба. Включите режим отображения Rendered и настройте развертку как Вам необходимо. Также можете изменять размеры самого цилиндра и вращать его:
ocean12
Для Сюзанны создайте стандартный материал Diffuse по умолчанию. Чтобы лучше ее осветить добавьте в сцену дампу (тип Spot), настройте силу света и отключите отбрасывание теней для нее:
ocean13
Чтобы усилить свечение солнца и создать отражение на воде добавите в сцену UV-сферу и лампу (тип Point). Сферу расположите в том месте, где находится солнце на текстуре, а лампу над ней. Для сферы настройте материал Emission, силу света и цвет, чтобы сфера максимально сливалась с текстурой. Для лампы выставите такой же цвет как и для сферы и настройте силу света:
ocean14

Пост-обработка

Перед рендерингом изображение на вкладке рендера в меню Light Path отключите пункт Reflective Caustics, чтобы избежать «светлячков» перед Сюзанной. Выполните рендеринг, перейдите в редактор нодов и произведите пост-обработку изображения. В ней мы всего лишь создадим дополнительное свечение в ярких местах изображения и немного «заблюрим» данное свечение. Таким образом сфера (наше солнце) идеально впишется в общую картину:
ocean15
На этом все! Делимся своими результатами в комментариях!

источник урока

О сайте

На данном сайте Вы сможете найти множество уроков и материалов по графическому
редактору Blender.

Контакты

Для связи с администрацией сайта Вы можете воспользоваться следующими контактами:

Email:
info@blender3d.com.ua

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

Подписывайтесь на наши страницы в социальных сетях.

На сайте Blender3D собрано огромное количество уроков по программе трехмерного моделирования Blender. Обучающие материалы представлены как в формате видеоуроков, так и в текстовом виде. Здесь затронуты все аспекты, связанные с Blender, начиная от моделирования и заканчивая созданием игр с применением языка программирования Python.

Помимо уроков по Blender, Вы сможете найти готовые 3D-модели, материалы и архивы высококачественных текстур. Сайт регулярно пополняется новым контентом и следит за развитием Blender.