Работа с sharp ребрами через Blender Python API

В Blender мы можем пометить ребра меша как sharp – чтобы они оставались острыми и не сглаживались даже при включении smooth-шейдинга. В ручную это можно сделать выделив нужные ребра и выбрав в главном меню Edge – Mark Sharp. Ребра можно пометить как sharp так же и через Blender Python API.

Устанавливать ребра в sharp и снимать эту пометку через API можно как для базового меша в сцене, так и используя модуль bmesh.

Работа с sharp ребрами через базовый меш

Получить доступ к свойствам ребер базового меша можно в объектном режиме, переключим меш в режим “OBJECT”.

Чтобы получить список всех ребер, уже помеченных как sharp, пройдем в цикле по всем ребрам меша и проверим свойство use_edge_sharp для каждого ребра.

Если это свойство имеет значение True, значит текущее ребро отмечено как sharp и информация о нем будет выведена в консоль.

Чтобы отметить нужные ребра как sharp, предварительно выделим их, а потом проходя в цикле по всем ребрам меша, установим свойство use_edge_sharp  для выделенных ребер в True.

После чего вернем меш в режим редактирования.

Работа с sharp ребрами через bmesh

Создадим объект bmesh и скопируем в него данные из текущего активного меша. Чтобы индексы ребер в bmesh соответствовали индексам базового меша так же выполним команду ensure_lookup_table().

У ребер в bmesh (BMEdge) нет свойства для пометки ребер как sharp, однако есть свойство smooth, противоположное по значению. Если значение smooth равно True, значит ребро обычное, не sharp. Если smooth равно False – значит ребро отмечено как sharp.

Пройдем в цикле по ребрам bmesh и выведем те, которые “не smooth”.

Чтобы пометить выделенные ребра как sharp, нам нужно просто установить значение smooth для этих ребер в False.

Перенесем отредактированные данные обратно в базовый меш и освободим объект bmesh.

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

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