blender 批量减面 python脚本

技术分享 2024-02-21 18:01:44
import bpy

print()
print()

# 遍历场景中的所有物体
for obj in bpy.data.objects:
    # 检查物体是否为网格
    if obj.type == 'MESH':
        # 计算物体的面数
        face_count = len(obj.data.polygons)
        # 如果面数大于 xxx,则进行减面操作
        if face_count > 800:
            
            print(f"物体 {obj.name} 的面数为:{face_count}")
            
            # 选中物体
            bpy.context.view_layer.objects.active = obj
            obj.select_set(True)

            # 切换到编辑模式
#            bpy.ops.object.mode_set(mode='EDIT')

            # 添加 Decimate 修改器
            bpy.ops.object.modifier_add(type='DECIMATE')

            # 设置 Decimate 修改器的参数
            bpy.context.object.modifiers["Decimate"].ratio = 0.4

            # 应用 Decimate 修改器
            bpy.ops.object.modifier_apply(modifier="Decimate")

            # 切换回物体模式
#            bpy.ops.object.mode_set(mode='OBJECT')
            
            
            face_count_after = len(obj.data.polygons)
            print(f"减面后: {face_count}")
            print()
咨询小瓶科技
咨询我们
顶部