def CreateWornEdges(context, factor):
actobj = bpy.context.object
bpy.ops.object.mode_set(mode="EDIT")
bm = bmesh.from_edit_mesh(actobj.data)
sf = [(vert.calc_shell_factor() - 1.0) * factor for vert in bm.verts[:]]
bpy.ops.object.mode_set(mode="VERTEX_PAINT")
purge = {}
for ind, loop in enumerate(bpy.context.object.data.loops[:]):
if loop.vertex_index not in purge:
purge[loop.vertex_index] = [ind]
else:
purge[loop.vertex_index].append(ind)
for vert in actobj.data.vertices[:]:
if vert.select:
ran = (sf[vert.index], sf[vert.index], sf[vert.index])
for i in purge[vert.index]:
actobj.data.vertex_colors.active.data[i].color = ran
actobj.data.update()
评论列表
文章目录