|
Blender
V2.93
|
#include <graph.h>
Inherits Node.
Inherited by AddClosureNode, AmbientOcclusionNode, AttributeNode, BackgroundNode, BevelNode, BlackbodyNode, BrightContrastNode, BsdfBaseNode, BumpNode, CameraNode, ClampNode, ColorNode, CombineHSVNode, CombineRGBNode, CombineXYZNode, ConvertNode, CurvesNode, DisplacementNode, EmissionNode, FresnelNode, GammaNode, GeometryNode, HSVNode, HairInfoNode, HoldoutNode, InvertNode, LayerWeightNode, LightFalloffNode, LightPathNode, MapRangeNode, MappingNode, MathNode, MixClosureNode, MixClosureWeightNode, MixNode, NormalMapNode, NormalNode, OSLNode, ObjectInfoNode, OutputAOVNode, OutputNode, ParticleInfoNode, PointDensityTextureNode, RGBRampNode, RGBToBWNode, SeparateHSVNode, SeparateRGBNode, SeparateXYZNode, SetNormalNode, TangentNode, TextureCoordinateNode, TextureNode, UVMapNode, ValueNode, VectorDisplacementNode, VectorMathNode, VectorRotateNode, VectorTransformNode, VertexColorNode, VolumeInfoNode, VolumeNode, WavelengthNode, WhiteNoiseTextureNode, and WireframeNode.
Public Member Functions | |
| ShaderNode (const NodeType *type) | |
| virtual | ~ShaderNode () |
| void | create_inputs_outputs (const NodeType *type) |
| void | remove_input (ShaderInput *input) |
| ShaderInput * | input (const char *name) |
| ShaderOutput * | output (const char *name) |
| ShaderInput * | input (ustring name) |
| ShaderOutput * | output (ustring name) |
| virtual ShaderNode * | clone (ShaderGraph *graph) const =0 |
| virtual void | attributes (Shader *shader, AttributeRequestSet *attributes) |
| virtual void | compile (SVMCompiler &compiler)=0 |
| virtual void | compile (OSLCompiler &compiler)=0 |
| virtual void | expand (ShaderGraph *) |
| virtual void | constant_fold (const ConstantFolder &) |
| virtual void | simplify_settings (Scene *) |
| virtual bool | has_surface_emission () |
| virtual bool | has_surface_transparent () |
| virtual bool | has_surface_bssrdf () |
| virtual bool | has_bump () |
| virtual bool | has_bssrdf_bump () |
| virtual bool | has_spatial_varying () |
| virtual bool | has_attribute_dependency () |
| virtual bool | has_integrator_dependency () |
| virtual bool | has_volume_support () |
| virtual bool | has_raytrace () |
| virtual int | get_group () |
| virtual int | get_feature () |
| virtual ClosureType | get_closure_type () |
| virtual bool | equals (const ShaderNode &other) |
Public Member Functions inherited from Node | |
| Node (const NodeType *type, ustring name=ustring()) | |
| virtual | ~Node ()=0 |
| void | set (const SocketType &input, bool value) |
| void | set (const SocketType &input, int value) |
| void | set (const SocketType &input, uint value) |
| void | set (const SocketType &input, float value) |
| void | set (const SocketType &input, float2 value) |
| void | set (const SocketType &input, float3 value) |
| void | set (const SocketType &input, const char *value) |
| void | set (const SocketType &input, ustring value) |
| void | set (const SocketType &input, const Transform &value) |
| void | set (const SocketType &input, Node *value) |
| void | set (const SocketType &input, array< bool > &value) |
| void | set (const SocketType &input, array< int > &value) |
| void | set (const SocketType &input, array< float > &value) |
| void | set (const SocketType &input, array< float2 > &value) |
| void | set (const SocketType &input, array< float3 > &value) |
| void | set (const SocketType &input, array< ustring > &value) |
| void | set (const SocketType &input, array< Transform > &value) |
| void | set (const SocketType &input, array< Node * > &value) |
| bool | get_bool (const SocketType &input) const |
| int | get_int (const SocketType &input) const |
| uint | get_uint (const SocketType &input) const |
| float | get_float (const SocketType &input) const |
| float2 | get_float2 (const SocketType &input) const |
| float3 | get_float3 (const SocketType &input) const |
| ustring | get_string (const SocketType &input) const |
| Transform | get_transform (const SocketType &input) const |
| Node * | get_node (const SocketType &input) const |
| const array< bool > & | get_bool_array (const SocketType &input) const |
| const array< int > & | get_int_array (const SocketType &input) const |
| const array< float > & | get_float_array (const SocketType &input) const |
| const array< float2 > & | get_float2_array (const SocketType &input) const |
| const array< float3 > & | get_float3_array (const SocketType &input) const |
| const array< ustring > & | get_string_array (const SocketType &input) const |
| const array< Transform > & | get_transform_array (const SocketType &input) const |
| const array< Node * > & | get_node_array (const SocketType &input) const |
| bool | has_default_value (const SocketType &input) const |
| void | set_default_value (const SocketType &input) |
| bool | equals_value (const Node &other, const SocketType &input) const |
| void | copy_value (const SocketType &input, const Node &other, const SocketType &other_input) |
| void | set_value (const SocketType &input, const Node &other, const SocketType &other_input) |
| bool | equals (const Node &other) const |
| void | hash (MD5Hash &md5) |
| size_t | get_total_size_in_bytes () const |
| bool | is_a (const NodeType *type) |
| bool | socket_is_modified (const SocketType &input) const |
| bool | is_modified () |
| void | tag_modified () |
| void | clear_modified () |
| void | print_modified_sockets () const |
| const NodeOwner * | get_owner () const |
| void | set_owner (const NodeOwner *owner_) |
Public Attributes | |
| vector< ShaderInput * > | inputs |
| vector< ShaderOutput * > | outputs |
| int | id |
| ShaderBump | bump |
| ShaderNodeSpecialType | special_type |
Public Attributes inherited from Node | |
| ustring | name |
| const NodeType * | type |
| InternalNode | internal |
| LeafNode | leaf |
Additional Inherited Members | |
Protected Member Functions inherited from Node | |
| template<typename T > | |
| void | set_if_different (const SocketType &input, T value) |
| template<typename T > | |
| void | set_if_different (const SocketType &input, array< T > &value) |
Static Protected Member Functions inherited from Node | |
| template<typename T > | |
| static T & | get_socket_value (const Node *node, const SocketType &socket) |
Protected Attributes inherited from Node | |
| const NodeOwner * | owner |
| SocketModifiedFlags | socket_modified |
|
explicit |
Definition at line 79 of file graph.cpp.
References bump, create_inputs_outputs(), Node::name, NodeType::name, SHADER_BUMP_NONE, SHADER_SPECIAL_TYPE_NONE, special_type, and Node::type.
|
virtual |
|
virtual |
Reimplemented in VectorDisplacementNode, TangentNode, NormalMapNode, AttributeNode, VertexColorNode, VolumeInfoNode, HairInfoNode, ParticleInfoNode, UVMapNode, TextureCoordinateNode, GeometryNode, PrincipledHairBsdfNode, PrincipledVolumeNode, PrincipledBsdfNode, AnisotropicBsdfNode, PointDensityTextureNode, EnvironmentTextureNode, and ImageTextureNode.
Definition at line 156 of file graph.cpp.
References ATTR_STD_GENERATED, ATTR_STD_GENERATED_TRANSFORM, ATTR_STD_UV, ShaderInput::flags(), input(), inputs, ShaderInput::link, SocketType::LINK_TEXTURE_GENERATED, SocketType::LINK_TEXTURE_UV, and shader().
Referenced by ImageTextureNode::attributes(), EnvironmentTextureNode::attributes(), PointDensityTextureNode::attributes(), AnisotropicBsdfNode::attributes(), PrincipledBsdfNode::attributes(), PrincipledVolumeNode::attributes(), PrincipledHairBsdfNode::attributes(), GeometryNode::attributes(), TextureCoordinateNode::attributes(), UVMapNode::attributes(), ParticleInfoNode::attributes(), HairInfoNode::attributes(), VolumeInfoNode::attributes(), VertexColorNode::attributes(), AttributeNode::attributes(), NormalMapNode::attributes(), TangentNode::attributes(), and VectorDisplacementNode::attributes().
|
pure virtual |
Implemented in OSLNode, IESLightNode, PointDensityTextureNode, EnvironmentTextureNode, and ImageTextureNode.
|
pure virtual |
|
pure virtual |
|
inlinevirtual |
Reimplemented in VectorDisplacementNode, DisplacementNode, RGBRampNode, VectorCurvesNode, RGBCurvesNode, BumpNode, VectorMathNode, MathNode, ClampNode, BlackbodyNode, SeparateXYZNode, SeparateHSVNode, SeparateRGBNode, BrightContrastNode, GammaNode, CombineXYZNode, CombineHSVNode, CombineRGBNode, MixNode, InvertNode, MixClosureNode, AddClosureNode, ColorNode, ValueNode, BackgroundNode, EmissionNode, ConvertNode, RGBToBWNode, and MappingNode.
| void ShaderNode::create_inputs_outputs | ( | const NodeType * | type | ) |
Definition at line 98 of file graph.cpp.
References SocketType::flags, NodeType::inputs, inputs, SocketType::LINKABLE, NodeType::outputs, outputs, and Node::type.
Referenced by ShaderGraph::copy_nodes(), and ShaderNode().
|
virtual |
Reimplemented in PointDensityTextureNode, EnvironmentTextureNode, ImageTextureNode, ImageSlotTextureNode, OSLNode, VolumeNode, BsdfBaseNode, OutputAOVNode, and OutputNode.
Definition at line 174 of file graph.cpp.
References bump, Node::equals_value(), SocketType::flags, NodeType::inputs, inputs, ShaderInput::link, SocketType::LINKABLE, NULL, ShaderInput::socket_type, and Node::type.
Referenced by ImageSlotTextureNode::equals(), and PointDensityTextureNode::equals().
|
inlinevirtual |
Reimplemented in MathNode, MapRangeNode, VolumeInfoNode, and PrincipledBsdfNode.
|
inlinevirtual |
Reimplemented in HairBsdfNode, VolumeNode, HoldoutNode, SubsurfaceScatteringNode, RefractionBsdfNode, GlassBsdfNode, GlossyBsdfNode, AnisotropicBsdfNode, and BsdfBaseNode.
Definition at line 256 of file graph.h.
References CLOSURE_NONE_ID.
|
inlinevirtual |
Reimplemented in VectorDisplacementNode, DisplacementNode, BumpNode, HairInfoNode, VolumeNode, and VoronoiTextureNode.
Definition at line 250 of file graph.h.
References bump, NODE_FEATURE_BUMP, and SHADER_BUMP_NONE.
Referenced by VoronoiTextureNode::get_feature(), VolumeNode::get_feature(), and HairInfoNode::get_feature().
|
inlinevirtual |
Reimplemented in BevelNode, TangentNode, NormalMapNode, RGBRampNode, CurvesNode, VectorTransformNode, VectorRotateNode, VectorMathNode, NormalNode, MathNode, ClampNode, MapRangeNode, BlackbodyNode, WavelengthNode, WireframeNode, LayerWeightNode, FresnelNode, CameraNode, SeparateXYZNode, SeparateHSVNode, SeparateRGBNode, BrightContrastNode, GammaNode, CombineXYZNode, CombineHSVNode, CombineRGBNode, MixNode, InvertNode, HairInfoNode, ParticleInfoNode, ObjectInfoNode, LightFalloffNode, LightPathNode, UVMapNode, GeometryNode, VolumeNode, AmbientOcclusionNode, HoldoutNode, MappingNode, WhiteNoiseTextureNode, IESLightNode, PointDensityTextureNode, BrickTextureNode, CheckerTextureNode, MagicTextureNode, WaveTextureNode, MusgraveTextureNode, VoronoiTextureNode, GradientTextureNode, OutputAOVNode, SkyTextureNode, and EnvironmentTextureNode.
Definition at line 241 of file graph.h.
References NODE_GROUP_LEVEL_0.
Referenced by GeometryNode::get_group().
|
inlinevirtual |
Reimplemented in VectorDisplacementNode, TangentNode, NormalMapNode, AttributeNode, VertexColorNode, VolumeInfoNode, HairInfoNode, ParticleInfoNode, UVMapNode, TextureCoordinateNode, GeometryNode, PrincipledVolumeNode, PrincipledBsdfNode, AnisotropicBsdfNode, PointDensityTextureNode, EnvironmentTextureNode, and ImageTextureNode.
|
inlinevirtual |
Reimplemented in SubsurfaceScatteringNode, and PrincipledBsdfNode.
|
inlinevirtual |
Reimplemented in BsdfBaseNode.
|
inlinevirtual |
Reimplemented in RefractionBsdfNode, GlassBsdfNode, GlossyBsdfNode, and PrincipledBsdfNode.
|
inlinevirtual |
Reimplemented in BevelNode, and AmbientOcclusionNode.
|
inlinevirtual |
Reimplemented in BevelNode, TangentNode, NormalMapNode, OSLNode, BumpNode, WireframeNode, LayerWeightNode, FresnelNode, CameraNode, AttributeNode, VertexColorNode, VolumeInfoNode, HairInfoNode, LightFalloffNode, UVMapNode, TextureCoordinateNode, GeometryNode, AmbientOcclusionNode, BsdfBaseNode, and PointDensityTextureNode.
|
inlinevirtual |
Reimplemented in SubsurfaceScatteringNode, and PrincipledBsdfNode.
|
inlinevirtual |
Reimplemented in EmissionNode.
|
inlinevirtual |
Reimplemented in TransparentBsdfNode.
|
inlinevirtual |
Reimplemented in OSLNode, VolumeNode, and EmissionNode.
| ShaderInput * ShaderNode::input | ( | const char * | name | ) |
Definition at line 111 of file graph.cpp.
References inputs, Node::name, ShaderInput::name(), and NULL.
Referenced by attributes(), AnisotropicBsdfNode::attributes(), PrincipledBsdfNode::attributes(), PrincipledVolumeNode::attributes(), PrincipledHairBsdfNode::attributes(), ShaderGraph::bump_from_displacement(), CurvesNode::compile(), PrincipledBsdfNode::compile(), VolumeNode::compile(), BsdfNode::compile(), ShaderGraph::compute_displacement_hash(), EmissionNode::constant_fold(), BackgroundNode::constant_fold(), AddClosureNode::constant_fold(), MixClosureNode::constant_fold(), InvertNode::constant_fold(), GammaNode::constant_fold(), BumpNode::constant_fold(), RGBCurvesNode::constant_fold(), VectorCurvesNode::constant_fold(), CurvesNode::constant_fold(), ShaderGraph::constant_fold(), ShaderGraph::copy_nodes(), ImageTextureNode::cull_tiles(), LightManager::device_update_background(), PrincipledBsdfNode::expand(), MapRangeNode::expand(), MathNode::expand(), ShaderGraph::finalize(), ConstantFolder::fold_mapping(), ConstantFolder::fold_math(), ConstantFolder::fold_mix(), ConstantFolder::fold_vector_math(), ShaderManager::get_requested_features(), SubsurfaceScatteringNode::has_bssrdf_bump(), BsdfBaseNode::has_bump(), PrincipledBsdfNode::has_integrator_dependency(), GlossyBsdfNode::has_integrator_dependency(), GlassBsdfNode::has_integrator_dependency(), RefractionBsdfNode::has_integrator_dependency(), PrincipledBsdfNode::has_surface_bssrdf(), Shader::is_constant_emission(), remove_input(), Shader::set_graph(), OutputAOVNode::simplify_settings(), GlossyBsdfNode::simplify_settings(), GlassBsdfNode::simplify_settings(), RefractionBsdfNode::simplify_settings(), ShaderGraph::transform_multi_closure(), and ShaderGraph::verify_volume_output().
| ShaderInput * ShaderNode::input | ( | ustring | name | ) |
Definition at line 130 of file graph.cpp.
References inputs, Node::name, ShaderInput::name(), and NULL.
| ShaderOutput * ShaderNode::output | ( | const char * | name | ) |
Definition at line 121 of file graph.cpp.
References Node::name, ShaderOutput::name(), NULL, and outputs.
Referenced by CCL_NAMESPACE_BEGIN::ShaderGraphBuilder::add_connection(), ShaderManager::add_default(), GeometryNode::attributes(), TextureCoordinateNode::attributes(), UVMapNode::attributes(), ParticleInfoNode::attributes(), HairInfoNode::attributes(), VolumeInfoNode::attributes(), VertexColorNode::attributes(), AttributeNode::attributes(), ShaderGraph::bump_from_displacement(), VectorMathNode::constant_fold(), BumpNode::constant_fold(), RGBRampNode::constant_fold(), ShaderGraph::constant_fold(), ShaderGraph::copy_nodes(), ShaderGraph::default_inputs(), LightManager::device_update_background(), PrincipledBsdfNode::expand(), VolumeInfoNode::expand(), MapRangeNode::expand(), MathNode::expand(), GeometryNode::get_group(), and ShaderGraph::transform_multi_closure().
| ShaderOutput * ShaderNode::output | ( | ustring | name | ) |
Definition at line 140 of file graph.cpp.
References Node::name, ShaderOutput::name(), NULL, and outputs.
| void ShaderNode::remove_input | ( | ShaderInput * | input | ) |
Definition at line 149 of file graph.cpp.
References input(), inputs, ShaderInput::link, and NULL.
Referenced by PrincipledBsdfNode::expand().
|
inlinevirtual |
Reimplemented in RefractionBsdfNode, GlassBsdfNode, GlossyBsdfNode, and OutputAOVNode.
| ShaderBump ShaderNode::bump |
Definition at line 227 of file graph.h.
Referenced by equals(), get_feature(), and ShaderNode().
| int ShaderNode::id |
Definition at line 226 of file graph.h.
Referenced by ShaderGraph::break_cycles(), ShaderGraph::compute_displacement_hash(), SVMCompiler::generate_svm_nodes(), ShaderNodeIDComparator::operator()(), and ShaderGraph::remove_proxy_nodes().
| vector<ShaderInput *> ShaderNode::inputs |
Definition at line 223 of file graph.h.
Referenced by add_nodes(), ConstantFolder::all_inputs_constant(), attributes(), OSLNode::clone(), ConvertNode::constant_fold(), ShaderGraph::copy_nodes(), create_inputs_outputs(), do_versions_material_convert_legacy_blend_mode(), equals(), SVMCompiler::generate_multi_closure(), input(), remove_input(), ShaderGraph::remove_proxy_nodes(), ConstantFolder::try_bypass_or_make_constant(), xml_read_shader_graph(), and ~ShaderNode().
| vector<ShaderOutput *> ShaderNode::outputs |
Definition at line 224 of file graph.h.
Referenced by add_node(), add_nodes(), SeparateRGBNode::constant_fold(), SeparateHSVNode::constant_fold(), SeparateXYZNode::constant_fold(), ShaderGraph::copy_nodes(), create_inputs_outputs(), ShaderGraph::deduplicate_nodes(), output(), ShaderGraph::remove_proxy_nodes(), xml_read_shader_graph(), and ~ShaderNode().
| ShaderNodeSpecialType ShaderNode::special_type |
Definition at line 229 of file graph.h.
Referenced by BsdfBaseNode::BsdfBaseNode(), ConvertNode::constant_fold(), ConvertNode::ConvertNode(), SubsurfaceScatteringNode::has_bssrdf_bump(), BsdfBaseNode::has_bump(), ImageSlotTextureNode::ImageSlotTextureNode(), ShaderGraph::remove_proxy_nodes(), and ShaderNode().