Blender脚本编程

来源:互联网 发布:百雀羚vs欧莱雅 知乎 编辑:程序博客网 时间:2024/05/29 04:07

渲染的主体是IsoSurface,对这个材质的设置手动一次性完成就行,不用每次导入obj都重复做一遍,所以不需要在脚本里设置。

需要注意的是,以下脚本是在我手动渲染了第一张图片后再运行的,对应的旋转、变换大小、位移都是参照第一次渲染所选择的参数,所以我建议最好先手动渲染一次,选择好恰当的参数以及摄像机位置和光照后再进行脚本化渲染。

另外,以下步骤其实和我的另外一篇博客的步骤是类似的,只是在这里把人工操作改成了脚本化处理。

import bpy from bpy import contextpath = 'F:/obj'//渲染的obj实例为1002~1005list = ['1002','1003','1004','1005']scene = bpy.context.scene//对每个导入的obj都进行如下操作for i in list:    //导入obj    bpy.ops.import_scene.obj(filepath=path+'/'+i+'.obj')    //设置当前导入的obj为当前选中物体,之后的操作都是对这个物体进行操作    myobj=bpy.data.objects[i]    myobj.select = True    scene.objects.active = myobj    //进行旋转、变换大小、位移    bpy.context.object.rotation_euler[2]=-1.5708    bpy.context.object.scale=(0.034,0.034,0.034)    bpy.context.object.location[0]=10    //添加粒子系统    bpy.ops.object.particle_system_add()    //将粒子系统设置为我们之前预设好的一个模版    bpy.data.objects[i].particle_systems["ParticleSystem"].settings=bpy.data.particles['myset']    //将IsoSurface设置为当前选中物体,之后的操作都是对这个IsoSurface进行操作    myobj=bpy.data.objects["IsoSurface"]    myobj.select = True    scene.objects.active = myobj    //将IsoSurface的Object选项改为当前物体的名字    bpy.context.object.IsoSurf[0].obj=i    //渲染图片保存到对应路径    bpy.data.scenes["Scene"].render.filepath = 'F:/渲染结果/柱体障碍/'+i    bpy.ops.render.render(write_still=True)
原创粉丝点击