Blender V5.0
Integrator Class Reference

#include <integrator.h>

Inherits Node.

Public Types

enum  : uint32_t { AO_PASS_MODIFIED = (1 << 0) , OBJECT_MANAGER = (1 << 1) , UPDATE_ALL = ~0u , UPDATE_NONE = 0u }

Public Member Functions

NODE_DECLARE NODE_SOCKET_API (bool, use_guiding)
 NODE_SOCKET_API (bool, deterministic_guiding)
 NODE_SOCKET_API (bool, use_surface_guiding)
 NODE_SOCKET_API (float, surface_guiding_probability)
 NODE_SOCKET_API (bool, use_volume_guiding)
 NODE_SOCKET_API (float, volume_guiding_probability)
 NODE_SOCKET_API (int, guiding_training_samples)
 NODE_SOCKET_API (bool, use_guiding_direct_light)
 NODE_SOCKET_API (bool, use_guiding_mis_weights)
 NODE_SOCKET_API (GuidingDistributionType, guiding_distribution_type)
 NODE_SOCKET_API (GuidingDirectionalSamplingType, guiding_directional_sampling_type)
 NODE_SOCKET_API (float, guiding_roughness_threshold)
 NODE_SOCKET_API (bool, use_direct_light)
 NODE_SOCKET_API (bool, use_indirect_light)
 NODE_SOCKET_API (bool, use_diffuse)
 NODE_SOCKET_API (bool, use_glossy)
 NODE_SOCKET_API (bool, use_transmission)
 NODE_SOCKET_API (bool, use_emission)
 NODE_SOCKET_API (bool, use_denoise)
 NODE_SOCKET_API (DenoiserType, denoiser_type)
 NODE_SOCKET_API (int, denoise_start_sample)
 NODE_SOCKET_API (bool, use_denoise_pass_albedo)
 NODE_SOCKET_API (bool, use_denoise_pass_normal)
 NODE_SOCKET_API (DenoiserPrefilter, denoiser_prefilter)
 NODE_SOCKET_API (bool, denoise_use_gpu)
 NODE_SOCKET_API (DenoiserQuality, denoiser_quality)
 Integrator ()
 ~Integrator () override
void device_update (Device *device, DeviceScene *dscene, Scene *scene)
void device_free (Device *device, DeviceScene *dscene, bool force_free=false)
void tag_update (Scene *scene, const uint32_t flag)
uint get_kernel_features () const
AdaptiveSampling get_adaptive_sampling () const
DenoiseParams get_denoise_params () const
GuidingParams get_guiding_params (const Device *device) 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, const int value)
void set (const SocketType &input, const uint value)
void set (const SocketType &input, const uint64_t value)
void set (const SocketType &input, const float value)
void set (const SocketType &input, const float2 value)
void set (const SocketType &input, const 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 &socket) const
void copy_value (const SocketType &socket, const Node &other, const SocketType &other_socket)
void set_value (const SocketType &socket, const Node &other, const SocketType &other_socket)
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 ()

Static Public Attributes

static const int MAX_SAMPLES = (1 << 24)

Additional Inherited Members

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 Node
const NodeOwnerowner
int ref_count {0}
SocketModifiedFlags socket_modified

Detailed Description

Definition at line 20 of file integrator.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : uint32_t
Enumerator
AO_PASS_MODIFIED 
OBJECT_MANAGER 
UPDATE_ALL 
UPDATE_NONE 

Definition at line 107 of file integrator.h.

Constructor & Destructor Documentation

◆ Integrator()

Integrator::Integrator ( )

Definition at line 168 of file integrator.cpp.

References Node::Node().

◆ ~Integrator()

Integrator::~Integrator ( )
overridedefault

References flag.

Member Function Documentation

◆ device_free()

void Integrator::device_free ( Device * device,
DeviceScene * dscene,
bool force_free = false )

◆ device_update()

◆ get_adaptive_sampling()

◆ get_denoise_params()

◆ get_guiding_params()

◆ get_kernel_features()

uint Integrator::get_kernel_features ( ) const

Definition at line 375 of file integrator.cpp.

References KERNEL_FEATURE_AO_ADDITIVE, and KERNEL_FEATURE_LIGHT_TREE.

◆ NODE_SOCKET_API() [1/26]

Integrator::NODE_SOCKET_API ( bool ,
denoise_use_gpu  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [2/26]

Integrator::NODE_SOCKET_API ( bool ,
deterministic_guiding  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [3/26]

Integrator::NODE_SOCKET_API ( bool ,
use_denoise  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [4/26]

Integrator::NODE_SOCKET_API ( bool ,
use_denoise_pass_albedo  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [5/26]

Integrator::NODE_SOCKET_API ( bool ,
use_denoise_pass_normal  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [6/26]

Integrator::NODE_SOCKET_API ( bool ,
use_diffuse  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [7/26]

Integrator::NODE_SOCKET_API ( bool ,
use_direct_light  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [8/26]

Integrator::NODE_SOCKET_API ( bool ,
use_emission  )

References NODE_SOCKET_API(), and seed.

◆ NODE_SOCKET_API() [9/26]

Integrator::NODE_SOCKET_API ( bool ,
use_glossy  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [10/26]

◆ NODE_SOCKET_API() [11/26]

Integrator::NODE_SOCKET_API ( bool ,
use_guiding_direct_light  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [12/26]

Integrator::NODE_SOCKET_API ( bool ,
use_guiding_mis_weights  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [13/26]

Integrator::NODE_SOCKET_API ( bool ,
use_indirect_light  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [14/26]

Integrator::NODE_SOCKET_API ( bool ,
use_surface_guiding  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [15/26]

Integrator::NODE_SOCKET_API ( bool ,
use_transmission  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [16/26]

Integrator::NODE_SOCKET_API ( bool ,
use_volume_guiding  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [17/26]

Integrator::NODE_SOCKET_API ( DenoiserPrefilter ,
denoiser_prefilter  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [18/26]

Integrator::NODE_SOCKET_API ( DenoiserQuality ,
denoiser_quality  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [19/26]

Integrator::NODE_SOCKET_API ( DenoiserType ,
denoiser_type  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [20/26]

Integrator::NODE_SOCKET_API ( float ,
guiding_roughness_threshold  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [21/26]

Integrator::NODE_SOCKET_API ( float ,
surface_guiding_probability  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [22/26]

Integrator::NODE_SOCKET_API ( float ,
volume_guiding_probability  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [23/26]

Integrator::NODE_SOCKET_API ( GuidingDirectionalSamplingType ,
guiding_directional_sampling_type  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [24/26]

Integrator::NODE_SOCKET_API ( GuidingDistributionType ,
guiding_distribution_type  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [25/26]

Integrator::NODE_SOCKET_API ( int ,
denoise_start_sample  )

References NODE_SOCKET_API().

◆ NODE_SOCKET_API() [26/26]

Integrator::NODE_SOCKET_API ( int ,
guiding_training_samples  )

References NODE_SOCKET_API().

◆ tag_update()

Member Data Documentation

◆ MAX_SAMPLES


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