Unravel Engine C++ Reference
Loading...
Searching...
No Matches
assao_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/assao_pass.h
>
6
7
namespace
unravel
8
{
9
10
class
assao_component
:
public
component_crtp
<assao_component>
11
{
12
public
:
14
bool
enabled
=
true
;
15
17
assao_pass::settings
settings
{};
18
20
static
void
merge_into
(
assao_pass::settings
& result,
21
const
assao_pass::settings
& from,
22
float
contribution
,
23
bool
is_first)
24
{
25
if
(is_first)
26
{
27
result = from;
28
return
;
29
}
30
result.
radius
= std::lerp(result.
radius
, from.
radius
,
contribution
);
31
result.
shadow_multiplier
= std::lerp(result.
shadow_multiplier
, from.
shadow_multiplier
,
contribution
);
32
result.
shadow_power
= std::lerp(result.
shadow_power
, from.
shadow_power
,
contribution
);
33
result.
shadow_clamp
= std::lerp(result.
shadow_clamp
, from.
shadow_clamp
,
contribution
);
34
result.
horizon_angle_threshold
= std::lerp(result.
horizon_angle_threshold
, from.
horizon_angle_threshold
,
contribution
);
35
result.
fade_out_from
= std::lerp(result.
fade_out_from
, from.
fade_out_from
,
contribution
);
36
result.
fade_out_to
= std::lerp(result.
fade_out_to
, from.
fade_out_to
,
contribution
);
37
result.
quality_level
=
contribution
>= 0.5f ? from.
quality_level
: result.
quality_level
;
38
result.
adaptive_quality_limit
= std::lerp(result.
adaptive_quality_limit
, from.
adaptive_quality_limit
,
contribution
);
39
result.
blur_pass_count
=
contribution
>= 0.5f ? from.
blur_pass_count
: result.
blur_pass_count
;
40
result.
sharpness
= std::lerp(result.
sharpness
, from.
sharpness
,
contribution
);
41
result.
temporal_supersampling_angle_offset
= std::lerp(result.
temporal_supersampling_angle_offset
, from.
temporal_supersampling_angle_offset
,
contribution
);
42
result.
temporal_supersampling_radius_offset
= std::lerp(result.
temporal_supersampling_radius_offset
, from.
temporal_supersampling_radius_offset
,
contribution
);
43
result.
detail_shadow_strength
= std::lerp(result.
detail_shadow_strength
, from.
detail_shadow_strength
,
contribution
);
44
result.
generate_normals
=
contribution
>= 0.5f ? from.
generate_normals
: result.
generate_normals
;
45
}
46
};
47
48
}
// namespace unravel
assao_pass.h
basic_component.h
unravel::assao_component
Definition
assao_component.h:11
unravel::assao_component::enabled
bool enabled
Whether ASSAO is enabled.
Definition
assao_component.h:14
unravel::assao_component::merge_into
static void merge_into(assao_pass::settings &result, const assao_pass::settings &from, float contribution, bool is_first)
Merges this component's settings into result. For first contribution, copies; otherwise lerps.
Definition
assao_component.h:20
basetypes.hpp
unravel
Definition
crash.cpp:21
unravel::assao_pass::settings
Definition
assao_pass.h:15
unravel::assao_pass::settings::temporal_supersampling_radius_offset
float temporal_supersampling_radius_offset
Definition
assao_pass.h:108
unravel::assao_pass::settings::blur_pass_count
int32_t blur_pass_count
Definition
assao_pass.h:84
unravel::assao_pass::settings::generate_normals
bool generate_normals
Definition
assao_pass.h:121
unravel::assao_pass::settings::temporal_supersampling_angle_offset
float temporal_supersampling_angle_offset
Definition
assao_pass.h:101
unravel::assao_pass::settings::shadow_clamp
float shadow_clamp
Definition
assao_pass.h:40
unravel::assao_pass::settings::shadow_multiplier
float shadow_multiplier
Definition
assao_pass.h:28
unravel::assao_pass::settings::horizon_angle_threshold
float horizon_angle_threshold
Definition
assao_pass.h:47
unravel::assao_pass::settings::quality_level
int32_t quality_level
Definition
assao_pass.h:71
unravel::assao_pass::settings::adaptive_quality_limit
float adaptive_quality_limit
Definition
assao_pass.h:77
unravel::assao_pass::settings::detail_shadow_strength
float detail_shadow_strength
Definition
assao_pass.h:115
unravel::assao_pass::settings::fade_out_to
float fade_out_to
Definition
assao_pass.h:59
unravel::assao_pass::settings::radius
float radius
Definition
assao_pass.h:22
unravel::assao_pass::settings::sharpness
float sharpness
Definition
assao_pass.h:93
unravel::assao_pass::settings::shadow_power
float shadow_power
Definition
assao_pass.h:34
unravel::assao_pass::settings::fade_out_from
float fade_out_from
Definition
assao_pass.h:53
unravel::component_crtp
CRTP (Curiously Recurring Template Pattern) base structure for components.
Definition
basic_component.h:91
unravel::settings
Definition
settings.h:21
contribution
float contribution
Definition
volume_resolver.cpp:26
engine
engine
rendering
ecs
components
assao_component.h
Generated by
1.12.0