From dbdafe1209a4787d6f8dcafa034bc9ced3c7f365 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Thu, 5 Jul 2018 12:44:15 +0200 Subject: Shaders: add target setting to material output node. This makes it possible to have a single shading nodetree that contains separate Cycles and Eevee shaders. By default the target is set to All so shaders are shared. --- release/scripts/modules/bpy_extras/node_utils.py | 20 -------------------- release/scripts/startup/bl_ui/properties_material.py | 6 +++--- release/scripts/startup/bl_ui/properties_world.py | 4 ++-- 3 files changed, 5 insertions(+), 25 deletions(-) (limited to 'release/scripts') diff --git a/release/scripts/modules/bpy_extras/node_utils.py b/release/scripts/modules/bpy_extras/node_utils.py index d459b99ddd0..d4c6d5cd45a 100644 --- a/release/scripts/modules/bpy_extras/node_utils.py +++ b/release/scripts/modules/bpy_extras/node_utils.py @@ -20,7 +20,6 @@ __all__ = ( "find_node_input", - "find_output_node", ) @@ -31,22 +30,3 @@ def find_node_input(node, name): return input return None - -# Return the output node to display in the UI. In case multiple node types are -# specified, node types earlier in the list get priority. - - -def find_output_node(ntree, nodetypes): - if ntree: - output_node = None - for nodetype in nodetypes: - for node in ntree.nodes: - if getattr(node, "type", None) == nodetype: - if getattr(node, "is_active_output", True): - return node - if not output_node: - output_node = node - if output_node: - return output_node - - return None diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py index fdbf0b240c4..3761cbba372 100644 --- a/release/scripts/startup/bl_ui/properties_material.py +++ b/release/scripts/startup/bl_ui/properties_material.py @@ -21,7 +21,7 @@ import bpy from bpy.types import Menu, Panel, UIList from rna_prop_ui import PropertyPanel from bpy.app.translations import pgettext_iface as iface_ -from bpy_extras.node_utils import find_node_input, find_output_node +from bpy_extras.node_utils import find_node_input class MATERIAL_MT_specials(Menu): @@ -140,7 +140,7 @@ class EEVEE_MATERIAL_PT_context_material(MaterialButtonsPanel, Panel): def panel_node_draw(layout, ntree, output_type): - node = find_output_node(ntree, output_type) + node = ntree.get_output_node('EEVEE') if node: input = find_node_input(node, 'Surface') @@ -171,7 +171,7 @@ class EEVEE_MATERIAL_PT_surface(MaterialButtonsPanel, Panel): layout.separator() if mat.use_nodes: - panel_node_draw(layout, mat.node_tree, ('OUTPUT_EEVEE_MATERIAL', 'OUTPUT_MATERIAL')) + panel_node_draw(layout, mat.node_tree, 'OUTPUT_MATERIAL') else: layout.use_property_split = True layout.prop(mat, "diffuse_color", text="Base Color") diff --git a/release/scripts/startup/bl_ui/properties_world.py b/release/scripts/startup/bl_ui/properties_world.py index bba7f9e132a..52a769fd223 100644 --- a/release/scripts/startup/bl_ui/properties_world.py +++ b/release/scripts/startup/bl_ui/properties_world.py @@ -20,7 +20,7 @@ import bpy from bpy.types import Panel from rna_prop_ui import PropertyPanel -from bpy_extras.node_utils import find_node_input, find_output_node +from bpy_extras.node_utils import find_node_input class WorldButtonsPanel: @@ -109,7 +109,7 @@ class EEVEE_WORLD_PT_surface(WorldButtonsPanel, Panel): if world.use_nodes: ntree = world.node_tree - node = find_output_node(ntree, ('OUTPUT_WORLD',)) + node = ntree.get_output_node('EEVEE') if node: input = find_node_input(node, 'Surface') -- cgit v1.2.3