#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