diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-05-12 15:39:30 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-05-13 16:56:11 +0300 |
commit | 8f71a84496a95528303fbe0bb7c1406060353425 (patch) | |
tree | ebebb3cb4dd35b83a7f4aba960f616fffdc36800 /intern/cycles/render/graph.h | |
parent | 21854575a4ede7d0c16fbe31ac90e66493f607fe (diff) |
Cycles/Eevee: add Emission and Alpha inputs to Principled BSDF
This makes it easier to set up materials with emission and transparency.
Importers/exporters and add-ons are recommended to now use these rather than
creating separate transparent BSDF and emission nodes.
Diffstat (limited to 'intern/cycles/render/graph.h')
-rw-r--r-- | intern/cycles/render/graph.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/intern/cycles/render/graph.h b/intern/cycles/render/graph.h index b1aa5cf3168..cade04de374 100644 --- a/intern/cycles/render/graph.h +++ b/intern/cycles/render/graph.h @@ -147,6 +147,7 @@ class ShaderNode : public Node { virtual ~ShaderNode(); void create_inputs_outputs(const NodeType *type); + void remove_input(ShaderInput *input); ShaderInput *input(const char *name); ShaderOutput *output(const char *name); @@ -158,6 +159,11 @@ class ShaderNode : public Node { virtual void compile(SVMCompiler &compiler) = 0; virtual void compile(OSLCompiler &compiler) = 0; + /* Expand node into additional nodes. */ + virtual void expand(ShaderGraph * /* graph */) + { + } + /* ** Node optimization ** */ /* Check whether the node can be replaced with single constant. */ virtual void constant_fold(const ConstantFolder & /*folder*/) @@ -322,6 +328,8 @@ class ShaderGraph { void connect(ShaderOutput *from, ShaderInput *to); void disconnect(ShaderOutput *from); void disconnect(ShaderInput *to); + void relink(ShaderInput *from, ShaderInput *to); + void relink(ShaderOutput *from, ShaderOutput *to); void relink(ShaderNode *node, ShaderOutput *from, ShaderOutput *to); void remove_proxy_nodes(); @@ -346,6 +354,7 @@ class ShaderGraph { void break_cycles(ShaderNode *node, vector<bool> &visited, vector<bool> &on_stack); void bump_from_displacement(bool use_object_space); void refine_bump_nodes(); + void expand(); void default_inputs(bool do_osl); void transform_multi_closure(ShaderNode *node, ShaderOutput *weight_out, bool volume); |