Unravel Engine C++ Reference
Loading...
Searching...
No Matches
ssil_component.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <
base/basetypes.hpp
>
4
#include <
engine/ecs/components/basic_component.h
>
5
#include <
engine/rendering/pipeline/passes/ssil_pass.h
>
6
7
namespace
unravel
8
{
9
10
class
ssil_component
:
public
component_crtp
<ssil_component>
11
{
12
public
:
13
bool
enabled
=
true
;
14
ssil_pass::ssil_settings
settings
{};
15
16
static
void
merge_into
(
ssil_pass::ssil_settings
& result,
17
const
ssil_pass::ssil_settings
& from,
18
float
contribution
,
19
bool
is_first)
20
{
21
if
(is_first)
22
{
23
result = from;
24
return
;
25
}
26
27
result.
max_rays
= int(std::lerp(
float
(result.
max_rays
),
float
(from.
max_rays
),
contribution
));
28
result.
max_steps
= int(std::lerp(
float
(result.
max_steps
),
float
(from.
max_steps
),
contribution
));
29
result.
depth_tolerance
= std::lerp(result.
depth_tolerance
, from.
depth_tolerance
,
contribution
);
30
result.
thickness
= std::lerp(result.
thickness
, from.
thickness
,
contribution
);
31
result.
brightness
= std::lerp(result.
brightness
, from.
brightness
,
contribution
);
32
result.
max_distance
= std::lerp(result.
max_distance
, from.
max_distance
,
contribution
);
33
result.
resolution
=
contribution
>= 0.5f ? from.
resolution
: result.
resolution
;
34
35
result.
enable_multi_bounce
=
contribution
>= 0.5f ? from.
enable_multi_bounce
: result.
enable_multi_bounce
;
36
result.
multi_bounce_intensity
= std::lerp(result.
multi_bounce_intensity
, from.
multi_bounce_intensity
,
contribution
);
37
38
result.
enable_spatial_denoise
=
contribution
>= 0.5f ? from.
enable_spatial_denoise
: result.
enable_spatial_denoise
;
39
result.
spatial_denoise
.
depth_sigma
= std::lerp(result.
spatial_denoise
.
depth_sigma
, from.
spatial_denoise
.
depth_sigma
,
contribution
);
40
result.
spatial_denoise
.
normal_power
= std::lerp(result.
spatial_denoise
.
normal_power
, from.
spatial_denoise
.
normal_power
,
contribution
);
41
result.
spatial_denoise
.
luma_sigma
= std::lerp(result.
spatial_denoise
.
luma_sigma
, from.
spatial_denoise
.
luma_sigma
,
contribution
);
42
result.
spatial_denoise
.
passes
= int(std::lerp(
float
(result.
spatial_denoise
.
passes
),
float
(from.
spatial_denoise
.
passes
),
contribution
));
43
result.
spatial_denoise
.
full_res_passes
= int(std::lerp(
float
(result.
spatial_denoise
.
full_res_passes
),
float
(from.
spatial_denoise
.
full_res_passes
),
contribution
));
44
result.
spatial_denoise
.
max_step
= int(std::lerp(
float
(result.
spatial_denoise
.
max_step
),
float
(from.
spatial_denoise
.
max_step
),
contribution
));
45
46
result.
enable_temporal_accumulation
=
contribution
>= 0.5f ? from.
enable_temporal_accumulation
: result.
enable_temporal_accumulation
;
47
result.
temporal
.
history_strength
= std::lerp(result.
temporal
.
history_strength
, from.
temporal
.
history_strength
,
contribution
);
48
result.
temporal
.
depth_threshold
= std::lerp(result.
temporal
.
depth_threshold
, from.
temporal
.
depth_threshold
,
contribution
);
49
result.
temporal
.
normal_dot_threshold
= std::lerp(result.
temporal
.
normal_dot_threshold
, from.
temporal
.
normal_dot_threshold
,
contribution
);
50
result.
temporal
.
max_accum_frames
=
contribution
>= 0.5f ? from.
temporal
.
max_accum_frames
: result.
temporal
.
max_accum_frames
;
51
}
52
};
53
54
}
// namespace unravel
basic_component.h
unravel::ssil_component
Definition
ssil_component.h:11
unravel::ssil_component::merge_into
static void merge_into(ssil_pass::ssil_settings &result, const ssil_pass::ssil_settings &from, float contribution, bool is_first)
Definition
ssil_component.h:16
unravel::ssil_component::enabled
bool enabled
Definition
ssil_component.h:13
basetypes.hpp
unravel
Definition
crash.cpp:21
ssil_pass.h
unravel::component_crtp
CRTP (Curiously Recurring Template Pattern) base structure for components.
Definition
basic_component.h:91
unravel::settings
Definition
settings.h:21
unravel::ssil_pass::spatial_denoise_settings::full_res_passes
int full_res_passes
Definition
ssil_pass.h:38
unravel::ssil_pass::spatial_denoise_settings::luma_sigma
float luma_sigma
Definition
ssil_pass.h:27
unravel::ssil_pass::spatial_denoise_settings::depth_sigma
float depth_sigma
Definition
ssil_pass.h:19
unravel::ssil_pass::spatial_denoise_settings::max_step
int max_step
Definition
ssil_pass.h:42
unravel::ssil_pass::spatial_denoise_settings::normal_power
float normal_power
Definition
ssil_pass.h:20
unravel::ssil_pass::spatial_denoise_settings::passes
int passes
Definition
ssil_pass.h:29
unravel::ssil_pass::ssil_settings
SSIL settings.
Definition
ssil_pass.h:69
unravel::ssil_pass::ssil_settings::multi_bounce_intensity
float multi_bounce_intensity
Definition
ssil_pass.h:89
unravel::ssil_pass::ssil_settings::max_rays
int max_rays
Definition
ssil_pass.h:70
unravel::ssil_pass::ssil_settings::resolution
trace_resolution resolution
Definition
ssil_pass.h:86
unravel::ssil_pass::ssil_settings::max_distance
float max_distance
Definition
ssil_pass.h:83
unravel::ssil_pass::ssil_settings::depth_tolerance
float depth_tolerance
Definition
ssil_pass.h:72
unravel::ssil_pass::ssil_settings::enable_temporal_accumulation
bool enable_temporal_accumulation
Definition
ssil_pass.h:94
unravel::ssil_pass::ssil_settings::enable_multi_bounce
bool enable_multi_bounce
Definition
ssil_pass.h:88
unravel::ssil_pass::ssil_settings::temporal
temporal_settings temporal
Definition
ssil_pass.h:95
unravel::ssil_pass::ssil_settings::brightness
float brightness
Definition
ssil_pass.h:82
unravel::ssil_pass::ssil_settings::enable_spatial_denoise
bool enable_spatial_denoise
Definition
ssil_pass.h:91
unravel::ssil_pass::ssil_settings::thickness
float thickness
Definition
ssil_pass.h:77
unravel::ssil_pass::ssil_settings::spatial_denoise
spatial_denoise_settings spatial_denoise
Definition
ssil_pass.h:92
unravel::ssil_pass::ssil_settings::max_steps
int max_steps
Definition
ssil_pass.h:71
unravel::ssil_pass::temporal_settings::depth_threshold
float depth_threshold
Definition
ssil_pass.h:52
unravel::ssil_pass::temporal_settings::max_accum_frames
int max_accum_frames
Definition
ssil_pass.h:64
unravel::ssil_pass::temporal_settings::history_strength
float history_strength
Definition
ssil_pass.h:48
unravel::ssil_pass::temporal_settings::normal_dot_threshold
float normal_dot_threshold
Definition
ssil_pass.h:63
contribution
float contribution
Definition
volume_resolver.cpp:26
engine
engine
rendering
ecs
components
ssil_component.h
Generated by
1.12.0