diff options
author | Luca Rood <dev@lucarood.com> | 2017-06-20 15:33:13 +0300 |
---|---|---|
committer | Luca Rood <dev@lucarood.com> | 2017-06-20 19:39:59 +0300 |
commit | 5c5c09439abdf2f759fbc3c17a4e773b9005d77f (patch) | |
tree | bce718ddb823f6623e9804b2aa16ddd1f52ed61f /release/scripts/startup/nodeitems_builtins.py | |
parent | aaf37e1216b2a9dfc43591e227c679a5b35af8c0 (diff) |
Clean node names and organize menus for eevee
This makes the node menus aware of the Cycles/Eevee distinction, and
only show the relevant nodes for the current engine. Names have also
been changed to accomodate for the new output node system.
Diffstat (limited to 'release/scripts/startup/nodeitems_builtins.py')
-rw-r--r-- | release/scripts/startup/nodeitems_builtins.py | 62 |
1 files changed, 38 insertions, 24 deletions
diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py index 59bf93696bc..f13222140b1 100644 --- a/release/scripts/startup/nodeitems_builtins.py +++ b/release/scripts/startup/nodeitems_builtins.py @@ -141,6 +141,20 @@ def object_shader_nodes_poll(context): snode.shader_type == 'OBJECT') +def cycles_shader_nodes_poll(context): + return context.scene.render.engine == 'CYCLES' + + +def object_cycles_shader_nodes_poll(context): + return (object_shader_nodes_poll(context) and + cycles_shader_nodes_poll(context)) + + +def object_eevee_shader_nodes_poll(context): + return (object_shader_nodes_poll(context) and + context.scene.render.engine == 'BLENDER_EEVEE') + + # All standard node categories currently used in nodes. shader_node_categories = [ @@ -216,36 +230,36 @@ shader_node_categories = [ NodeItem("NodeGroupInput", poll=group_input_output_item_poll), ]), ShaderNewNodeCategory("SH_NEW_OUTPUT", "Output", items=[ - NodeItem("ShaderNodeOutputMetallic", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeOutputSpecular", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeOutputMaterial", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeOutputEeveeMaterial", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeOutputLamp", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeOutputMaterial", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeOutputEeveeMaterial", poll=object_eevee_shader_nodes_poll), + NodeItem("ShaderNodeOutputLamp", poll=object_cycles_shader_nodes_poll), NodeItem("ShaderNodeOutputWorld", poll=world_shader_nodes_poll), NodeItem("ShaderNodeOutputLineStyle", poll=line_style_shader_nodes_poll), NodeItem("NodeGroupOutput", poll=group_input_output_item_poll), ]), ShaderNewNodeCategory("SH_NEW_SHADER", "Shader", items=[ - NodeItem("ShaderNodeMixShader"), - NodeItem("ShaderNodeAddShader"), - NodeItem("ShaderNodeBsdfDiffuse", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeBsdfPrincipled", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeBsdfGlossy", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeBsdfTransparent", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeBsdfRefraction", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeBsdfGlass", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeBsdfTranslucent", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeBsdfAnisotropic", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeBsdfVelvet", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeBsdfToon", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeSubsurfaceScattering", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeEmission", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeBsdfHair", poll=object_shader_nodes_poll), + NodeItem("ShaderNodeMixShader", poll=cycles_shader_nodes_poll), + NodeItem("ShaderNodeAddShader", poll=cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfDiffuse", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfPrincipled", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfGlossy", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfTransparent", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfRefraction", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfGlass", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfTranslucent", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfAnisotropic", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfVelvet", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfToon", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeSubsurfaceScattering", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeEmission", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeBsdfHair", poll=object_cycles_shader_nodes_poll), NodeItem("ShaderNodeBackground", poll=world_shader_nodes_poll), - NodeItem("ShaderNodeAmbientOcclusion", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeHoldout", poll=object_shader_nodes_poll), - NodeItem("ShaderNodeVolumeAbsorption"), - NodeItem("ShaderNodeVolumeScatter"), + NodeItem("ShaderNodeAmbientOcclusion", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeHoldout", poll=object_cycles_shader_nodes_poll), + NodeItem("ShaderNodeVolumeAbsorption", poll=cycles_shader_nodes_poll), + NodeItem("ShaderNodeVolumeScatter", poll=cycles_shader_nodes_poll), + NodeItem("ShaderNodeEeveeMetallic", poll=object_eevee_shader_nodes_poll), + NodeItem("ShaderNodeEeveeSpecular", poll=object_eevee_shader_nodes_poll), ]), ShaderNewNodeCategory("SH_NEW_TEXTURE", "Texture", items=[ NodeItem("ShaderNodeTexImage"), |