78 lines
1.8 KiB
C
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
|