Отображение нормалей вертексов в Blender при помощи Geometry Nodes

Для того чтобы сделать контроль над расположением нормалей вертексов меша в Blender более наглядным, можно создать несложную связку нод в Blender Geometry Nodes.

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

Нормали проще всего визуализировать при помощи мешей, состоящих из двух точек и одного ребра между ними. Редактор Geometry Nodes позволяет создать такой меш через нод Mesh Line.

Добавим нод Mesh Line (shift + a – Mesh – Primitives – Mesh Line). Значение поля Count выставим равным 2. Этот нод создаст нам требуемый меш для отображения нормали.

Для того чтобы раскидать наши меши-нормали по вертексам объекта, воспользуемся нодом Instance On Points, который располагает инстанс переданного объекта в каждой точке заданного меша.

Добавим нод Instance On Points (shift + a – Instances – Instance On Points) в главную ветку нодового дерева. Выход Mesh нода Mesh Line слинкуем со входом Instance нода Instance On Points.

Теперь на каждом вертексе меша у нас расположен вертикальный меш – линия.

Для удобства просмотра добавим нод Join Geomety (shift + a – Geometry – Join Geometry) в конец нодового дерева и подадим на него линки от изначальной геометрии меша и полученного нами набора линий.

Сейчас все созданные нами меши-линии направлены вверх вдоль оси Z. Для того чтобы выровнять их в соответствии с направлением нормалей вертексов меша, добавим нод Align Euler to Vector (shift + a – Utilities – Rotation – Align Euler to Vector). Поле Axis to Align to Vector переключим в значение “Z”.

Добавим нод Normal (shift + a – Geometry – Mesh – Normal). С него мы получим реальные направления нормалей вертексов.

Чтобы повернуть наши меши-линии вдоль нормалей вертексов меша, подадим вектор нормалей с нода Normal на вход Vector нода Align Euler to Vector. И чтобы применить полученный поворот к мешам-линиям, слинкуем выход Rotation нода Align Euler to Vector со входом Rotation нода Instance on Points.

Как мы видим, теперь созданные нами линии отображают направление нормалей вертексов Сюзанны.

Для удобства, можно подкорректировать их длину. Для этого добавим нод Combine XYZ (shift + a – Utilities – Vector – Combine XYZ) и соединим его выход Vector со входом Offset нода Mesh Line. Значение в поле Z нода Combine XYZ поставим равным 0.25.

Теперь мы можем легко управлять длиной отображения нормалей, просто изменяя значение этого параметра.

Для еще большего удобства можно вынести его на панель модификатора, просто протянув линк от входа Z нода Combine XYZ на пустой выход нода Geometry.

Открыв N-панель можно переименовать его удобным образом, например в Normal Length.

В панели модификатора это поле теперь отображается под заданным названием. И длину отображения нормалей очень удобно корректировать через него.

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

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