$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 };
97 /* Starting State */
98 static const float DEFAULT_CAMERA_DISTANCE =
99  20.0F;
100 static const float DEFAULT_CAMERA_YAW =
101  -90.0F;
102 static const float DEFAULT_CAMERA_PITCH =
103  0.0F;
104 static const float DEFAULT_ENV_LOD =
105  0.0F;
107 /* Projection Matrix */
108 static const float NEAR_PLANE =
109  0.1F;
110 static const float FAR_PLANE = 1000.0F;
112 static const float FOV_ANGLE =
113  60.0F;
115 /* Gameplay Constraints */
116 static const float MIN_CAMERA_DISTANCE =
117  1.5F;
118 static const float MAX_CAMERA_DISTANCE = 50.0F;
119 static const float ZOOM_STEP = 0.2F;
128 /* LOD Controls */
129 static const float MAX_ENV_LOD =
130  10.0F;
131 static const float MIN_ENV_LOD = 0.0F;
132 static const float LOD_STEP =
133  0.5F;
135 /* Directional Light (Sun) - Currently static */
136 static const float LIGHT_DIR_X = 0.5F;
137 static const float LIGHT_DIR_Y = 1.0F;
138 static const float LIGHT_DIR_Z = 0.3F;
139 
140 /* IBL Map Resolutions (See progressive_ibl.md) */
142  1024;
143 static const int IRIDIANCE_MAP_SIZE =
144  64;
145 static const int BRDF_LUT_MAP_SIZE =
146  512;
147 static const int DEFAULT_SPECULAR_AA_ENABLED =
148  1;
149 /* Environment Transition Mode */
150 typedef enum {
154 
159 typedef enum {
166 
167 static const float DEFAULT_ENV_TRANSITION_DURATION = 0.25F;
176 static const float DEFAULT_CLAMP_MULTIPLIER =
177  3.0F;
178 static const float DEFAULT_METALLIC = 1.0F;
179 static const float DEFAULT_ROUGHNESS = 0.0F;
180 static const float DEFAULT_AO =
181  1.0F;
189 static const float DEFAULT_EXPOSURE_STEP =
190  0.1F;
191 static const float DEFAULT_MIN_EXPOSURE =
192  0.1F;
193 static const float DEFAULT_AUTO_THRESHOLD =
194  5.0F;
202 static const int LUM_HISTOGRAM_MAP_SIZE =
203  64;
204 static const int LUM_HISTOGRAM_SIZE =
205  64 * 64;
213 static const float DEFAULT_FONT_SIZE = 32.0F;
214 static const float DEFAULT_FPS_SMOOTHING = 0.95F;
215 static const float DEFAULT_FPS_WINDOW = 5.0F;
216 static const int DEFAULT_FPS_SAMPLER_SIZE = 200;
217 static const float DEFAULT_FPS_TARGET = 60.0F;
218 
219 static const float DEFAULT_FONT_SHADOW_OFFSET_X = 2.0F;
220 static const float DEFAULT_FONT_SHADOW_OFFSET_Y = 2.0F;
221 static const float DEFAULT_FONT_OFFSET_X = 0.0F;
222 static const float DEFAULT_FONT_OFFSET_Y = 0.0F;
223 static const vec3 DEFAULT_FONT_COLOR = {1.0F, 1.0F, 1.0F};
224 static const vec3 DEFAULT_FONT_SHADOW_COLOR = {0.0F, 0.0F, 0.0F};
225 static const int MAX_FPS_TEXT_LENGTH = 64;
226 
227 /* Instancing Grid Layout (Scene generation) */
228 static const int DEFAULT_COLS = 10;
229 static const float DEFAULT_SPACING = 2.5F;
230 static const float HALF_OFFSET_MULTIPLIER = 0.5F;
233 #endif /* APP_SETTINGS_H */
static const float DEFAULT_CAMERA_DISTANCE
Definition: app_settings.h:98
static const float DEFAULT_ENV_LOD
Definition: app_settings.h:104
static const float FAR_PLANE
Definition: app_settings.h:110
static const float MIN_CAMERA_DISTANCE
Definition: app_settings.h:116
static const float MAX_CAMERA_DISTANCE
Definition: app_settings.h:118
static const float DEFAULT_CAMERA_YAW
Definition: app_settings.h:100
static const float ZOOM_STEP
Definition: app_settings.h:119
static const float FOV_ANGLE
Definition: app_settings.h:112
static const float NEAR_PLANE
Definition: app_settings.h:108
static const float DEFAULT_CAMERA_PITCH
Definition: app_settings.h:102
static const float LIGHT_DIR_Y
Definition: app_settings.h:137
TransitionState
States for the environment map transition.
Definition: app_settings.h:159
static const float DEFAULT_ENV_TRANSITION_DURATION
Definition: app_settings.h:167
static const int IRIDIANCE_MAP_SIZE
Definition: app_settings.h:143
static const float LIGHT_DIR_Z
Definition: app_settings.h:138
static const int BRDF_LUT_MAP_SIZE
Definition: app_settings.h:145
static const float MAX_ENV_LOD
Definition: app_settings.h:129
EnvTransitionMode
Definition: app_settings.h:150
static const float LOD_STEP
Definition: app_settings.h:132
static const int PREFILTERED_SPECULAR_MAP_SIZE
Definition: app_settings.h:141
static const float MIN_ENV_LOD
Definition: app_settings.h:131
static const int DEFAULT_SPECULAR_AA_ENABLED
Definition: app_settings.h:147
static const float LIGHT_DIR_X
Definition: app_settings.h:136
static const int DEFAULT_ENV_TRANSITION_MODE
Definition: app_settings.h:168
@ TRANSITION_IDLE
Definition: app_settings.h:160
@ TRANSITION_LOADING
Definition: app_settings.h:161
@ TRANSITION_WAIT_IBL
Definition: app_settings.h:162
@ TRANSITION_FADE_IN
Definition: app_settings.h:164
@ TRANSITION_FADE_OUT
Definition: app_settings.h:163
@ ENV_TRANSITION_CROSSFADE
Definition: app_settings.h:151
@ ENV_TRANSITION_BLACK_SCREEN
Definition: app_settings.h:152
@ 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:202
static const int LUM_HISTOGRAM_SIZE
Definition: app_settings.h:204
static const float DEFAULT_ROUGHNESS
Definition: app_settings.h:179
static const float DEFAULT_AO
Definition: app_settings.h:180
static const float DEFAULT_METALLIC
Definition: app_settings.h:178
static const float DEFAULT_CLAMP_MULTIPLIER
Definition: app_settings.h:176
static const float DEFAULT_EXPOSURE_STEP
Definition: app_settings.h:189
static const float DEFAULT_MIN_EXPOSURE
Definition: app_settings.h:191
static const float DEFAULT_AUTO_THRESHOLD
Definition: app_settings.h:193
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:221
static const float HALF_OFFSET_MULTIPLIER
Definition: app_settings.h:230
static const int DEFAULT_FPS_SAMPLER_SIZE
Definition: app_settings.h:216
static const float DEFAULT_FONT_SIZE
Definition: app_settings.h:213
static const float DEFAULT_FPS_TARGET
Definition: app_settings.h:217
static const int MAX_FPS_TEXT_LENGTH
Definition: app_settings.h:225
static const int DEFAULT_COLS
Definition: app_settings.h:228
static const float DEFAULT_FONT_SHADOW_OFFSET_Y
Definition: app_settings.h:220
static const float DEFAULT_FONT_SHADOW_OFFSET_X
Definition: app_settings.h:219
static const vec3 DEFAULT_FONT_SHADOW_COLOR
Definition: app_settings.h:224
static const float DEFAULT_FPS_WINDOW
Definition: app_settings.h:215
static const float DEFAULT_FONT_OFFSET_Y
Definition: app_settings.h:222
static const float DEFAULT_SPACING
Definition: app_settings.h:229
static const vec3 DEFAULT_FONT_COLOR
Definition: app_settings.h:223
static const float DEFAULT_FPS_SMOOTHING
Definition: app_settings.h:214