Создаем полигон через BMesh и назначаем его точкам UV-координаты

Создавая новую геометрию в Blender при помощи Python API очень часто нужно не просто создавать новые полигоны, а еще и сразу присваивать им правильные координаты UV-развертки. При работе через объект BMesh это делается через связку точек геометрии с точками развертки мешлупами.

Возьмем для примера любой объект в сцене в Blender, тот же дефолтный куб, создадим внутри него новый полигон и сразу же назначим точкам этого полигона требуемые координаты на UV-развертке.

Если куб был в режиме редактирования, переключимся в объектный режим.

Создадим объект BMesh и сбросим в него данные геометрии текущего активного объекта.

Создадим четыре новых точки для дальнейшего создания по ним нового полигона. Пусть они располагаются квадратом 1 на 1 в плоскости XY, в нулевой точки сцены.

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

По этим точкам построим новый полигон.

Получим указатель на текущий активный слой UV-развертки. Если развертки нет, она будет создана этой же командой.

Зададим координаты для точек нашего полигона на UV-развертке. Пусть они образуют трапецию от начала координат.

Теперь пройдем по точкам мешлупа созданного нами полигона. Через них мы можем получить связку точек полигона с точками на UV. Порядок следования по точкам мешлупа соответствует порядку точек как полигона, так и точек на UV-развертке.

Теперь нам осталось вернуть обновленную геометрию в исходный объект — куб, и очистить более не нужный объект BMesh.

Переключимся в режим редактирования для просмотра изменений на UV.

Как мы видим, внутри самого объекта в сцене создался еще один полигон, а его точки на UV-раввертке получили заданные нами координаты.

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

0 Комментарий
Новые
Старые Популярные