SleakEngine
0.1.0
C++23 multi-backend game engine
Toggle main menu visibility
Loading...
Searching...
No Matches
GraphicsConfig.hpp
Go to the documentation of this file.
1
#ifndef _GRAPHICSCONFIG_HPP_
2
#define _GRAPHICSCONFIG_HPP_
3
4
#include <
Core/OSDef.hpp
>
5
#include <cstdint>
6
7
namespace
Sleak
{
8
9
class
DirectionalLight
;
10
11
/// Named quality tiers a GraphicsConfig preset can be built from.
12
/// @ingroup core
13
enum class
GraphicsQuality
{
Off
,
Low
,
Medium
,
High
,
Ultra
};
14
15
/// Data-driven render settings applied to a renderer in one shot via
16
/// Application::ApplyGraphicsConfig(). Game owns and persists this.
17
/// @ingroup core
18
struct
ENGINE_API
GraphicsConfig
{
19
// Post-FX (deferred path)
20
bool
ssaoEnabled
=
false
;
21
float
ssaoRadius
= 0.5f;
22
float
ssaoBias
= 0.012f;
23
float
ssaoPower
= 2.5f;
24
bool
ssrEnabled
=
false
;
25
bool
bloomEnabled
=
true
;
26
bool
iblEnabled
=
false
;
27
float
iblIntensity
= 1.0f;
28
bool
taaEnabled
=
false
;
29
30
// Shadows
31
bool
shadowEnabled
=
true
;
32
uint32_t
shadowMapResolution
= 2048;
33
float
shadowDistance
= 160.0f;
34
float
shadowFrustumSize
= 96.0f;
35
float
shadowCasterDistance
= 96.0f;
// game uses for shadow-caster culling
36
float
shadowBias
= 0.002f;
37
float
shadowStrength
= 1.0f;
38
39
// Culling
40
bool
frustumCullingEnabled
=
true
;
41
bool
occlusionCullingEnabled
=
true
;
42
uint32_t
occlusionBufferWidth
= 256;
43
uint32_t
occlusionBufferHeight
= 144;
44
uint32_t
maxOccluders
= 192;
45
46
// Misc
47
uint32_t
msaaSamples
= 1;
48
49
// Tonemap / post
50
bool
tonemapEnabled
=
false
;
51
float
exposure
= 1.0f;
52
float
gamma
= 2.2f;
53
54
// PCSS soft shadows
55
bool
pcssEnabled
=
true
;
56
57
// Procedural sky
58
bool
skyProceduralEnabled
=
false
;
59
float
skyHorizonNear
= 1.0f;
60
float
skyHorizonFar
= 1.5f;
61
62
// Volumetric light shafts
63
bool
lightShaftEnabled
=
false
;
64
float
lightShaftStrength
= 1.0f;
65
uint32_t
lightShaftSamples
= 7;
66
float
lightShaftMaxDist
= 128.0f;
67
68
// AA / sharpen
69
bool
fxaaEnabled
=
false
;
70
float
fxaaSubpixel
= 0.5f;
71
float
sharpenStrength
= 0.0f;
72
73
// Grading
74
float
saturation
= 1.0f;
75
float
vibrance
= 1.0f;
76
bool
vignetteEnabled
=
false
;
77
float
vignetteStrength
= 1.06f;
78
bool
filmGrainEnabled
=
false
;
79
bool
autoExposureEnabled
=
false
;
80
float
autoExposureRadius
= 0.7f;
81
float
autoExposureSpeed
= 3.33f;
82
83
// Lighting
84
float
minLight
= 0.0f;
85
bool
desaturationEnabled
=
false
;
86
float
desaturationFactor
= 1.5f;
87
88
// Render scale
89
float
renderScale
= 1.0f;
90
91
/// Builds a config from a named quality preset.
92
static
GraphicsConfig
Preset
(
GraphicsQuality
q);
93
94
/// Copies the shadow-related fields onto a directional light.
95
void
ApplyShadows
(
Sleak::DirectionalLight
& light)
const
;
96
};
97
98
}
// namespace Sleak
99
100
#endif
// _GRAPHICSCONFIG_HPP_
OSDef.hpp
Sleak::DirectionalLight
Definition
DirectionalLight.hpp:51
Sleak::GraphicsQuality
GraphicsQuality
Definition
GraphicsConfig.hpp:13
Sleak::GraphicsQuality::Low
@ Low
Definition
GraphicsConfig.hpp:13
Sleak::GraphicsQuality::High
@ High
Definition
GraphicsConfig.hpp:13
Sleak::GraphicsQuality::Ultra
@ Ultra
Definition
GraphicsConfig.hpp:13
Sleak::GraphicsQuality::Medium
@ Medium
Definition
GraphicsConfig.hpp:13
Sleak::GraphicsQuality::Off
@ Off
Definition
GraphicsConfig.hpp:13
Sleak
Root namespace for everything the engine exposes.
Definition
Camera.hpp:10
Sleak::GraphicsConfig
Definition
GraphicsConfig.hpp:18
Sleak::GraphicsConfig::gamma
float gamma
Definition
GraphicsConfig.hpp:52
Sleak::GraphicsConfig::autoExposureEnabled
bool autoExposureEnabled
Definition
GraphicsConfig.hpp:79
Sleak::GraphicsConfig::taaEnabled
bool taaEnabled
Definition
GraphicsConfig.hpp:28
Sleak::GraphicsConfig::skyHorizonNear
float skyHorizonNear
Definition
GraphicsConfig.hpp:59
Sleak::GraphicsConfig::pcssEnabled
bool pcssEnabled
Definition
GraphicsConfig.hpp:55
Sleak::GraphicsConfig::sharpenStrength
float sharpenStrength
Definition
GraphicsConfig.hpp:71
Sleak::GraphicsConfig::ssaoPower
float ssaoPower
Definition
GraphicsConfig.hpp:23
Sleak::GraphicsConfig::ssaoRadius
float ssaoRadius
Definition
GraphicsConfig.hpp:21
Sleak::GraphicsConfig::fxaaEnabled
bool fxaaEnabled
Definition
GraphicsConfig.hpp:69
Sleak::GraphicsConfig::shadowDistance
float shadowDistance
Definition
GraphicsConfig.hpp:33
Sleak::GraphicsConfig::renderScale
float renderScale
Definition
GraphicsConfig.hpp:89
Sleak::GraphicsConfig::autoExposureRadius
float autoExposureRadius
Definition
GraphicsConfig.hpp:80
Sleak::GraphicsConfig::msaaSamples
uint32_t msaaSamples
Definition
GraphicsConfig.hpp:47
Sleak::GraphicsConfig::ssaoEnabled
bool ssaoEnabled
Definition
GraphicsConfig.hpp:20
Sleak::GraphicsConfig::vignetteStrength
float vignetteStrength
Definition
GraphicsConfig.hpp:77
Sleak::GraphicsConfig::shadowStrength
float shadowStrength
Definition
GraphicsConfig.hpp:37
Sleak::GraphicsConfig::ssrEnabled
bool ssrEnabled
Definition
GraphicsConfig.hpp:24
Sleak::GraphicsConfig::saturation
float saturation
Definition
GraphicsConfig.hpp:74
Sleak::GraphicsConfig::lightShaftStrength
float lightShaftStrength
Definition
GraphicsConfig.hpp:64
Sleak::GraphicsConfig::tonemapEnabled
bool tonemapEnabled
Definition
GraphicsConfig.hpp:50
Sleak::GraphicsConfig::vignetteEnabled
bool vignetteEnabled
Definition
GraphicsConfig.hpp:76
Sleak::GraphicsConfig::shadowMapResolution
uint32_t shadowMapResolution
Definition
GraphicsConfig.hpp:32
Sleak::GraphicsConfig::desaturationEnabled
bool desaturationEnabled
Definition
GraphicsConfig.hpp:85
Sleak::GraphicsConfig::autoExposureSpeed
float autoExposureSpeed
Definition
GraphicsConfig.hpp:81
Sleak::GraphicsConfig::occlusionBufferWidth
uint32_t occlusionBufferWidth
Definition
GraphicsConfig.hpp:42
Sleak::GraphicsConfig::skyProceduralEnabled
bool skyProceduralEnabled
Definition
GraphicsConfig.hpp:58
Sleak::GraphicsConfig::bloomEnabled
bool bloomEnabled
Definition
GraphicsConfig.hpp:25
Sleak::GraphicsConfig::minLight
float minLight
Definition
GraphicsConfig.hpp:84
Sleak::GraphicsConfig::iblIntensity
float iblIntensity
Definition
GraphicsConfig.hpp:27
Sleak::GraphicsConfig::lightShaftSamples
uint32_t lightShaftSamples
Definition
GraphicsConfig.hpp:65
Sleak::GraphicsConfig::shadowCasterDistance
float shadowCasterDistance
Definition
GraphicsConfig.hpp:35
Sleak::GraphicsConfig::shadowBias
float shadowBias
Definition
GraphicsConfig.hpp:36
Sleak::GraphicsConfig::lightShaftEnabled
bool lightShaftEnabled
Definition
GraphicsConfig.hpp:63
Sleak::GraphicsConfig::occlusionBufferHeight
uint32_t occlusionBufferHeight
Definition
GraphicsConfig.hpp:43
Sleak::GraphicsConfig::lightShaftMaxDist
float lightShaftMaxDist
Definition
GraphicsConfig.hpp:66
Sleak::GraphicsConfig::maxOccluders
uint32_t maxOccluders
Definition
GraphicsConfig.hpp:44
Sleak::GraphicsConfig::shadowFrustumSize
float shadowFrustumSize
Definition
GraphicsConfig.hpp:34
Sleak::GraphicsConfig::ApplyShadows
void ApplyShadows(Sleak::DirectionalLight &light) const
Copies the shadow-related fields onto a directional light.
Definition
GraphicsConfig.cpp:98
Sleak::GraphicsConfig::Preset
static GraphicsConfig Preset(GraphicsQuality q)
Builds a config from a named quality preset.
Definition
GraphicsConfig.cpp:8
Sleak::GraphicsConfig::vibrance
float vibrance
Definition
GraphicsConfig.hpp:75
Sleak::GraphicsConfig::frustumCullingEnabled
bool frustumCullingEnabled
Definition
GraphicsConfig.hpp:40
Sleak::GraphicsConfig::shadowEnabled
bool shadowEnabled
Definition
GraphicsConfig.hpp:31
Sleak::GraphicsConfig::exposure
float exposure
Definition
GraphicsConfig.hpp:51
Sleak::GraphicsConfig::skyHorizonFar
float skyHorizonFar
Definition
GraphicsConfig.hpp:60
Sleak::GraphicsConfig::ssaoBias
float ssaoBias
Definition
GraphicsConfig.hpp:22
Sleak::GraphicsConfig::iblEnabled
bool iblEnabled
Definition
GraphicsConfig.hpp:26
Sleak::GraphicsConfig::fxaaSubpixel
float fxaaSubpixel
Definition
GraphicsConfig.hpp:70
Sleak::GraphicsConfig::filmGrainEnabled
bool filmGrainEnabled
Definition
GraphicsConfig.hpp:78
Sleak::GraphicsConfig::desaturationFactor
float desaturationFactor
Definition
GraphicsConfig.hpp:86
Sleak::GraphicsConfig::occlusionCullingEnabled
bool occlusionCullingEnabled
Definition
GraphicsConfig.hpp:41
include
public
Core
GraphicsConfig.hpp
Generated on
for SleakEngine by
1.18.0