Blender
V3.3
intern
cycles
scene
integrator.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: Apache-2.0
2
* Copyright 2011-2022 Blender Foundation */
3
4
#ifndef __INTEGRATOR_H__
5
#define __INTEGRATOR_H__
6
7
#include "
kernel/types.h
"
8
9
#include "
device/denoise.h
"
/* For the parameters and type enum. */
10
#include "
graph/node.h
"
11
#include "
integrator/adaptive_sampling.h
"
12
13
CCL_NAMESPACE_BEGIN
14
15
class
Device
;
16
class
DeviceScene
;
17
class
Scene
;
18
19
class
Integrator
:
public
Node
{
20
public
:
21
NODE_DECLARE
22
23
NODE_SOCKET_API
(
int
, min_bounce)
24
NODE_SOCKET_API
(
int
, max_bounce)
25
26
NODE_SOCKET_API
(
int
, max_diffuse_bounce)
27
NODE_SOCKET_API
(
int
, max_glossy_bounce)
28
NODE_SOCKET_API
(
int
, max_transmission_bounce)
29
NODE_SOCKET_API
(
int
, max_volume_bounce)
30
31
#ifdef WITH_CYCLES_DEBUG
32
NODE_SOCKET_API
(
DirectLightSamplingType
, direct_light_sampling_type)
33
#endif
34
35
NODE_SOCKET_API
(
int
, transparent_min_bounce)
36
NODE_SOCKET_API
(
int
, transparent_max_bounce)
37
38
NODE_SOCKET_API
(
int
, ao_bounces)
39
NODE_SOCKET_API
(
float
, ao_factor)
40
NODE_SOCKET_API
(
float
, ao_distance)
41
NODE_SOCKET_API
(
float
, ao_additive_factor)
42
43
NODE_SOCKET_API
(
int
, volume_max_steps)
44
NODE_SOCKET_API
(
float
, volume_step_rate)
45
46
NODE_SOCKET_API
(
bool
, caustics_reflective)
47
NODE_SOCKET_API
(
bool
, caustics_refractive)
48
NODE_SOCKET_API
(
float
, filter_glossy)
49
50
NODE_SOCKET_API
(
bool
, use_direct_light);
51
NODE_SOCKET_API
(
bool
, use_indirect_light);
52
NODE_SOCKET_API
(
bool
, use_diffuse);
53
NODE_SOCKET_API
(
bool
, use_glossy);
54
NODE_SOCKET_API
(
bool
, use_transmission);
55
NODE_SOCKET_API
(
bool
, use_emission);
56
57
NODE_SOCKET_API
(
int
,
seed
)
58
59
NODE_SOCKET_API
(
float
, sample_clamp_direct)
60
NODE_SOCKET_API
(
float
, sample_clamp_indirect)
61
NODE_SOCKET_API
(
bool
, motion_blur)
62
63
/* Maximum number of samples, beyond which we are likely to run into
64
* precision issues for sampling patterns. */
65
static const
int
MAX_SAMPLES
= (1 << 24);
66
67
NODE_SOCKET_API
(
int
, aa_samples)
68
NODE_SOCKET_API
(
int
, start_sample)
69
70
NODE_SOCKET_API
(
float
, light_sampling_threshold)
71
72
NODE_SOCKET_API
(
bool
, use_adaptive_sampling)
73
NODE_SOCKET_API
(
int
, adaptive_min_samples)
74
NODE_SOCKET_API
(
float
, adaptive_threshold)
75
76
NODE_SOCKET_API
(
SamplingPattern
, sampling_pattern)
77
NODE_SOCKET_API
(
float
, scrambling_distance)
78
79
NODE_SOCKET_API
(
bool
, use_denoise);
80
NODE_SOCKET_API
(
DenoiserType
, denoiser_type);
81
NODE_SOCKET_API
(
int
, denoise_start_sample);
82
NODE_SOCKET_API
(
bool
, use_denoise_pass_albedo);
83
NODE_SOCKET_API
(
bool
, use_denoise_pass_normal);
84
NODE_SOCKET_API
(
DenoiserPrefilter
, denoiser_prefilter);
85
86
enum :
uint32_t
{
87
AO_PASS_MODIFIED
= (1 << 0),
88
OBJECT_MANAGER
= (1 << 1),
89
90
/* tag everything in the manager for an update */
91
UPDATE_ALL
= ~0u,
92
93
UPDATE_NONE
= 0u,
94
};
95
96
Integrator
();
97
~Integrator
();
98
99
void
device_update
(
Device
*device,
DeviceScene
*dscene,
Scene
*
scene
);
100
void
device_free
(
Device
*device,
DeviceScene
*dscene,
bool
force_free =
false
);
101
102
void
tag_update
(
Scene
*
scene
,
uint32_t
flag);
103
104
uint
get_kernel_features
()
const
;
105
106
AdaptiveSampling
get_adaptive_sampling
()
const
;
107
DenoiseParams
get_denoise_params
()
const
;
108
};
109
110
CCL_NAMESPACE_END
111
112
#endif
/* __INTEGRATOR_H__ */
uint
unsigned int uint
Definition:
BLI_sys_types.h:67
seed
static unsigned long seed
Definition:
btSoftBody.h:39
AdaptiveSampling
Definition:
integrator/adaptive_sampling.h:8
DenoiseParams
Definition:
denoise.h:45
DeviceScene
Definition:
scene.h:59
Device
Definition:
device/device.h:105
Integrator
Definition:
integrator.h:19
Integrator::tag_update
void tag_update(Scene *scene, uint32_t flag)
Definition:
integrator.cpp:291
Integrator::device_update
void device_update(Device *device, DeviceScene *dscene, Scene *scene)
Definition:
integrator.cpp:128
Integrator::NODE_SOCKET_API
NODE_DECLARE NODE_SOCKET_API(bool, use_direct_light)
Integrator::get_denoise_params
DenoiseParams get_denoise_params() const
Definition:
integrator.cpp:372
Integrator::UPDATE_NONE
@ UPDATE_NONE
Definition:
integrator.h:93
Integrator::UPDATE_ALL
@ UPDATE_ALL
Definition:
integrator.h:91
Integrator::OBJECT_MANAGER
@ OBJECT_MANAGER
Definition:
integrator.h:88
Integrator::AO_PASS_MODIFIED
@ AO_PASS_MODIFIED
Definition:
integrator.h:87
Integrator::Integrator
Integrator()
Definition:
integrator.cpp:120
Integrator::~Integrator
~Integrator()
Definition:
integrator.cpp:124
Integrator::get_adaptive_sampling
AdaptiveSampling get_adaptive_sampling() const
Definition:
integrator.cpp:329
Integrator::device_free
void device_free(Device *device, DeviceScene *dscene, bool force_free=false)
Definition:
integrator.cpp:286
Integrator::MAX_SAMPLES
static const int MAX_SAMPLES
Definition:
integrator.h:65
Integrator::get_kernel_features
uint get_kernel_features() const
Definition:
integrator.cpp:318
CCL_NAMESPACE_END
#define CCL_NAMESPACE_END
Definition:
cuda/compat.h:9
scene
Scene scene
Definition:
deg_eval_copy_on_write.cc:106
denoise.h
DenoiserPrefilter
DenoiserPrefilter
Definition:
denoise.h:26
DenoiserType
DenoiserType
Definition:
denoise.h:12
node.h
adaptive_sampling.h
types.h
DirectLightSamplingType
DirectLightSamplingType
Definition:
kernel/types.h:494
SamplingPattern
SamplingPattern
Definition:
kernel/types.h:178
CCL_NAMESPACE_BEGIN
Definition:
python.cpp:37
NODE_DECLARE
#define NODE_DECLARE
Definition:
node_type.h:135
uint32_t
unsigned int uint32_t
Definition:
stdint.h:80
Node
Definition:
graph/node.h:89
Scene
Definition:
DNA_scene_types.h:1739
Generated on Sat Jul 27 2024 14:57:55 for Blender by
doxygen
1.9.1