diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-07-05 13:44:15 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-07-05 19:43:48 +0300 |
commit | dbdafe1209a4787d6f8dcafa034bc9ced3c7f365 (patch) | |
tree | b9457d3f0c2c8e54de05dbc594d0e8caa4f514e0 /release | |
parent | 5bd57aaa052d9578d089a92338d6f0977b5d6c5c (diff) |
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.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/modules/bpy_extras/node_utils.py | 20 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/properties_material.py | 6 | ||||
-rw-r--r-- | release/scripts/startup/bl_ui/properties_world.py | 4 |
3 files changed, 5 insertions, 25 deletions
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') |