Hereis simple script for using vertex color, as bevel value for new bevel shader- so that we can have different bevel sizes.
Thing is when setting color of selected vertices for second time with script , blender crashes. I’m not sure why.
def execute(self, context):
activeObj = context.active_object
mesh = activeObj.data
wasVColCreated = False
if not mesh.vertex_colors or "Bevel" not in mesh.vertex_colors.keys():
mesh.vertex_colors.new("Bevel")
wasVColCreated =True
activeObj.data.update()
bm = bmesh.from_edit_mesh(activeObj.data) # load mesh
# bm.verts.ensure_lookup_table()
color_layer = bm.loops.layers.color["Bevel"]
if wasVColCreated:
for vert in bm.verts: # island faces
for loop in vert.link_loops:
loop[color_layer] = [0,0,0,0]
bevelCol = 4*[self.bevel]
selVerts = [vert for vert in bm.verts if vert.select]
for vert in selVerts: # island faces
for loop in vert.link_loops:
loop[color_layer] = bevelCol
bmesh.update_edit_mesh(mesh)
bm.free()
I tried: mesh.update() but it didn’t help. Not sure what happens.