Простейший shade autosmooth на Geometry Nodes

При помощи нода Edge Angle, позволяющего определять угол на общем ребре у двух соседних полигонов, можно легко сделать аналог функции shade autosmooth – автоматического включения сглаженного отображения в зависимости от этого угла.

Добавим в сцену Сюзанну (shift + a – Mesh – Monkey), назначим ей модификатор Geometry Nodes и создадим начальное дерево нод, нажатием на кнопку New.

Для включения режима сглаженного шейдинга добавим в главную ветку геометрии нод Set Shade Smooth (shift + a – Mesh – Write – Set Shade Smooth).

Сглаженный шейдинг включится сразу для всего меша.

Для того чтобы управлять им в зависимости от углов полигонов, добавим нод Edge Angle (shift + a – Mesh – Read – Edge Angle).

Чтобы сравнивать значение угла между полигонами с числом, добавим нод Compare (shift + a – Utilities – Math – Compare) и соединим его вход A с выходом Unsigned Angle нода Edge Angle. Выход Result соединим со входом Shade Smooth нода Set Shade Smooth.

Скроллируя значение в поле B нода Compare мы можем увидеть как сглаживание включается и выключается для отдельных полигонов в зависимости от текущего значения.

Нод Edge Angle выдает значение в радианах, поэтому в поле B мы тоже используем радианы. Для того чтобы оперировать привычными градусами, добавим нод Math (shift + a – Utilities – Math). Переключим его в режим To Radians. Соединим его выход Value со входом B нода Compare.

Теперь для контроля сглаженности шейдинга мы можем изменять значение угла в поле Degrees нода To Radians (Math), оперируя углами в градусах.

Дополнение от Вячеслава Кобозева:

В Blender 3.6 Shage Autosmooth работает только для полигонов, поэтому в случае, когда у одного полигона будет несколько разных углов, попадающих и не попадающих в условие, отображение будет не корректным.

Чтобы улучшить результат, можно добавить нод Split Edges (shift + a – Mesh – Operators – Split Edges) и перенести все расчеты на него. Добавим нод перед нодом Shade Autosmooth и переключим линк со входа Shade Smooth этого нода на вход Selection добавленного нода Split Edges.

В Blender 4.0 можно просто переключить нод Shade Autosmooth в домен “Edges”

Так результат сглаживания будет корректнее.

5 1 голос
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии