>> у меня есть набор значений цветов в общем количестве 100 штукНабор представлен в виде кода. Что то вроде с1 = (1, 0, 1) и тд. Надо именно автоматизировать смену цвета материала с последующим рендером изображения. На Blender Render это легко можно осуществить, а вот в Cycles понятия не имею как такое сделать можно.
... каким образом описан этот набор? это файл? ...
Нихрена непонятно :) Ты бы хоть ссылки приложил того что есть, и приблизительно того, что хочешь (или более подробное описание сего)Вот для Blender Render скрипт выглядит как то так. Примерно тоже самое я хотел бы сделать и для Cycles, но не пойму как это осуществить.
На первый взгляд, думаю, что можно решить без программирования и скриптов...
for up in colors:
mat = bpy.data.materials["Material"]
nodes = mat.node_tree.nodes
diffuse = nodes["Diffuse BSDF"].inputs["Color"]
diffuse.default_value = (up[0]/255,up[1]/255,up[2]/255,1)
bpy.ops.object.select_pattern(pattern = "Suzanne")
bpy.context.object.rotation_euler[2] += 0.4
f_name = str(counter)
scn.render.filepath = os.path.join(output_path, f_name + ".jpg")
bpy.ops.render.render( write_still=True )
bpy.context.scene.render.filepath = output_path
counter += 1
>> но не пойму как это осуществить.
... для cycles у тебя будет материал, представленный в системе узлов Nodetree и рулить нужно входом нужной ноды ...
например такКод: pythonfor up in colors:
mat = bpy.data.materials["Material"]
nodes = mat.node_tree.nodes
diffuse = nodes["Diffuse BSDF"].inputs["Color"]
diffuse.default_value = (up[0]/255,up[1]/255,up[2]/255,1)
bpy.ops.object.select_pattern(pattern = "Suzanne")
bpy.context.object.rotation_euler[2] += 0.4
f_name = str(counter)
scn.render.filepath = os.path.join(output_path, f_name + ".jpg")
bpy.ops.render.render( write_still=True )
bpy.context.scene.render.filepath = output_path
counter += 1
Ругается на что-то, а на что - не понятноНаписано, что надо в консоль поглядеть, там будет полное сообщение об ошибке.