Blender V4.3
PrincipledBsdfNode Class Reference

#include <shader_nodes.h>

Inherits BsdfBaseNode.

Public Member Functions

bool has_surface_bssrdf ()
bool has_bssrdf_bump ()
void simplify_settings (Scene *scene)
void attributes (Shader *shader, AttributeRequestSet *attributes)
bool has_attribute_dependency ()
bool has_surface_transparent ()
bool has_surface_emission ()
Public Member Functions inherited from BsdfBaseNode
 BsdfBaseNode (const NodeType *node_type)
bool has_spatial_varying ()
virtual ClosureType get_closure_type ()
virtual bool has_bump ()
virtual bool equals (const ShaderNode &)
virtual int get_feature ()
Public Member Functions inherited from ShaderNode
 ShaderNode (const NodeType *type)
virtual ~ShaderNode ()
void create_inputs_outputs (const NodeType *type)
void remove_input (ShaderInput *input)
ShaderInputinput (const char *name)
ShaderOutputoutput (const char *name)
ShaderInputinput (ustring name)
ShaderOutputoutput (ustring name)
virtual ShaderNodeclone (ShaderGraph *graph) const =0
virtual void compile (SVMCompiler &compiler)=0
virtual void compile (OSLCompiler &compiler)=0
virtual void expand (ShaderGraph *)
virtual void constant_fold (const ConstantFolder &)
virtual bool has_volume_support ()
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 ()

Additional Inherited Members

Public Attributes inherited from ShaderNode
vector< ShaderInput * > inputs
vector< ShaderOutput * > outputs
int id
ShaderBump bump
ShaderNodeSpecialType special_type
Public Attributes inherited from Node
ustring name
const NodeTypetype
InternalNode internal
LeafNode leaf
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 BsdfBaseNode
ClosureType closure
Protected Attributes inherited from Node
const NodeOwnerowner
int ref_count {0}
SocketModifiedFlags socket_modified

Detailed Description

Definition at line 514 of file shader_nodes.h.

Member Function Documentation

◆ attributes()

void PrincipledBsdfNode::attributes ( Shader * shader,
AttributeRequestSet * attributes )
virtual

◆ has_attribute_dependency()

bool PrincipledBsdfNode::has_attribute_dependency ( )
inlinevirtual

Reimplemented from ShaderNode.

Definition at line 558 of file shader_nodes.h.

◆ has_bssrdf_bump()

bool PrincipledBsdfNode::has_bssrdf_bump ( )
virtual

Reimplemented from ShaderNode.

Definition at line 3060 of file shader_nodes.cpp.

References BsdfBaseNode::has_bump(), and has_surface_bssrdf().

◆ has_surface_bssrdf()

bool PrincipledBsdfNode::has_surface_bssrdf ( )
virtual

Reimplemented from ShaderNode.

Definition at line 2941 of file shader_nodes.cpp.

References CLOSURE_WEIGHT_CUTOFF, ShaderNode::input(), ShaderInput::link, and NULL.

Referenced by has_bssrdf_bump().

◆ has_surface_emission()

bool PrincipledBsdfNode::has_surface_emission ( )
virtual

Reimplemented from ShaderNode.

Definition at line 2933 of file shader_nodes.cpp.

References CLOSURE_WEIGHT_CUTOFF, ShaderNode::input(), ShaderInput::link, NULL, and reduce_max().

Referenced by simplify_settings().

◆ has_surface_transparent()

bool PrincipledBsdfNode::has_surface_transparent ( )
virtual

Reimplemented from ShaderNode.

Definition at line 2927 of file shader_nodes.cpp.

References CLOSURE_WEIGHT_CUTOFF, ShaderNode::input(), ShaderInput::link, and NULL.

◆ simplify_settings()

void PrincipledBsdfNode::simplify_settings ( Scene * scene)
virtual

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