Пометка ребер меша для рендера в 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 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии