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>
6
7namespace unravel
8{
9
10class assao_component : public component_crtp<assao_component>
11{
12public:
14 bool enabled = true;
15
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);
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;
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);
44 result.generate_normals = contribution >= 0.5f ? from.generate_normals : result.generate_normals;
45 }
46};
47
48} // namespace unravel
bool enabled
Whether ASSAO is enabled.
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.
CRTP (Curiously Recurring Template Pattern) base structure for components.
float contribution