|
Blender
V2.93
|
#include <shader.h>
Inherits Node.
Public Member Functions | |
| Shader () | |
| ~Shader () | |
| bool | is_constant_emission (float3 *emission) |
| void | set_graph (ShaderGraph *graph) |
| void | tag_update (Scene *scene) |
| void | tag_used (Scene *scene) |
| bool | need_update_geometry () const |
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 | |
| NODE_DECLARE ShaderGraph * | graph |
| float | prev_volume_step_rate |
| bool | need_update_uvs |
| bool | need_update_attribute |
| bool | need_update_displacement |
| bool | has_volume_connected |
| bool | has_surface |
| bool | has_surface_emission |
| bool | has_surface_transparent |
| bool | has_volume |
| bool | has_displacement |
| bool | has_surface_bssrdf |
| bool | has_bump |
| bool | has_bssrdf_bump |
| bool | has_surface_spatial_varying |
| bool | has_volume_spatial_varying |
| bool | has_volume_attribute_dependency |
| bool | has_integrator_dependency |
| AttributeRequestSet | attributes |
| uint | id |
| bool | used |
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 |
| Shader::Shader | ( | ) |
Definition at line 197 of file shader.cpp.
References DISPLACE_BUMP, graph, has_bssrdf_bump, has_bump, has_displacement, has_integrator_dependency, has_surface, has_surface_bssrdf, has_surface_emission, has_surface_spatial_varying, has_surface_transparent, has_volume, has_volume_attribute_dependency, has_volume_connected, has_volume_spatial_varying, need_update_attribute, need_update_displacement, need_update_uvs, NULL, prev_volume_step_rate, and used.
| Shader::~Shader | ( | ) |
Definition at line 228 of file shader.cpp.
References graph.
| bool Shader::is_constant_emission | ( | float3 * | emission | ) |
Definition at line 233 of file shader.cpp.
References graph, ShaderNode::input(), ShaderInput::link, node, ShaderGraph::nodes, NULL, ShaderGraph::output(), ShaderOutput::parent, SHADER_SPECIAL_TYPE_OUTPUT_AOV, and Node::type.
| bool Shader::need_update_geometry | ( | ) | const |
Definition at line 391 of file shader.cpp.
References need_update_attribute, need_update_displacement, and need_update_uvs.
| void Shader::set_graph | ( | ShaderGraph * | graph | ) |
Definition at line 279 of file shader.cpp.
References ShaderGraph::compute_displacement_hash(), DISPLACE_BUMP, ShaderGraph::displacement_hash, graph, has_volume_connected, ShaderNode::input(), ShaderInput::link, need_update_displacement, NULL, ShaderGraph::output(), and ShaderGraph::remove_proxy_nodes().
| void Shader::tag_update | ( | Scene * | scene | ) |
Definition at line 311 of file shader.cpp.
References AttributeRequestSet::add(), ATTR_STD_POSITION_UNDISPLACED, attributes, Scene::background, AttributeRequestSet::clear(), DISPLACE_BOTH, Scene::geometry_manager, Background::get_shader(), graph, LightManager::has_background_light(), has_displacement, has_surface, has_surface_emission, has_volume, Scene::light_manager, AttributeRequestSet::modified(), GeometryManager::need_flags_update, ObjectManager::need_flags_update, need_update_attribute, LightManager::need_update_background, need_update_displacement, node, ShaderGraph::nodes, Scene::object_manager, output, ShaderGraph::output(), prev_volume_step_rate, Scene::procedural_manager, scene, GeometryManager::SHADER_ATTRIBUTE_MODIFIED, GeometryManager::SHADER_DISPLACEMENT_MODIFIED, Scene::shader_manager, LightManager::SHADER_MODIFIED, ShaderManager::SHADER_MODIFIED, Node::tag_modified(), ProceduralManager::tag_update(), GeometryManager::tag_update(), LightManager::tag_update(), and ShaderManager::tag_update().
| void Shader::tag_used | ( | Scene * | scene | ) |
Definition at line 381 of file shader.cpp.
References scene, Scene::shader_manager, ShaderManager::SHADER_MODIFIED, Node::tag_modified(), ShaderManager::tag_update(), and used.
| AttributeRequestSet Shader::attributes |
Definition at line 131 of file shader.h.
Referenced by tag_update().
| NODE_DECLARE ShaderGraph* Shader::graph |
Definition at line 85 of file shader.h.
Referenced by is_constant_emission(), set_graph(), Shader(), tag_update(), and ~Shader().
| bool Shader::has_bssrdf_bump |
Definition at line 124 of file shader.h.
Referenced by SVMCompiler::generate_closure_node(), and Shader().
| bool Shader::has_bump |
Definition at line 123 of file shader.h.
Referenced by SVMCompiler::generate_closure_node(), and Shader().
| bool Shader::has_displacement |
Definition at line 121 of file shader.h.
Referenced by Shader(), and tag_update().
| bool Shader::has_integrator_dependency |
Definition at line 128 of file shader.h.
Referenced by SVMCompiler::generate_node(), and Shader().
| bool Shader::has_surface |
Definition at line 117 of file shader.h.
Referenced by Shader(), and tag_update().
| bool Shader::has_surface_bssrdf |
Definition at line 122 of file shader.h.
Referenced by SVMCompiler::generate_closure_node(), and Shader().
| bool Shader::has_surface_emission |
Definition at line 118 of file shader.h.
Referenced by SVMCompiler::generate_closure_node(), Light::has_contribution(), Shader(), and tag_update().
| bool Shader::has_surface_spatial_varying |
Definition at line 125 of file shader.h.
Referenced by SVMCompiler::generate_node(), and Shader().
| bool Shader::has_surface_transparent |
Definition at line 119 of file shader.h.
Referenced by SVMCompiler::generate_closure_node(), and Shader().
| bool Shader::has_volume |
Definition at line 120 of file shader.h.
Referenced by Shader(), and tag_update().
| bool Shader::has_volume_attribute_dependency |
Definition at line 127 of file shader.h.
Referenced by SVMCompiler::generate_node(), and Shader().
| bool Shader::has_volume_connected |
Definition at line 114 of file shader.h.
Referenced by set_graph(), and Shader().
| bool Shader::has_volume_spatial_varying |
Definition at line 126 of file shader.h.
Referenced by SVMCompiler::generate_node(), and Shader().
| bool Shader::need_update_attribute |
Definition at line 104 of file shader.h.
Referenced by need_update_geometry(), Shader(), and tag_update().
| bool Shader::need_update_displacement |
Definition at line 105 of file shader.h.
Referenced by need_update_geometry(), set_graph(), Shader(), and tag_update().
| bool Shader::need_update_uvs |
Definition at line 103 of file shader.h.
Referenced by need_update_geometry(), and Shader().
| float Shader::prev_volume_step_rate |
Definition at line 100 of file shader.h.
Referenced by Shader(), and tag_update().
| bool Shader::used |
Definition at line 135 of file shader.h.
Referenced by Shader(), tag_used(), and ShaderManager::update_shaders_used().