|
Blender V4.3
|
#include <shader.h>
Inherits Node.
Public Member Functions | |
| Shader () | |
| ~Shader () | |
| void | estimate_emission () |
| void | set_graph (ShaderGraph *graph) |
| void | tag_update (Scene *scene) |
| void | tag_used (Scene *scene) |
| bool | has_surface_link () const |
| 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, uint64_t 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) |
| template<class ValueType , std::enable_if_t< std::is_enum_v< ValueType >, bool > = true> | |
| void | set (const SocketType &input, const ValueType &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 |
| uint64_t | get_uint64 (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 () const |
| void | tag_modified () |
| void | clear_modified () |
| void | print_modified_sockets () const |
| const NodeOwner * | get_owner () const |
| void | set_owner (const NodeOwner *owner_) |
| int | reference_count () const |
| void | reference () |
| void | dereference () |
| void | clear_reference_count () |
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_transparent |
| bool | has_surface_raytrace |
| 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 |
| float3 | emission_estimate |
| EmissionSampling | emission_sampling |
| bool | emission_is_constant |
| AttributeRequestSet | attributes |
| uint | id |
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) |
| void | set_if_different (const SocketType &input, Node *value) |
| template<typename T > | |
| void | set_if_different (const SocketType &input, array< T > &value) |
| void | set_if_different (const SocketType &input, array< Node * > &value) |
| void | dereference_all_used_nodes () |
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 |
| int | ref_count {0} |
| SocketModifiedFlags | socket_modified |
Definition at line 68 of file scene/shader.h.
| Shader::Shader | ( | ) |
Definition at line 90 of file scene/shader.cpp.
References DISPLACE_BUMP, emission_estimate, emission_is_constant, emission_sampling, EMISSION_SAMPLING_NONE, has_bssrdf_bump, has_bump, has_displacement, has_surface, has_surface_bssrdf, has_surface_raytrace, 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 zero_float3().
| Shader::~Shader | ( | ) |
Definition at line 123 of file scene/shader.cpp.
References graph.
| void Shader::estimate_emission | ( | ) |
Definition at line 255 of file scene/shader.cpp.
References emission_estimate, emission_is_constant, emission_sampling, EMISSION_SAMPLING_AUTO, EMISSION_SAMPLING_FRONT_BACK, EMISSION_SAMPLING_NONE, fabs(), is_zero(), ShaderInput::link, output_estimate_emission(), reduce_max(), and SHADER_SPECIAL_TYPE_OUTPUT_AOV.
|
inline |
Definition at line 153 of file scene/shader.h.
References has_displacement, and has_surface.
| bool Shader::need_update_geometry | ( | ) | const |
Definition at line 422 of file scene/shader.cpp.
References need_update_attribute, need_update_displacement, and need_update_uvs.
| void Shader::set_graph | ( | ShaderGraph * | graph | ) |
Definition at line 286 of file scene/shader.cpp.
References ShaderGraph::compute_displacement_hash(), DISPLACE_BUMP, ShaderGraph::displacement_hash, graph, has_volume_connected, need_update_displacement, NULL, and ShaderGraph::remove_proxy_nodes().
| void Shader::tag_update | ( | Scene * | scene | ) |
Definition at line 318 of file scene/shader.cpp.
References ATTR_STD_POSITION_UNDISPLACED, attributes, AttributeRequestSet::clear(), DISPLACE_BOTH, emission_sampling, EMISSION_SAMPLING_NONE, has_displacement, has_surface, has_volume, need_update_attribute, need_update_displacement, ShaderNode::output(), prev_volume_step_rate, GeometryManager::SHADER_ATTRIBUTE_MODIFIED, GeometryManager::SHADER_DISPLACEMENT_MODIFIED, LightManager::SHADER_MODIFIED, ShaderManager::SHADER_MODIFIED, SHADER_SPECIAL_TYPE_OUTPUT_AOV, and Node::tag_modified().
Referenced by Geometry::tag_update(), and Object::tag_update().
| void Shader::tag_used | ( | Scene * | scene | ) |
Definition at line 411 of file scene/shader.cpp.
References Node::reference_count(), ShaderManager::SHADER_MODIFIED, and Node::tag_modified().
| AttributeRequestSet Shader::attributes |
Definition at line 123 of file scene/shader.h.
Referenced by tag_update().
| float3 Shader::emission_estimate |
Definition at line 118 of file scene/shader.h.
Referenced by estimate_emission(), Light::has_contribution(), and Shader().
| bool Shader::emission_is_constant |
Definition at line 120 of file scene/shader.h.
Referenced by estimate_emission(), and Shader().
| EmissionSampling Shader::emission_sampling |
Definition at line 119 of file scene/shader.h.
Referenced by estimate_emission(), Shader(), and tag_update().
| NODE_DECLARE ShaderGraph* Shader::graph |
Definition at line 73 of file scene/shader.h.
Referenced by Scene::get_max_closure_count(), set_graph(), and ~Shader().
| bool Shader::has_bssrdf_bump |
Definition at line 113 of file scene/shader.h.
Referenced by SVMCompiler::generate_closure_node(), and Shader().
| bool Shader::has_bump |
Definition at line 112 of file scene/shader.h.
Referenced by SVMCompiler::generate_closure_node(), and Shader().
| bool Shader::has_displacement |
Definition at line 110 of file scene/shader.h.
Referenced by has_surface_link(), Shader(), and tag_update().
| bool Shader::has_surface |
Definition at line 106 of file scene/shader.h.
Referenced by SVMCompiler::compile(), has_surface_link(), Shader(), and tag_update().
| bool Shader::has_surface_bssrdf |
Definition at line 111 of file scene/shader.h.
Referenced by SVMCompiler::generate_closure_node(), and Shader().
| bool Shader::has_surface_raytrace |
Definition at line 108 of file scene/shader.h.
Referenced by SVMCompiler::generate_node(), and Shader().
| bool Shader::has_surface_spatial_varying |
Definition at line 114 of file scene/shader.h.
Referenced by SVMCompiler::generate_node(), and Shader().
| bool Shader::has_surface_transparent |
Definition at line 107 of file scene/shader.h.
Referenced by SVMCompiler::generate_closure_node(), and Shader().
| bool Shader::has_volume |
Definition at line 109 of file scene/shader.h.
Referenced by Shader(), and tag_update().
| bool Shader::has_volume_attribute_dependency |
Definition at line 116 of file scene/shader.h.
Referenced by SVMCompiler::generate_node(), and Shader().
| bool Shader::has_volume_connected |
Definition at line 103 of file scene/shader.h.
Referenced by set_graph(), and Shader().
| bool Shader::has_volume_spatial_varying |
Definition at line 115 of file scene/shader.h.
Referenced by SVMCompiler::generate_node(), and Shader().
| uint Shader::id |
Definition at line 126 of file scene/shader.h.
| bool Shader::need_update_attribute |
Definition at line 93 of file scene/shader.h.
Referenced by need_update_geometry(), Shader(), and tag_update().
| bool Shader::need_update_displacement |
Definition at line 94 of file scene/shader.h.
Referenced by need_update_geometry(), set_graph(), Shader(), and tag_update().
| bool Shader::need_update_uvs |
Definition at line 92 of file scene/shader.h.
Referenced by need_update_geometry(), and Shader().
| float Shader::prev_volume_step_rate |
Definition at line 89 of file scene/shader.h.
Referenced by Shader(), and tag_update().