随笔 - 633,  文章 - 0,  评论 - 13,  阅读 - 48万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1.选中物体,进入权重绘制模式

2.代码

 

复制代码
import bpy

# 获取当前活动的物体
obj = bpy.context.object

# 确保物体是网格类型
if obj.type != 'MESH':
    print("当前激活的对象不是网格类型。")
    exit()

# 遍历所有顶点组
for vg in obj.vertex_groups:
    vg_name = vg.name  # 获取顶点组的名称

    # 获取顶点组的权重列表
    weights = [vg.weight(v.index) for v in obj.data.vertices]

    # 创建颜色属性名称
    color_attr_name = vg_name + "_colors"

    # 检查是否已经存在该颜色属性,如果不存在则创建
    if color_attr_name not in obj.data.attributes:
        color_attr = obj.data.attributes.new(
            name=color_attr_name,
            type='BYTE_COLOR',
            domain='POINT'
        )
    else:
        color_attr = obj.data.attributes[color_attr_name]

    # 设置顶点颜色属性
    for i, weight in enumerate(weights):
        # 将权重映射到颜色上,这里简单地将权重映射到颜色的红色通道上
        # 可以根据需要调整颜色映射逻辑
        color_value = int(weight * 255)  # 将权重映射到0-255范围内
        color_attr.data[i].color = (color_value, color_value, color_value, 255)  # RGB相同,Alpha为255

    print(f"顶点组 '{vg_name}' 的权重已成功转换为顶点颜色属性 '{color_attr_name}'。")

print("所有顶点组的权重都已转换为顶点颜色属性。")

# 确保视图更新以显示顶点颜色
bpy.context.view_layer.update()
复制代码

 

posted on   大话人生  阅读(246)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2020-04-27 Vue中的发布与订阅
点击右上角即可分享
微信分享提示