Создание строчки с помощью геометрических нод в Blender.

Первый этап.
Самая простая строчка с помощью геометрических нод

  1. Выделяем рёбра, вдоль которых хотим видеть строчку, Edge - Mark Sharp (это один из возможных способов, но далеко не единственный)
  2. Конвертируем эти рёбра в кривые с помощью Mesh to Curve, подключая в Selection именованный атрибут - sharp_edge
  3. Делаем Resample Curve с нужным шагом Length - это будет длина стежка
  4. Конвертируем Curve to Mesh, чтобы разбить на отдельные рёбра через Split Edges
  5. Снова конвертируем в кривые
  6. И опять Curve to Mesh, только уже с сечением в виде круга с 4 точками (фактически квадрат). Не забудьте поставить галочку Fill Caps.
  7. Подразбиваем полученную сетку с помощью Subdivision Surface.

Второй этап
Поворот и масштабирование стежков

  1. Сразу после Split Edges вставляем ноду Set Position – через неё мы будем изменять позицию отдельных точек объекта и поэтому..
  2. .. ставим ноду Position, которая её считывает.
  3. Будем использовать Vector Rotate для поворота вектора Position. В ней есть 3 входа для векторов: первый – это что будем вращать, туда Position ноду подключаем.
  4. Второй вход – центр вращения. Тут я использовал Evaluate on Domain в режиме Vector / Edge, чтобы на выходе получить позицию не точек, а рёбер.
  5. Ось, относительно которой будет вращение, тут нужен перпендикуляр к поверхности – это вектор нормали – Normal.
  6. С масштабированием проще, нода Scale Elements в режиме Edge и будет масштабировать все рёбра (стежки).

Третий этап
Делаем стежки более реалистичными

  1. Вставляем после Scale Elements ноду Extrude Mesh с выдавливанием вертексов на отрицательное значение по направлению нормали (Normal)
  2. Перенесём подразбиение сразу после экструда, чтобы сгладить форму стежка.
  3. Мне захотелось немного уменьшить толщину нитей по краям, как если бы они были немного сдавлены отверстием, в которые они заходят. Для этого проводим Spline Parameter – Factor через ноду..
  4. .. Float Curve, чтобы с помощью неё задать форму изменения сечения стежка.
  5. Вставил ещё один Set Position, чтобы управлять смещением стежка по нормали к поверхности – нода Vector Math – Scale на небольшое значение.

Четвёртый этап.
Делаем автоматическую развёртку всем стежкам

  1. Для каждого сплайна, который подходит к Curve to Mesh мы «запекаем» его длину (Length) с помощью Capture Attribute.
  2. Вставляем ноду Store Name Attribute, чтобы записать именованный атрибут с названием UVMap. Выбираем запись типа 2D Vector и пишем для Face Corner.
  3. Объединяем длины сплайнов в ноде Combine XYZ для X и Y значений. Таким образом мы как бы преобразовали параметры длины пути и длины формы в плоские UV координаты. 
  4. Упаковываем всё через ноду Pack UV Island без вращения. Теперь вы можете видеть, что развёртка для стежков полностью готова.

Пятый этап (бонус)
А что, если нам надо 2 стежка параллельно?

  1. Дублируем сплайны через Duplicate Elements, Amount = 2.
  2. Теперь надо сместить одну копию влево, другую вправо, для этого используем ноду Set Position.
  3. Сложность в том, что нам надо сместить сплайны перпендикулярно его направлению и вдоль вектора касательной к поверхности исходного меша. Этот вектор можно найти, сделав векторное произведение (Cross Product) нормали поверхности (Normal) и вектора касательной сплайна (Tangent).
  4. Мы нашли вектор, но нам надо сместить один сплайн в направлении этого вектора, а второй в обратную сторону, т.е. со знаком «-». Вставляем ноду Vector Math – Scale. Этот коэффициент сейчас и будем рассчитывать.
  5. Для расчёта Scale используем данные Duplicate Index (для нашего случае это будет индекс 0 и 1 для первого и второго сплайна, соответственно). Если вычтем из этого индекса 0,5, получим значения -0,5 и 0,5 соответственно. Но в Blender 1 единица это 1 метр, поэтому через ноду Math в режиме умножения (Multiply) мы умножаем этот коэффициент на небольшое значение, в моём случае 0,02, что соответствует двум сантиметрам между рядами строчек.

PS: В версии Blender 5.2 появилась новая нода – Mesh Bevel, с помощью которой можно делать фаски на выделенных рёбрах, таким образом можно автоматически ещё и геометрию швов сделать, например, как на этом видео:

Ссылка на видео RuTube

Если есть вопросы – спрашивайте. Не хотелось слишком подробно расписывать. В любом случае будет непонятно, пока вы сами не попробуете. Так что – пробуйте! Для начала можете взять все настройки и коэффициенты с моих скринов, ну а потом бесконечное поле для самостоятельных экспериментов. Удачи! 😉

Канал в ТГ | Группа ВК

Комментарии (8)

+8
RadionovAS1
Не знаком с блэндером к сожалению или к счастью. Но после этого урока желания еще меньше. Столько танцев с бубном ноды конвертации снова конвертации. В максе 10 лет назад один чел научил трем способам и до сих пор через сплайн матом делаю за три клика. Ну иногда редко, когда крупный ракурс делаю стежек с разверткой и размножаю по пути. Ну в 6 кликов. А тут прям образование нужно чтоб строчку запилить, может даже два.
+4
reightar
Геоноды довольно низкоуровневый инструмент, поэтому даже простые функции нужно собирать с нуля и это кажется громоздким. И по той же причине это очень гибкая штука, которой можно делать самые разнообразные тулзы под свои задачи (ну или качать готовые). Опять же, по этому уроку один раз создается процедурный модификатор, который дальше будет делать строчки в 2 клика.
+1
ashurovpro
геоноды новый инструмент не обязательно в нем работать что бы моделировать в блендере
+3
Action-sen
Геонода нужна не для того, чтобы сделать стежок на стуле. Геонода нужна, чтобы делать его автоматически. Один раз настроил, положил в библиотеку и тупо перетаскиваешь на нужный объект. Это урок не про создание стежка, а про создание инструмента. Вот ты делаешь его в 6 кликов, но каждый раз по шесть, а тут создал инструмент в 30 кликов и используешь его потом где надо в один клик. Я наоборот перешел на блендер после 20 лет макса и геоноды -- это топ штука. Распробовал.
+1
paz
Видео не открывается (
с VPN открылось. прикольно, классно
+1
GorillaZ
читать на середине стало скучно, но глянул видео с результатом...
видимо, надо почитать про блендер. если там самому можно создавать такие прааметрические штуки - это очень сильно могло-бы облегчить работу. надеюсь, под него есть Вирей
+2
MpaKo6ec
Да там ппц уже вообще че только не наваливают, а с учетом LLM это вообще супер инструмент. Если бы я давно плотно в гудини не сидел, уже давно в блендере бы был.
Это как раньше в максе на все случаи жизни были плгины — тут аддоны, но в отличие от макса тогда, сейчас в блендаке тебе ЛЛМ под задачу может дать питоновский скрипт и инструмент сам соберется. А если подключить какой-нибудь клод код, он вообще сам будет все что надо запускать, тестировать и тебе результат выдавать.
+1
Evilis
В максе "геоноды" - MCG. Если бы доски как обычно не похерили и не забросили его развитие, то думаю на данный момент вещь была бы реально имбовой. Так же собрал один раз примитив\модификатор\объект и пользуй потом в один клик.
А параметрическую строчку с разными настройками\пресетами можно и сейчас так же собрать в MCG: https://i.ibb.co.com/6cZdv9Qw/One-Click.gif