Привет.
Прошлый урок мы закончили вот этой картинкой:

Вот так сразу не каждый заметит, но в передней части «лежит» искусственная вода. Если в ней будет какой-то объект, который будет органично в нее встроен, то небольшие ухищрения с маскировкой краев объекта воды, и вот вы уже фактически добавили в живую фотографию то, чего там быть просто не может. Акулий плавник, например. Понимаю, что звучит так, что и нейросеть бы справилась. Но это только на первый взгляд. Как только захочется, чтобы плавник смотрел в нужном направлении и был в нужном месте кадра, сразу вылезут сложности. А повторные генерации или редактирование уже получившегося кадра какой-нибудь способной нейросетью вроде ChatGPT – сегодня удовольствие отнюдь не дешевое. С ручным же управлением сценой все куда проще. Так что оставим нейросети и продолжим разбираться с Blender.
Для начала давайте немного определимся, что я имею в виду, когда говорю про объем. Если помните, то в прошлом выпуске я показывал вам свою давнюю работу в рамках знакомства с моделированием воды. Выглядела она вот так:

И вы, разумеется, заметили, что, в отличие от той поверхности, к которой был применен модификатор Ocean и которую мы добавили к HDRI-карте, эта вода прозрачная и через нее можно рассмотреть даже дно (в левой части кадра это видно). И мы сможем добиться такого же эффекта (ну или близкого).
Итак, давайте приступим. Мы по-прежнему будем использовать модификатор Ocean, но практически сразу вы увидите различие в подходе. Добавим в сцену куб и перейдем в уже немного подзабытый режим редактирования, чтобы подразделить его с помощью инструмента Subdivide:

На изображении выше вы видите результат сначала подразделения куба 10 раз, а потом повторного применения инструмента Subdivide еще 3 раза. Нам потребуется побольше геометрии, поэтому пусть будет много полигонов.
Далее отправляемся во вкладку Modifiers окна Properties за тем самым «океаном». Если помните, то после его применения в прошлый раз у нас сразу же появилась плоская поверхность с волнами. Сегодня нам нужно добиться немного иного эффекта. Поэтому после того, как выделите куб и примените к нему модификатор Ocean (куб временно превратится в ту самую искаженную волной плоскость), проследуйте в настройку Geometry и смените Generate на Displace.

Куб снова станет кубом. Далее вам необходимо переключить метод отображения объектов во Viewport на Rendered и произвести небольшие изменения в настройках модификатора. Чтобы не проговаривать каждую из них, просто повторите то, что вы видите на изображении ниже:

И раз уж мы уже довольно далеко продвинулись, то давайте немного коснемся сегодня и анимации. Это не будет знакомством ради знакомства. Ее возможности позволят добиться еще большей вариативности и еще немного приблизиться к восприятию физики процессов, которая заложена в Blender. Вам необходимо сделать следующее. Найдите пункт Time, кликните по значению внутри его окошка и впишите выражение #frame/24.

После того, как вы нажмете на Enter, окошко со значением станет фиолетовым. Затем разделите окно Viewport пополам горизонтально и выберите в нижнем окне тип редактора Timeline.

А затем нажмите на пробел. Если вы все сделали правильно, то вы должны увидеть что-то вот такое:
А теперь давайте перейдем к настройке материалов. Viewport нужно еще один раз подразделить. На этот раз удобнее сделать это вертикально. И в новом окне теперь следует выбрать Shader Editor. В нем либо сразу появится два узла, либо же вам нужно будет нажать на кнопку New в верхней части окна, чтобы добавить новый материал. В ноде Principled BSDF измените настройки так, как показано на изображении ниже. Когда во вкладке Transmission будете изменять параметр Weight с 0 на 1 — кубик станет прозрачным.

Значение IOR (показателя преломления), равное 1,333, — это величина, которая соответствует воде в реальном мире. Кубик стал похож на лед. В нем можно увидеть отражения той HDRI-карты, что стоит по умолчанию в настройках стартового файла. Если же у вас эта настройка неактивна, то изменить ее прямо сейчас можно вот здесь:
Сейчас же вам потребуется еще один нод в настройку материала водяного куба. Называется он Light Path. Когда он появится, соедините первый его коннектор с коннектором Alpha нода Principled BSDF:

Куб временно утратит красивый полупрозрачный окрас. Ничего страшного, мы его вернем позже. Теперь же нам нужно добавить немного ряби на поверхности нашей воды. Волны — это, конечно, здорово, но нам потребуется чуть больше деталей. Для этого добавьте к материалу куба ноды Noise Texture и Bump. Расположить их нужно в левом нижнем углу. Значение же отдельных параметров и способ соединения смотрите на изображении ниже:

Поверхность куба стала еще более неровной, покрывшись мелкими щербинками. Ну и завершающий штрих — это еще три нода, которые мы установим на этот раз в правой части. Для этого отодвиньте вправо узел Material Output и добавьте следующие три нода (очередность значения не имеет): Principled Volume, Volume Absorption и Mix Shader. Узлы соединяются следующим образом:

Я в качестве цвета выбрал вот такое сочетание:

Пока же мы видим какую-то зеленоватую зацветшую воду. Однако, как я много раз говорил, нам требуется немного деталей. Сегодня мы моделировать полноценный берег не будем, но импровизированный бассейн давайте сделаем. Добавьте куб (он должен появиться там же, где стоит ваш водяной блок). Перейдите в режим редактирования и удалите с нового куба верхнюю грань (только грань). Затем немного поднимите верхние кромки, чтобы водяной куб оказался ниже. А затем увеличьте новый куб по осям X и Y. Должно будет получиться что-то вроде вот этого:

Затем выделите верхние кромки и проэкстурдируйте их в разные стороны. Это делается с помощью поочередного нажатия клавиш E (английская) + S.

Видно, что с появлением ширмы в виде бассейна цвет воды изменился. Теперь он похож на некую аналогию чего-то лазурного. Пришло время увеличить и сам водяной куб. Давайте посмотрим видео, а потом я укажу на одну важную деталь:
Видно, что появились какие-то искажения. И вроде бы куб увеличивался по осям X и Y равномерно, но тем не менее почему-то появилось подобное несовершенство. Все дело в том, что мы масштабировали его в объектном режиме. Выделите его и проследуйте по адресу Ctrl + A → Scale:

После этого картинка поменяется на вот такую:

Можно сгладить поверхность. Выделите объект и щелкните по нему правой кнопкой мыши → Shade Smooth. Хотя это, в общем-то, не сильно и нужно, поскольку при переходе в метод шейдинга Rendered неровностей видно не будет. На ваше усмотрение, короче. А теперь давайте добавим в бассейн пару-тройку объектов, чтобы понять, как будет смотреться наша вода в естественной среде.
Для начала я все-таки сгладил воду. Пусть будет красивенькая. После этого мы перешли в настройки материала воды и выкрутили значение Density практически до нуля. Это позволит лучше рассмотреть объекты, что мы поместим в воду. Дальше мы воспользовались аддоном, о котором я рассказывал на одном из прошлых уроков, и сгенерировали камень. После этого назначили ему текстуру, которую я ранее уже применял к камню, но, когда я выбрал ее из имеющихся материалов, она почему-то отобразилась не так, как когда я добавил ее непосредственно из Blender Kit. В итоге камень все-таки окрасился как было нужно, и у нас получился бассейн с несколькими булыжниками, которые легко можно представить себе на берегу какого-нибудь острова. С помощью ползунка анимации, корректировки шума в ноде Noise Texture материала воды и настройки модификатора Ocean (высота волн, например) можно получить весьма разнообразную картинку водной поверхности. Так что тренируйтесь.
Два варианта работы с водой у нас есть. Безусловно, остаются еще и просто текстуры, но это уже не так интересно. Особенно когда видишь, как реалистично преломляется свет, падающий на части камня, расположенные под водой. В следующем уроке попробуем поработать с физикой воды и объектов (если мощи бука хватит). А пока занятия не бросайте. Если что-то непонятно, то спрашивайте. Будем разбираться вместе.
Увлекательного моделирования!