Получение точек на UV-развертке из объекта BMesh в Blender

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

Для примера добавим в сцену куб (если у вас он не добавлен по дефолту). У куба уже есть автоматически сгенерированная развертка. Переключимся в режим редактирования и выделим один полигон.

Теперь давайте получим координаты точек на UV-развертке для выделенного полигона используя объект BMesh.

Создадим объект BMesh и скопируем в него геометрию текущего активного объекта — куба. Сразу проведем переиндексацию для вертексов.

Для начала возьмем выделенный полигон.

Еще нам понадобиться указатель на текущий слой UV-развертки.

Получим указатель на мешлуп выделенного полигона.

Теперь через мешлуп мы можем получить связанный список вертексов самого 3D объекта (в BMesh) и точек на развертке.

Координаты самих точек мы можем получить через свойство «uv» точек на развертке (BMLoopUV). Выведем индекс вертекса на геометрии и соответствующие этому вертексу координаты на UV-развертке.

Еще один полезный вариант — получение списка для всех точек меша, связывающего указатель на точку геометрии с ее координатами на развертке. Этот вызов можно оформить вообще в одну строку.

Первым элементом в полученном списке идет указатель на точку в 3D пространстве в объекте BMesh, а вторым — вектор с ее координатами в 2D пространстве UV-развертки.

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

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