在Blender脚本中使用两种颜色为两组对象着色

时间:2019-04-28 18:10:32

标签: python blender

我有两种类型的球体。我想通过用两种不同的颜色为球体着色来区分这两种类型,但是我不知道该怎么做。

该任务必须通过脚本来完成,并且还有一个.blend文件,但我相信它的内容还可以。我一开始定义了两种材料:

material0 = bpy.data.materials.new("h_material")
material0.diffuse_color = [ 1. 0. 0. ]
material0.specular_intensity = 0.1

material1 = bpy.data.materials.new("s_material")
material1.diffuse_color = [ 0. 1. 0.]
material1.specular_intensity = 0.1

然后我有一个特定的列表f,该列表分为f0f1,正确地选择了球体。之后,我执行

f0 = np.vstack(f)
mesh = bpy.data.meshes.new('mesh_name')
ob0 = bpy.data.objects.new('ob0_name', mesh)
bpy.context.scene.objects.link(ob0)
mesh.from_pydata(f0, [], faces) # faces is properly defined somewhere else
mesh.update()

,与f1相同。不管我做什么,例如

ob0.active_material = material0
ob1.active_material = material1

o0 = bpy.context.scene.objects.active = bpy.data.objects['ob0_name']
o0.active_material = material0
o1 = bpy.context.scene.objects.active = bpy.data.objects['ob1_name']
o1.active_material = material1

它从来不会像我想要的那样给对象着色,而是将它着色为提到的最后一种颜色(只要它不会崩溃),即material1。

有什么建议吗?

0 个答案:

没有答案