Blender  V3.3
Public Member Functions | List of all members
PrincipledBsdfNode Class Reference

#include <shader_nodes.h>

Inheritance diagram for PrincipledBsdfNode:
BsdfBaseNode ShaderNode Node

Public Member Functions

void expand (ShaderGraph *graph)
 
bool has_surface_bssrdf ()
 
bool has_bssrdf_bump ()
 
void compile (SVMCompiler &compiler, ShaderInput *metallic, ShaderInput *subsurface, ShaderInput *subsurface_radius, ShaderInput *subsurface_ior, ShaderInput *subsurface_anisotropy, ShaderInput *specular, ShaderInput *roughness, ShaderInput *specular_tint, ShaderInput *anisotropic, ShaderInput *sheen, ShaderInput *sheen_tint, ShaderInput *clearcoat, ShaderInput *clearcoat_roughness, ShaderInput *ior, ShaderInput *transmission, ShaderInput *anisotropic_rotation, ShaderInput *transmission_roughness)
 
bool has_integrator_dependency ()
 
void attributes (Shader *shader, AttributeRequestSet *attributes)
 
bool has_attribute_dependency ()
 
- 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 constant_fold (const ConstantFolder &)
 
virtual void simplify_settings (Scene *)
 
virtual bool has_surface_emission ()
 
virtual bool has_surface_transparent ()
 
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, 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 , typename std::enable_if_t< std::is_enum_v< ValueType >> * = nullptr>
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
 
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 525 of file shader_nodes.h.

Member Function Documentation

◆ attributes()

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

◆ compile()

void PrincipledBsdfNode::compile ( SVMCompiler compiler,
ShaderInput metallic,
ShaderInput subsurface,
ShaderInput subsurface_radius,
ShaderInput subsurface_ior,
ShaderInput subsurface_anisotropy,
ShaderInput specular,
ShaderInput roughness,
ShaderInput specular_tint,
ShaderInput anisotropic,
ShaderInput sheen,
ShaderInput sheen_tint,
ShaderInput clearcoat,
ShaderInput clearcoat_roughness,
ShaderInput ior,
ShaderInput transmission,
ShaderInput anisotropic_rotation,
ShaderInput transmission_roughness 
)

◆ expand()

void PrincipledBsdfNode::expand ( ShaderGraph graph)
virtual

◆ has_attribute_dependency()

bool PrincipledBsdfNode::has_attribute_dependency ( )
inlinevirtual

Reimplemented from ShaderNode.

Definition at line 586 of file shader_nodes.h.

◆ has_bssrdf_bump()

bool PrincipledBsdfNode::has_bssrdf_bump ( )
virtual

Reimplemented from ShaderNode.

Definition at line 2984 of file shader_nodes.cpp.

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

◆ has_integrator_dependency()

bool PrincipledBsdfNode::has_integrator_dependency ( )
virtual

Reimplemented from ShaderNode.

Definition at line 2949 of file shader_nodes.cpp.

References ShaderNode::input(), ShaderInput::link, and usdtokens::roughness().

◆ has_surface_bssrdf()

bool PrincipledBsdfNode::has_surface_bssrdf ( )
virtual

Reimplemented from ShaderNode.

Definition at line 2837 of file shader_nodes.cpp.

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

Referenced by has_bssrdf_bump().


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