Пометка ребер меша для рендера в Blender с использованием рендер-движка Freestyle

Для того чтобы создавать рендеры на основе линий, такие, например, как чертежи или стилизации 3D под 2D, обычно в дополнение к основному рендер-движку используется дополнительный рендер-движок «Freestyle». Ребра, которые на финальном рендере должны быть ярко обведены линиями, необходимо пометить как «freestyle», после чего рендер-движок Freestyle сможет их обработать.

Как и практически со всей структурой меша в Blender, со «freestyle» ребрами можно работать через Blender Python API.

У каждого ребра меша есть свойство use_freestyle_mark, которое отвечает за то, помечено ребро как «freestyle» — значение равно True, или нет — False.

Мы можем проверить значение этого свойства для одного ребра активного меша:

Или получить список всех его ребер, отмеченных как «freestyle»

Для того чтобы отметить ребро как «freestyle», мы можем просто менять значение этого свойства. Для примера, отметим «freestyle» все ребра с индексами от 100 до 300. Меш должен находиться в объектном режиме.

Работа со свойством ребер «freestyle» в bmesh представляет определенные сложности.

Хотя в объекте bmesh и предусмотрен слой «freestyle» для ребер и мы можем выделить отдельный слой данных для «freestyle»,

сама структура данных возвращает нам ошибку NotImplemented

Контролировать отметку ребра как «freestyle» при работе с объектом bmesh, можно соотнеся индексы ребер базового меша и bmesh.

Предварительно получим индексы ребер, отмеченные «freestyle» с базового меша:

После чего в объекте bmesh можно проверять, соотносится ли индекс текущего ребра с полученным набором индексов ребер.

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

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