import numpy as np
target_node = hou.selectedNodes()[0]
parent = target_node.parent()
geo = target_node.geometry()
mat_list = geo.findPrimAttrib("shop_materialpath").strings()
matnet = parent.createNode("matnet", node_name=str(target_node)+"_matnet")
pos = target_node.position()
matnet.setPosition(pos + hou.Vector2(3,0))
new_mats = []
for mat in mat_list:
new_mat = matnet.createNode("redshift_vopnet", node_name=str(mat))
new_mats.append(new_mat)
rs_node = new_mat.children()[1]
rs_node.setParms({"base_color":np.clip(np.random.rand(3), 0.05, 0.7)})
rs_node.setParms({"refl_roughness":np.clip(np.random.rand(1)[0], 0.1, 0.7)})
matnet.layoutChildren()
material_node = parent.createNode("material", node_name=str(target_node)+"_mats")
material_node.setInput(0, target_node)
material_node.setParms({"num_materials":len(new_mats)})
material_node.moveToGoodPosition(relative_to_inputs=True)
for count, mat in enumerate(new_mats):
mat_parm_name = "shop_materialpath"+str(count+1)
group_parm_name = "group"+str(count+1)
group_val = "@shop_materialpath="+str(mat)
material_node.setParms({mat_parm_name:mat.path()})
material_node.setParms({group_parm_name:group_val})
material_node.setDisplayFlag(True)
material_node.setRenderFlag(True)