$darkmode
Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
app_settings.h
Go to the documentation of this file.
1 
18 #ifndef APP_SETTINGS_H
19 #define APP_SETTINGS_H
20 
21 #include <cglm/types.h>
22 
41 enum { DEFAULT_SAMPLES = 1 };
42 
46 static const unsigned int DEFAULT_STENCIL_MASK = 0xFF;
47 
65 #define USE_TRANSPARENT_BILLBOARDS
66 
74 enum {
85  CUBEMAP_SIZE = 1024,
88 };
89 
98 /* Starting State */
99 static const float DEFAULT_CAMERA_DISTANCE =
100  20.0F;
101 static const float DEFAULT_CAMERA_YAW =
102  -90.0F;
103 static const float DEFAULT_CAMERA_PITCH =
104  0.0F;
105 static const float DEFAULT_ENV_LOD =
106  0.0F;
108 /* Projection Matrix */
109 static const float NEAR_PLANE =
110  0.1F;
111 static const float FAR_PLANE = 1000.0F;
113 static const float FOV_ANGLE =
114  60.0F;
116 /* Gameplay Constraints */
117 static const float MIN_CAMERA_DISTANCE =
118  1.5F;
119 static const float MAX_CAMERA_DISTANCE = 50.0F;
120 static const float ZOOM_STEP = 0.2F;
129 /* LOD Controls */
130 static const float MAX_ENV_LOD =
131  10.0F;
132 static const float MIN_ENV_LOD = 0.0F;
133 static const float LOD_STEP =
134  0.5F;
136 /* Directional Light (Sun) - Currently static */
137 static const float LIGHT_DIR_X = 0.5F;
138 static const float LIGHT_DIR_Y = 1.0F;
139 static const float LIGHT_DIR_Z = 0.3F;
140 
141 /* IBL Map Resolutions (See progressive_ibl.md) */
143  1024;
144 static const int IRIDIANCE_MAP_SIZE =
145  64;
146 static const int BRDF_LUT_MAP_SIZE =
147  512;
148 static const int DEFAULT_SPECULAR_AA_ENABLED =
149  1;
151 /* Environment Transition Mode */
152 typedef enum {
156 
161 typedef enum {
168 
169 static const float DEFAULT_ENV_TRANSITION_DURATION = 0.25F;
178 static const float DEFAULT_CLAMP_MULTIPLIER =
179  3.0F;
180 static const float DEFAULT_METALLIC = 1.0F;
181 static const float DEFAULT_ROUGHNESS = 0.0F;
182 static const float DEFAULT_AO =
183  1.0F;
191 static const float DEFAULT_EXPOSURE_STEP =
192  0.1F;
193 static const float DEFAULT_MIN_EXPOSURE =
194  0.1F;
195 static const float DEFAULT_AUTO_THRESHOLD =
196  5.0F;
204 static const int LUM_HISTOGRAM_MAP_SIZE =
205  64;
206 static const int LUM_HISTOGRAM_SIZE =
207  64 * 64;
215 static const float DEFAULT_FONT_SIZE = 32.0F;
216 static const float DEFAULT_FPS_SMOOTHING = 0.95F;
217 static const float DEFAULT_FPS_WINDOW = 5.0F;
218 static const int DEFAULT_FPS_SAMPLER_SIZE = 200;
219 static const float DEFAULT_FPS_TARGET = 60.0F;
220 
221 static const float DEFAULT_FONT_SHADOW_OFFSET_X = 2.0F;
222 static const float DEFAULT_FONT_SHADOW_OFFSET_Y = 2.0F;
223 static const float DEFAULT_FONT_OFFSET_X = 0.0F;
224 static const float DEFAULT_FONT_OFFSET_Y = 0.0F;
225 static const vec3 DEFAULT_FONT_COLOR = {1.0F, 1.0F, 1.0F};
226 static const vec3 DEFAULT_FONT_SHADOW_COLOR = {0.0F, 0.0F, 0.0F};
227 static const int MAX_FPS_TEXT_LENGTH = 64;
228 
229 /* Instancing Grid Layout (Scene generation) */
230 static const int DEFAULT_COLS = 10;
231 static const float DEFAULT_SPACING = 2.5F;
232 static const float HALF_OFFSET_MULTIPLIER = 0.5F;
235 #endif /* APP_SETTINGS_H */
static const float DEFAULT_CAMERA_DISTANCE
Definition: app_settings.h:99
static const float DEFAULT_ENV_LOD
Definition: app_settings.h:105
static const float FAR_PLANE
Definition: app_settings.h:111
static const float MIN_CAMERA_DISTANCE
Definition: app_settings.h:117
static const float MAX_CAMERA_DISTANCE
Definition: app_settings.h:119
static const float DEFAULT_CAMERA_YAW
Definition: app_settings.h:101
static const float ZOOM_STEP
Definition: app_settings.h:120
static const float FOV_ANGLE
Definition: app_settings.h:113
static const float NEAR_PLANE
Definition: app_settings.h:109
static const float DEFAULT_CAMERA_PITCH
Definition: app_settings.h:103
static const float LIGHT_DIR_Y
Definition: app_settings.h:138
TransitionState
States for the environment map transition.
Definition: app_settings.h:161
static const float DEFAULT_ENV_TRANSITION_DURATION
Definition: app_settings.h:169
static const int IRIDIANCE_MAP_SIZE
Definition: app_settings.h:144
static const float LIGHT_DIR_Z
Definition: app_settings.h:139
static const int BRDF_LUT_MAP_SIZE
Definition: app_settings.h:146
static const float MAX_ENV_LOD
Definition: app_settings.h:130
EnvTransitionMode
Definition: app_settings.h:152
static const float LOD_STEP
Definition: app_settings.h:133
static const int PREFILTERED_SPECULAR_MAP_SIZE
Definition: app_settings.h:142
static const float MIN_ENV_LOD
Definition: app_settings.h:132
static const int DEFAULT_SPECULAR_AA_ENABLED
Definition: app_settings.h:148
static const float LIGHT_DIR_X
Definition: app_settings.h:137
static const int DEFAULT_ENV_TRANSITION_MODE
Definition: app_settings.h:170
@ TRANSITION_IDLE
Definition: app_settings.h:162
@ TRANSITION_LOADING
Definition: app_settings.h:163
@ TRANSITION_WAIT_IBL
Definition: app_settings.h:164
@ TRANSITION_FADE_IN
Definition: app_settings.h:166
@ TRANSITION_FADE_OUT
Definition: app_settings.h:165
@ ENV_TRANSITION_CROSSFADE
Definition: app_settings.h:153
@ ENV_TRANSITION_BLACK_SCREEN
Definition: app_settings.h:154
@ CUBEMAP_SIZE
Definition: app_settings.h:85
@ INITIAL_SUBDIVISIONS
Definition: app_settings.h:87
@ MIN_SUBDIV
Definition: app_settings.h:77
@ MAX_SUBDIV
Definition: app_settings.h:80
static const int LUM_HISTOGRAM_MAP_SIZE
Definition: app_settings.h:204
static const int LUM_HISTOGRAM_SIZE
Definition: app_settings.h:206
static const float DEFAULT_ROUGHNESS
Definition: app_settings.h:181
static const float DEFAULT_AO
Definition: app_settings.h:182
static const float DEFAULT_METALLIC
Definition: app_settings.h:180
static const float DEFAULT_CLAMP_MULTIPLIER
Definition: app_settings.h:178
static const float DEFAULT_EXPOSURE_STEP
Definition: app_settings.h:191
static const float DEFAULT_MIN_EXPOSURE
Definition: app_settings.h:193
static const float DEFAULT_AUTO_THRESHOLD
Definition: app_settings.h:195
static const unsigned int DEFAULT_STENCIL_MASK
Value for all bits enabled in a stencil mask.
Definition: app_settings.h:46
@ DEFAULT_SAMPLES
Definition: app_settings.h:41
static const float DEFAULT_FONT_OFFSET_X
Definition: app_settings.h:223
static const float HALF_OFFSET_MULTIPLIER
Definition: app_settings.h:232
static const int DEFAULT_FPS_SAMPLER_SIZE
Definition: app_settings.h:218
static const float DEFAULT_FONT_SIZE
Definition: app_settings.h:215
static const float DEFAULT_FPS_TARGET
Definition: app_settings.h:219
static const int MAX_FPS_TEXT_LENGTH
Definition: app_settings.h:227
static const int DEFAULT_COLS
Definition: app_settings.h:230
static const float DEFAULT_FONT_SHADOW_OFFSET_Y
Definition: app_settings.h:222
static const float DEFAULT_FONT_SHADOW_OFFSET_X
Definition: app_settings.h:221
static const vec3 DEFAULT_FONT_SHADOW_COLOR
Definition: app_settings.h:226
static const float DEFAULT_FPS_WINDOW
Definition: app_settings.h:217
static const float DEFAULT_FONT_OFFSET_Y
Definition: app_settings.h:224
static const float DEFAULT_SPACING
Definition: app_settings.h:231
static const vec3 DEFAULT_FONT_COLOR
Definition: app_settings.h:225
static const float DEFAULT_FPS_SMOOTHING
Definition: app_settings.h:216