Нодевеmber 2025:
Саймон Тележкин рассказал, как создал кубик льда для ежегодного челленджа Nodevember. Он показал, как настроил форму, объём внутреннего тумана, рассеивание пузырьков и капель, а затем выполнил затенение каждой части.

Введение
Привет, я Саймон Тележкин, 3D-художник с чуть более чем 20-летним опытом работы в компьютерной графике. Я начал с 3ds Max 4.2 ещё в начале 2000-х, и с тех пор 3D остаётся для меня основным способом познания мира.
Я всегда стремился изучать новые инструменты и техники, а не ограничиваться узкой специализацией. За годы работы я освоил большинство основных пакетов компьютерной графики, но в последнее время мой основной рабочий процесс вращается вокруг Blender, Houdini и DaVinci Resolve.
Я работал универсалом в небольших командах, перескакивал между разными визуальными стилями, изучал промышленный дизайн, создавал интерактивные музейные модели, делал игры для социальных сетей, пару лет работал в Parity художником NFT и выполнял множество внештатных работ. Сейчас я в основном фокусируюсь на изучении Houdini и VR из чистого любопытства и удовольствия.
Этот кубик льда был создан для третьего дня Nodevember, и это фактически моя первая серьёзная попытка выполнить задачу «одно произведение искусства в день». Большинство моих личных проектов длятся от нескольких месяцев до нескольких лет, и многие так и не доводятся до конца. Поэтому участие в Nodevember показалось мне способом сломать эту закономерность и внести немного хаоса и скорости в мою рутину.
На момент написания этого текста я нахожусь на 16-м дне челленджа и могу с уверенностью сказать: создавать полноценное произведение каждый день гораздо сложнее, чем я ожидал. Я до сих пор не уверен, что закончу весь месяц, но даже сейчас процесс заставил меня принимать решения быстрее, агрессивно упрощать и прекращать полировку слишком рано — все эти навыки очень ценны.
Рабочий процесс создания льда
Прежде чем работать в Houdini, я просмотрел множество реальных референсов льда. Сразу бросились в глаза несколько вещей:
- Края никогда не бывают идеально острыми, всегда есть плавное закругление и таяние.
- Внутренние пузырьки обычно скапливаются в местах с меньшей плотностью.
- У льда есть лёгкий молочный слой рассеивания, а не только прозрачность.
Эти мелкие детали дали мне направление, какой должна быть сложность внутренней структуры и какая микровариативность нужна поверхности.
Одно из самых больших преимуществ процедурного моделирования — это возможность повторно использовать и мутировать предыдущие сети вместо того, чтобы начинать каждый проект с нуля. Некоторое время назад я следил за уроком Entagma по созданию кварцевого кристалла в Houdini, и я также помню, как Арвид Шнайдер проводил аналогичный урок.
Вся эта проблема «полупрозрачного кристалла с внутренним шумом и структурой» уже очень близка ко льду.
- Поэтому я использовал кварцевую установку в качестве концептуальной основы:
- Перестроить логику основного кристалла.
- Заменить форму кубом.
- Добавить внутренние пузырьки.
- Добавить капли на поверхности.
- Переработать затенение.
- Переместить всё в Solaris и выполнить рендеринг с помощью Karma.
Этот кубик льда стал моим первым рендером в Karma, что сделало его отличной возможностью наконец перестать избегать Solaris. Вся установка на самом деле очень стандартна, ничего экзотического или чересчур умного:
Генерация формы:
- Начать с куба.
- Добавить плавное изгибание и неровности, чтобы избежать идеально прямых краёв.
- Применить лёгкое разрушение, чтобы создать внутреннюю структуру.
- Использовать шумовые маски, чтобы определить, где фрагменты разрушенной структуры сливаются и исчезают.
Внутренний объём тумана. Это добавляет характерный молочный «свет» внутри льда:
- Низкая плотность VDB.
- Шум для нарушения однородности.
- Смешать дополнительный 3D-шум поверх предыдущего.
Пузырьки были размещены процедурно в зависимости от того, где туман тоньше. Логика:
- Вычесть объём vdb куба и vdb для тумана.
- Разместить пузырьки в объёме.
- Создать разницу в атрибуте масштаба пузырьков, чтобы избежать повторений.
- Перевернуть нормали и объединить с высокополигоном, булеаны не нужны.
Капли на поверхности. Простая установка «разброс + копирование в точки»:
- Добавить шумовую маску. Варьировать масштаб капель случайным образом с помощью узла scatteralign на основе маски.
- Копировать сферы в точки.
- Вычесть vdb исходного куба.
- Лёгкое размытие.
- Большинство капель исчезнет, но это нормально.
Затенение
Материал льда. Основной шейдер я построил с нуля для Karma. Ключевые моменты:
- Высокая пропускаемость, но не чистая прозрачность.
- Лёгкое рассеяние, похожее на подповерхностное, внутри тонкого слоя объёма.
- Трипланарная карта грязи с высокой контрастностью на reflection_gloss.
- Не переусердствовать с дисперсией. Это красиво, но лёд — не алмаз, и дисперсия во льду практически незаметна в кубиках льда. Я поставил 100 (здесь большее число означает более тонкий эффект).

Для капель воды используется простой материал воды. Для внутреннего тумана — Karma pyroshader. Я совершенно не разбираюсь в том, как это всё работает, поэтому просто подбирал числа, пока не добился нужного результата.

Освещение, окружение и рендеринг
Для льда освещение делает большую часть работы:
- Пара жёстких источников света с разных сторон.
- Немного тусклого HDRI для отражений.
- Слабый боковой свет, чтобы придать форму поверхности и сделать её не плоской.
- Тёмный фон, чтобы края были чёткими.

Это был мой первый опыт рендеринга в Karma, поэтому мне пришлось многое выяснять на ходу. Сложновато поначалу, но если что-то можно сделать с помощью нодов, это в конечном итоге выигрышно. Очень удобно копировать и вставлять настройки из предыдущих проектов в виде деревьев нодов, а не кучи параметров.
Так легко иметь разные наборы настроек, которые можно сохранить и просто отложить в сторону, что это того стоит. Я был удивлён, насколько быстро это работает. Каждый кадр рендерится за полминуты. Сделал простую анимацию с выражением «30*sin($FF/$FEND*180)» для вращения по Y. Это поворачивает объект на 30 градусов в одну сторону. Затем скопировал отрендеренные кадры, изменил скорость в обратном направлении, чтобы зациклить.

Пост-обработка в DaVinci была минимальной:
- Мягкий контраст.
- Лёгкий сдвиг тонов в сторону более холодных бликов.
- Симулированный дополнительный синий шум в качестве эффекта зернистости, чтобы выглядело как плёнка, а не рендер.
- Также сделал центр кубика льда гораздо более заметным.
- В конце — повышение резкости.

Примерное время на каждом этапе:
- 2 часа на создание процедурной системы.
- 2 часа на то, чтобы разобраться в Solaris/Karma как следует.
- 1 час на рендеринг и повторный рендеринг.
- 30 минут на цвет и финальные штрихи.
- 1–2 часа чистого арт-дирекции: настройка параметров, пока не стало выглядеть правильно.
Мой главный совет по созданию убедительных материалов: не думайте о шейдере изолированно. Воспринимаемое качество материала складывается из нескольких факторов:
- Как свет проходит через объект.
- Тип структуры и детали внутри объекта.
- Как вы настраиваете окружение, свет и цвет вокруг него.
У вас может быть технически правильный шейдер, но если внутренности пустые, а окружение плоское, всё равно будет выглядеть ненатурально. Для льда важны крошечные пузырьки, микрочипы, мягкое закругление краёв и едва заметные цветовые сдвиги в тенях — гораздо больше, чем дополнительная настройка слайдера шероховатости.
По мере добавления элементов в сцену каждый из них улучшает изображение примерно на 10%, и вам приходится всё больше полагаться на интуицию. Типичный рабочий процесс:
- Моделирование и настройка процедур.
- Шейдинг и проработка внешнего вида.
- Рендеринг.
- Пост-обработка.
При процедурном моделировании у вас всегда есть возможность вернуться и скорректировать более ранние этапы, но это всё равно требует времени и внимания. Поэтому полезно иметь хотя бы общее представление о том, что действительно поможет финальному изображению, а что — просто шум.
Вот где туториалы «от А до Я» не так полезны. Например, когда я добавляю едва заметные изгибы и неровности к кубу, который всё ещё остаётся серым материалом в окне просмотра, я уже знаю, что это улучшит отражения и блики позже. Это понимание живёт в моей голове, а не в текущем кадре, который вы видите на экране.
Одна вещь, которую я считаю полезной, — это посмотреть на готовый рендер, а затем систематически отключать целые блоки настроек, чтобы увидеть, какой вклад они вносят. Если убрать капли, если убрать пузырьки, если выровнять края, если отключить одну внутреннюю маску, насколько хуже станет изображение?
Не все изменения равноценны, и такое сравнение очень быстро показывает, какие части важны, а какие — просто «приятные дополнения». Я сделал несколько GIF-файлов, чтобы сравнить, насколько большое влияние оказывали финальные добавления. Вот окончательный результат:
Здесь я убрал свет, который придавал больше формы (оказалось, это незаметно):
Убрал один из задних источников света:
Убрал весь свет, кроме HDRI:
Убрал блеск отражения, карту Grunge с трёхгранной разверткой:
Убрал SSS и глубину прозрачности:
Убрал капли:
Убрал внутренний туман:
Убрал пузырьки:
Убрал внутреннее разделение:
Убрал основные неровности поверхности куба:
Убрал постобработку и цветокоррекцию в DaVinci Resolve:
Заключение
Этот проект не был посвящён изобретению новых техник. Это было о:
- Использовании старой процедурной идеи по-новому.
- Принуждении себя работать в условиях однодневного дедлайна.
- Окончательной доводке полного проекта через Solaris и Karma.
Если вам нравятся процедурные рабочие процессы и нужна профессиональная помощь с процедурными системами вроде Houdini или узлов Blender, я всегда рад пообщаться или обменяться заметками. Не стесняйтесь обращаться любым удобным способом. Вот мои страницы в Twitter и ArtStation.
Саймон Тележкин, 3D-артист
Интервью проведено Глорией Левин
Автор: Simon Telezhkin
Материал подготовлен на основе статьи 80.lv. Перевод — Skills Up.