Blender  V3.3
Public Types | Public Member Functions | Static Public Attributes | List of all members
Integrator Class Reference

#include <integrator.h>

Inheritance diagram for Integrator:
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_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)
 
 Integrator ()
 
 ~Integrator ()
 
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, uint32_t flag)
 
uint get_kernel_features () const
 
AdaptiveSampling get_adaptive_sampling () const
 
DenoiseParams get_denoise_params () 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, 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 ()
 

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 19 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 86 of file integrator.h.

Constructor & Destructor Documentation

◆ Integrator()

Integrator::Integrator ( )

Definition at line 120 of file integrator.cpp.

◆ ~Integrator()

Integrator::~Integrator ( )

Definition at line 124 of file integrator.cpp.

Member Function Documentation

◆ device_free()

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

◆ device_update()

void Integrator::device_update ( Device device,
DeviceScene dscene,
Scene scene 
)

Definition at line 128 of file integrator.cpp.

References Node::is_modified(), scene, time, and Scene::update_stats.

Referenced by Scene::device_update().

◆ get_adaptive_sampling()

AdaptiveSampling Integrator::get_adaptive_sampling ( ) const

◆ get_denoise_params()

DenoiseParams Integrator::get_denoise_params ( ) const

◆ get_kernel_features()

uint Integrator::get_kernel_features ( ) const

Definition at line 318 of file integrator.cpp.

References KERNEL_FEATURE_AO_ADDITIVE.

Referenced by Scene::update_kernel_features().

◆ NODE_SOCKET_API() [1/12]

Integrator::NODE_SOCKET_API ( bool  ,
use_denoise   
)

◆ NODE_SOCKET_API() [2/12]

Integrator::NODE_SOCKET_API ( bool  ,
use_denoise_pass_albedo   
)

◆ NODE_SOCKET_API() [3/12]

Integrator::NODE_SOCKET_API ( bool  ,
use_denoise_pass_normal   
)

◆ NODE_SOCKET_API() [4/12]

Integrator::NODE_SOCKET_API ( bool  ,
use_diffuse   
)

◆ NODE_SOCKET_API() [5/12]

NODE_DECLARE Integrator::NODE_SOCKET_API ( bool  ,
use_direct_light   
)

◆ NODE_SOCKET_API() [6/12]

Integrator::NODE_SOCKET_API ( bool  ,
use_emission   
)

◆ NODE_SOCKET_API() [7/12]

Integrator::NODE_SOCKET_API ( bool  ,
use_glossy   
)

◆ NODE_SOCKET_API() [8/12]

Integrator::NODE_SOCKET_API ( bool  ,
use_indirect_light   
)

◆ NODE_SOCKET_API() [9/12]

Integrator::NODE_SOCKET_API ( bool  ,
use_transmission   
)

◆ NODE_SOCKET_API() [10/12]

Integrator::NODE_SOCKET_API ( DenoiserPrefilter  ,
denoiser_prefilter   
)

◆ NODE_SOCKET_API() [11/12]

Integrator::NODE_SOCKET_API ( DenoiserType  ,
denoiser_type   
)

◆ NODE_SOCKET_API() [12/12]

Integrator::NODE_SOCKET_API ( int  ,
denoise_start_sample   
)

◆ tag_update()

void Integrator::tag_update ( Scene scene,
uint32_t  flag 
)

Member Data Documentation

◆ MAX_SAMPLES

const int Integrator::MAX_SAMPLES = (1 << 24)
static

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