Быстрое применение к объекту всех его модификаторов

Применить к объекту наложенные на него модификаторы можно последовательно проходя по списку модификаторов и вызывая оператор bpy.ops.object.modifier_apply() для применения каждого из них. Однако можно воспользоваться тем, что в depsgraph уже есть полностью просчитанные данные меша с уже примененными модификаторами и просто перестроить объект по этим данным.

Автор метода Iyad Ahmed.

Дополнительны бонус при использовании данного метода – модификаторы можно применять как в объектном режиме, так и в режиме редактирования меша.

Сначала нужно получить указатель на depsgraph:

при помощи которого теперь мы можем получить уже полностью просчитанную геометрию меша с учетом всех модификаторов:

В дальнейшем нам нужно будет удалить модификаторы с объекта, что повлияет на перерасчитанные данные, поэтому сделаем копию перерасчитанной геометрии меша:

Теперь можно удалить все модификаторы

Осталось заменить текущую геометрию меша на ту, что мы сохранили в копии.

Для объектного режима:

и для режима редактирования:

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

Полный код:

 

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

0 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии