Blender
V4.3
intern
cycles
scene
integrator.h
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2
*
3
* SPDX-License-Identifier: Apache-2.0 */
4
5
#ifndef __INTEGRATOR_H__
6
#define __INTEGRATOR_H__
7
8
#include "
kernel/types.h
"
9
10
#include "
device/denoise.h
"
/* For the parameters and type enum. */
11
#include "
graph/node.h
"
12
#include "
integrator/adaptive_sampling.h
"
13
#include "integrator/guiding.h"
14
15
CCL_NAMESPACE_BEGIN
16
17
class
Device
;
18
class
DeviceScene
;
19
class
Scene
;
20
21
class
Integrator
:
public
Node
{
22
public
:
23
NODE_DECLARE
24
25
NODE_SOCKET_API
(
int
, min_bounce)
26
NODE_SOCKET_API
(
int
, max_bounce)
27
28
NODE_SOCKET_API
(
int
, max_diffuse_bounce)
29
NODE_SOCKET_API
(
int
, max_glossy_bounce)
30
NODE_SOCKET_API
(
int
, max_transmission_bounce)
31
NODE_SOCKET_API
(
int
, max_volume_bounce)
32
33
#ifdef WITH_CYCLES_DEBUG
34
NODE_SOCKET_API
(
DirectLightSamplingType
, direct_light_sampling_type)
35
#endif
36
37
NODE_SOCKET_API
(
int
, transparent_min_bounce)
38
NODE_SOCKET_API
(
int
, transparent_max_bounce)
39
40
NODE_SOCKET_API
(
int
, ao_bounces)
41
NODE_SOCKET_API
(
float
, ao_factor)
42
NODE_SOCKET_API
(
float
, ao_distance)
43
NODE_SOCKET_API
(
float
, ao_additive_factor)
44
45
NODE_SOCKET_API
(
int
, volume_max_steps)
46
NODE_SOCKET_API
(
float
, volume_step_rate)
47
48
NODE_SOCKET_API
(
bool
, use_guiding);
49
NODE_SOCKET_API
(
bool
, deterministic_guiding);
50
NODE_SOCKET_API
(
bool
, use_surface_guiding);
51
NODE_SOCKET_API
(
float
, surface_guiding_probability);
52
NODE_SOCKET_API
(
bool
, use_volume_guiding);
53
NODE_SOCKET_API
(
float
, volume_guiding_probability);
54
NODE_SOCKET_API
(
int
, guiding_training_samples);
55
NODE_SOCKET_API
(
bool
, use_guiding_direct_light);
56
NODE_SOCKET_API
(
bool
, use_guiding_mis_weights);
57
NODE_SOCKET_API
(
GuidingDistributionType
, guiding_distribution_type);
58
NODE_SOCKET_API
(
GuidingDirectionalSamplingType
, guiding_directional_sampling_type);
59
NODE_SOCKET_API
(
float
, guiding_roughness_threshold);
60
61
NODE_SOCKET_API
(
bool
, caustics_reflective)
62
NODE_SOCKET_API
(
bool
, caustics_refractive)
63
NODE_SOCKET_API
(
float
, filter_glossy)
64
65
NODE_SOCKET_API
(
bool
, use_direct_light);
66
NODE_SOCKET_API
(
bool
, use_indirect_light);
67
NODE_SOCKET_API
(
bool
, use_diffuse);
68
NODE_SOCKET_API
(
bool
, use_glossy);
69
NODE_SOCKET_API
(
bool
, use_transmission);
70
NODE_SOCKET_API
(
bool
, use_emission);
71
72
NODE_SOCKET_API
(
int
,
seed
)
73
74
NODE_SOCKET_API
(
float
, sample_clamp_direct)
75
NODE_SOCKET_API
(
float
, sample_clamp_indirect)
76
NODE_SOCKET_API
(
bool
, motion_blur)
77
78
/* Maximum number of samples, beyond which we are likely to run into
79
* precision issues for sampling patterns. */
80
static const
int
MAX_SAMPLES
= (1 << 24);
81
82
NODE_SOCKET_API
(
int
, aa_samples)
83
NODE_SOCKET_API
(
int
, start_sample)
84
85
NODE_SOCKET_API
(
bool
, use_light_tree)
86
NODE_SOCKET_API
(
float
, light_sampling_threshold)
87
88
NODE_SOCKET_API
(
bool
, use_adaptive_sampling)
89
NODE_SOCKET_API
(
int
, adaptive_min_samples)
90
NODE_SOCKET_API
(
float
, adaptive_threshold)
91
92
NODE_SOCKET_API
(
SamplingPattern
, sampling_pattern)
93
NODE_SOCKET_API
(
float
, scrambling_distance)
94
95
NODE_SOCKET_API
(
bool
, use_denoise);
96
NODE_SOCKET_API
(
DenoiserType
, denoiser_type);
97
NODE_SOCKET_API
(
int
, denoise_start_sample);
98
NODE_SOCKET_API
(
bool
, use_denoise_pass_albedo);
99
NODE_SOCKET_API
(
bool
, use_denoise_pass_normal);
100
NODE_SOCKET_API
(
DenoiserPrefilter
, denoiser_prefilter);
101
NODE_SOCKET_API
(
bool
, denoise_use_gpu);
102
NODE_SOCKET_API
(
DenoiserQuality
, denoiser_quality);
103
104
enum :
uint32_t
{
105
AO_PASS_MODIFIED
= (1 << 0),
106
OBJECT_MANAGER
= (1 << 1),
107
108
/* tag everything in the manager for an update */
109
UPDATE_ALL
= ~0u,
110
111
UPDATE_NONE
= 0u,
112
};
113
114
Integrator
();
115
~Integrator
();
116
117
void
device_update
(
Device
*device,
DeviceScene
*dscene,
Scene
*scene);
118
void
device_free
(
Device
*device,
DeviceScene
*dscene,
bool
force_free =
false
);
119
120
void
tag_update
(
Scene
*scene,
uint32_t
flag
);
121
122
uint
get_kernel_features
()
const
;
123
124
AdaptiveSampling
get_adaptive_sampling
()
const
;
125
DenoiseParams
get_denoise_params
()
const
;
126
GuidingParams
get_guiding_params
(
const
Device
*device)
const
;
127
};
128
129
CCL_NAMESPACE_END
130
131
#endif
/* __INTEGRATOR_H__ */
uint
unsigned int uint
Definition
BLI_sys_types.h:68
seed
static unsigned long seed
Definition
btSoftBody.h:39
AdaptiveSampling
Definition
integrator/adaptive_sampling.h:9
DenoiseParams
Definition
denoise.h:53
DeviceScene
Definition
devicescene.h:16
Device
Definition
device/device.h:136
Integrator
Definition
integrator.h:21
Integrator::UPDATE_NONE
@ UPDATE_NONE
Definition
integrator.h:111
Integrator::UPDATE_ALL
@ UPDATE_ALL
Definition
integrator.h:109
Integrator::OBJECT_MANAGER
@ OBJECT_MANAGER
Definition
integrator.h:106
Integrator::AO_PASS_MODIFIED
@ AO_PASS_MODIFIED
Definition
integrator.h:105
Integrator::tag_update
void tag_update(Scene *scene, uint32_t flag)
Definition
integrator.cpp:344
Integrator::device_update
void device_update(Device *device, DeviceScene *dscene, Scene *scene)
Definition
integrator.cpp:169
Integrator::get_denoise_params
DenoiseParams get_denoise_params() const
Definition
integrator.cpp:420
Integrator::Integrator
Integrator()
Definition
integrator.cpp:165
Integrator::~Integrator
~Integrator()
Definition
integrator.cpp:167
Integrator::get_adaptive_sampling
AdaptiveSampling get_adaptive_sampling() const
Definition
integrator.cpp:377
Integrator::device_free
void device_free(Device *device, DeviceScene *dscene, bool force_free=false)
Definition
integrator.cpp:339
Integrator::get_guiding_params
GuidingParams get_guiding_params(const Device *device) const
Definition
integrator.cpp:441
Integrator::MAX_SAMPLES
static const int MAX_SAMPLES
Definition
integrator.h:80
Integrator::get_kernel_features
uint get_kernel_features() const
Definition
integrator.cpp:362
denoise.h
DenoiserQuality
DenoiserQuality
Definition
denoise.h:43
DenoiserPrefilter
DenoiserPrefilter
Definition
denoise.h:27
DenoiserType
DenoiserType
Definition
denoise.h:13
CCL_NAMESPACE_END
#define CCL_NAMESPACE_END
Definition
device/cuda/compat.h:10
node.h
NODE_SOCKET_API
#define NODE_SOCKET_API(type_, name)
Definition
graph/node.h:55
adaptive_sampling.h
types.h
DirectLightSamplingType
DirectLightSamplingType
Definition
kernel/types.h:694
GuidingDirectionalSamplingType
GuidingDirectionalSamplingType
Definition
kernel/types.h:655
SamplingPattern
SamplingPattern
Definition
kernel/types.h:327
GuidingDistributionType
GuidingDistributionType
Definition
kernel/types.h:645
CCL_NAMESPACE_BEGIN
Definition
python.cpp:44
NODE_DECLARE
#define NODE_DECLARE
Definition
node_type.h:142
uint32_t
unsigned int uint32_t
Definition
stdint.h:80
GuidingParams
Definition
integrator/guiding.h:11
Node
Definition
graph/node.h:90
Scene
Definition
DNA_scene_types.h:1988
flag
uint8_t flag
Definition
wm_window.cc:138
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0