Blender V4.3
Shader Class Reference

#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
 
Nodeget_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 NodeOwnerget_owner () const
 
void set_owner (const NodeOwner *owner_)
 
int reference_count () const
 
void reference ()
 
void dereference ()
 
void clear_reference_count ()
 

Public Attributes

NODE_DECLARE ShaderGraphgraph
 
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 NodeTypetype
 
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 Tget_socket_value (const Node *node, const SocketType &socket)
 
- Protected Attributes inherited from Node
const NodeOwnerowner
 
int ref_count {0}
 
SocketModifiedFlags socket_modified
 

Detailed Description

Definition at line 68 of file scene/shader.h.

Constructor & Destructor Documentation

◆ Shader()

◆ ~Shader()

Shader::~Shader ( )

Definition at line 123 of file scene/shader.cpp.

References graph.

Member Function Documentation

◆ estimate_emission()

◆ has_surface_link()

bool Shader::has_surface_link ( ) const
inline

Definition at line 153 of file scene/shader.h.

References has_displacement, and has_surface.

◆ need_update_geometry()

bool Shader::need_update_geometry ( ) const

◆ set_graph()

◆ tag_update()

◆ tag_used()

void Shader::tag_used ( Scene * scene)

Member Data Documentation

◆ attributes

AttributeRequestSet Shader::attributes

Definition at line 123 of file scene/shader.h.

Referenced by tag_update().

◆ emission_estimate

float3 Shader::emission_estimate

Definition at line 118 of file scene/shader.h.

Referenced by estimate_emission(), Light::has_contribution(), and Shader().

◆ emission_is_constant

bool Shader::emission_is_constant

Definition at line 120 of file scene/shader.h.

Referenced by estimate_emission(), and Shader().

◆ emission_sampling

EmissionSampling Shader::emission_sampling

Definition at line 119 of file scene/shader.h.

Referenced by estimate_emission(), Shader(), and tag_update().

◆ graph

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().

◆ has_bssrdf_bump

bool Shader::has_bssrdf_bump

Definition at line 113 of file scene/shader.h.

Referenced by SVMCompiler::generate_closure_node(), and Shader().

◆ has_bump

bool Shader::has_bump

Definition at line 112 of file scene/shader.h.

Referenced by SVMCompiler::generate_closure_node(), and Shader().

◆ has_displacement

bool Shader::has_displacement

Definition at line 110 of file scene/shader.h.

Referenced by has_surface_link(), Shader(), and tag_update().

◆ has_surface

bool Shader::has_surface

Definition at line 106 of file scene/shader.h.

Referenced by SVMCompiler::compile(), has_surface_link(), Shader(), and tag_update().

◆ has_surface_bssrdf

bool Shader::has_surface_bssrdf

Definition at line 111 of file scene/shader.h.

Referenced by SVMCompiler::generate_closure_node(), and Shader().

◆ has_surface_raytrace

bool Shader::has_surface_raytrace

Definition at line 108 of file scene/shader.h.

Referenced by SVMCompiler::generate_node(), and Shader().

◆ has_surface_spatial_varying

bool Shader::has_surface_spatial_varying

Definition at line 114 of file scene/shader.h.

Referenced by SVMCompiler::generate_node(), and Shader().

◆ has_surface_transparent

bool Shader::has_surface_transparent

Definition at line 107 of file scene/shader.h.

Referenced by SVMCompiler::generate_closure_node(), and Shader().

◆ has_volume

bool Shader::has_volume

Definition at line 109 of file scene/shader.h.

Referenced by Shader(), and tag_update().

◆ has_volume_attribute_dependency

bool Shader::has_volume_attribute_dependency

Definition at line 116 of file scene/shader.h.

Referenced by SVMCompiler::generate_node(), and Shader().

◆ has_volume_connected

bool Shader::has_volume_connected

Definition at line 103 of file scene/shader.h.

Referenced by set_graph(), and Shader().

◆ has_volume_spatial_varying

bool Shader::has_volume_spatial_varying

Definition at line 115 of file scene/shader.h.

Referenced by SVMCompiler::generate_node(), and Shader().

◆ id

uint Shader::id

Definition at line 126 of file scene/shader.h.

◆ need_update_attribute

bool Shader::need_update_attribute

Definition at line 93 of file scene/shader.h.

Referenced by need_update_geometry(), Shader(), and tag_update().

◆ need_update_displacement

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().

◆ need_update_uvs

bool Shader::need_update_uvs

Definition at line 92 of file scene/shader.h.

Referenced by need_update_geometry(), and Shader().

◆ prev_volume_step_rate

float Shader::prev_volume_step_rate

Definition at line 89 of file scene/shader.h.

Referenced by Shader(), and tag_update().


The documentation for this class was generated from the following files: