Files
ASCIIRenderer/include/config.h

78 lines
1.8 KiB
C

#ifndef ASCII3D_CONFIG_H
#define ASCII3D_CONFIG_H
#ifdef __cplusplus
extern "C" {
#endif
// Base viewport dimensions. Increase for monolithic monitors.
#define SCREEN_WIDTH 120
#define SCREEN_HEIGHT 45
#define DEPTH_BUFFER_INIT 1e9f
#define EXTRUSION_DEPTH 4.0f
#define CHAR_SCALE 2.0f
#define CAMERA_DISTANCE 30.0f
#define FIELD_OF_VIEW 50.0f
#define NEAR_PLANE 0.1f
#define FAR_PLANE 100.0f
// NxN jitter patterns for anti-aliasing passes
#define AA_SAMPLES 2
// Depth steps for voxel ray casting computation
#define VOXEL_STEP 0.15f
#define SMOOTH_PASSES 1
#define TARGET_FPS 60
#define FRAME_TIME_US (1000000 / TARGET_FPS)
#define FONT_WIDTH 5
#define FONT_HEIGHT 7
#define FONT_CHAR_SPACING 2
// Physics-Based lighting configurations
#define AMBIENT_INTENSITY 0.15f
#define DIFFUSE_INTENSITY 0.70f
#define SPECULAR_INTENSITY 0.40f
#define SPECULAR_POWER 32.0f
#define MAX_LIGHTS 3
// Shader maps determining intensity mappings
#define SHADE_CHARS_STANDARD " .:-=+*#%@"
#define SHADE_COUNT_STANDARD 10
#define SHADE_CHARS_EXTENDED \
" .'`^\",:;Il!i><~+_-?][}{1)(|/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$"
#define SHADE_COUNT_EXTENDED 70
#define SHADE_CHARS_BLOCK " ░▒▓█"
#define SHADE_COUNT_BLOCK 5
#define SHADE_CHARS_MINIMAL " .:+#@"
#define SHADE_COUNT_MINIMAL 6
#define SHADE_CHARS SHADE_CHARS_EXTENDED
#define SHADE_COUNT SHADE_COUNT_EXTENDED
typedef enum RenderMode {
RENDER_MODE_SOLID = 0,
RENDER_MODE_WIREFRAME,
RENDER_MODE_POINTS,
RENDER_MODE_SHADED,
RENDER_MODE_COUNT
} RenderMode;
typedef enum ColorMode {
COLOR_MODE_MONO = 0,
COLOR_MODE_ANSI_16,
COLOR_MODE_ANSI_256,
COLOR_MODE_TRUECOLOR,
COLOR_MODE_COUNT
} ColorMode;
#define ANSI_RESET "\033[0m"
#ifdef __cplusplus
}
#endif
#endif