(Feat): Initial Commit.
This commit is contained in:
170
include/config.h
Normal file
170
include/config.h
Normal file
@@ -0,0 +1,170 @@
|
||||
/**
|
||||
* @file config.h
|
||||
* @brief Configuration constants for ASCII 3D Renderer
|
||||
* @author ASCII3D Project
|
||||
* @version 2.0.0
|
||||
*/
|
||||
|
||||
#ifndef ASCII3D_CONFIG_H
|
||||
#define ASCII3D_CONFIG_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*============================================================================
|
||||
* SCREEN CONFIGURATION
|
||||
*============================================================================*/
|
||||
#define SCREEN_WIDTH 120
|
||||
#define SCREEN_HEIGHT 45
|
||||
|
||||
/*============================================================================
|
||||
* RENDERING QUALITY SETTINGS
|
||||
*============================================================================*/
|
||||
|
||||
/* Depth buffer initialization value */
|
||||
#define DEPTH_BUFFER_INIT 1e9f
|
||||
|
||||
/* Character extrusion depth (3D thickness) */
|
||||
#define EXTRUSION_DEPTH 4.0f
|
||||
|
||||
/* Base character scale */
|
||||
#define CHAR_SCALE 2.0f
|
||||
|
||||
/* Camera settings */
|
||||
#define CAMERA_DISTANCE 30.0f
|
||||
#define FIELD_OF_VIEW 50.0f
|
||||
#define NEAR_PLANE 0.1f
|
||||
#define FAR_PLANE 100.0f
|
||||
|
||||
/* Sub-pixel sampling for anti-aliasing (NxN samples per pixel) */
|
||||
#define AA_SAMPLES 2
|
||||
|
||||
/* Voxel rendering step (smaller = higher quality, slower) */
|
||||
#define VOXEL_STEP 0.15f
|
||||
|
||||
/* Surface smoothing iterations */
|
||||
#define SMOOTH_PASSES 1
|
||||
|
||||
/*============================================================================
|
||||
* ANIMATION PARAMETERS
|
||||
*============================================================================*/
|
||||
#define TARGET_FPS 60
|
||||
#define FRAME_TIME_US (1000000 / TARGET_FPS)
|
||||
|
||||
/*============================================================================
|
||||
* FONT CONFIGURATION
|
||||
*============================================================================*/
|
||||
|
||||
/* Standard 5x7 font */
|
||||
#define FONT_WIDTH 5
|
||||
#define FONT_HEIGHT 7
|
||||
#define FONT_CHAR_SPACING 2
|
||||
|
||||
/*============================================================================
|
||||
* LIGHTING CONFIGURATION
|
||||
*============================================================================*/
|
||||
|
||||
/* Ambient light intensity (0.0 - 1.0) */
|
||||
#define AMBIENT_INTENSITY 0.15f
|
||||
|
||||
/* Diffuse light intensity */
|
||||
#define DIFFUSE_INTENSITY 0.70f
|
||||
|
||||
/* Specular light intensity */
|
||||
#define SPECULAR_INTENSITY 0.40f
|
||||
|
||||
/* Specular shininess exponent */
|
||||
#define SPECULAR_POWER 32.0f
|
||||
|
||||
/* Number of light sources */
|
||||
#define MAX_LIGHTS 3
|
||||
|
||||
/*============================================================================
|
||||
* ASCII SHADING PALETTES
|
||||
*============================================================================*/
|
||||
|
||||
/* Standard gradient (10 levels) */
|
||||
#define SHADE_CHARS_STANDARD " .:-=+*#%@"
|
||||
#define SHADE_COUNT_STANDARD 10
|
||||
|
||||
/* Extended gradient (16 levels) - more detail */
|
||||
#define SHADE_CHARS_EXTENDED " .'`^\",:;Il!i><~+_-?][}{1)(|/tfjrxnuvczXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$"
|
||||
#define SHADE_COUNT_EXTENDED 70
|
||||
|
||||
/* Block characters for solid look */
|
||||
#define SHADE_CHARS_BLOCK " ░▒▓█"
|
||||
#define SHADE_COUNT_BLOCK 5
|
||||
|
||||
/* Minimal gradient */
|
||||
#define SHADE_CHARS_MINIMAL " .:+#@"
|
||||
#define SHADE_COUNT_MINIMAL 6
|
||||
|
||||
/* Default palette */
|
||||
#define SHADE_CHARS SHADE_CHARS_EXTENDED
|
||||
#define SHADE_COUNT SHADE_COUNT_EXTENDED
|
||||
|
||||
/*============================================================================
|
||||
* RENDER MODES
|
||||
*============================================================================*/
|
||||
typedef enum RenderMode {
|
||||
RENDER_MODE_SOLID = 0, /* Filled solid rendering */
|
||||
RENDER_MODE_WIREFRAME, /* Edge-only wireframe */
|
||||
RENDER_MODE_POINTS, /* Point cloud */
|
||||
RENDER_MODE_SHADED, /* Full Phong shading */
|
||||
RENDER_MODE_COUNT
|
||||
} RenderMode;
|
||||
|
||||
/*============================================================================
|
||||
* COLOR MODES
|
||||
*============================================================================*/
|
||||
typedef enum ColorMode {
|
||||
COLOR_MODE_MONO = 0, /* Monochrome ASCII */
|
||||
COLOR_MODE_ANSI_16, /* 16-color ANSI */
|
||||
COLOR_MODE_ANSI_256, /* 256-color ANSI */
|
||||
COLOR_MODE_TRUECOLOR, /* 24-bit RGB */
|
||||
COLOR_MODE_COUNT
|
||||
} ColorMode;
|
||||
|
||||
/*============================================================================
|
||||
* ANSI COLOR CODES
|
||||
*============================================================================*/
|
||||
#define ANSI_RESET "\033[0m"
|
||||
#define ANSI_BOLD "\033[1m"
|
||||
#define ANSI_DIM "\033[2m"
|
||||
|
||||
/* Foreground colors */
|
||||
#define ANSI_FG_BLACK "\033[30m"
|
||||
#define ANSI_FG_RED "\033[31m"
|
||||
#define ANSI_FG_GREEN "\033[32m"
|
||||
#define ANSI_FG_YELLOW "\033[33m"
|
||||
#define ANSI_FG_BLUE "\033[34m"
|
||||
#define ANSI_FG_MAGENTA "\033[35m"
|
||||
#define ANSI_FG_CYAN "\033[36m"
|
||||
#define ANSI_FG_WHITE "\033[37m"
|
||||
|
||||
/* Bright foreground colors */
|
||||
#define ANSI_FG_BRIGHT_BLACK "\033[90m"
|
||||
#define ANSI_FG_BRIGHT_RED "\033[91m"
|
||||
#define ANSI_FG_BRIGHT_GREEN "\033[92m"
|
||||
#define ANSI_FG_BRIGHT_YELLOW "\033[93m"
|
||||
#define ANSI_FG_BRIGHT_BLUE "\033[94m"
|
||||
#define ANSI_FG_BRIGHT_MAGENTA "\033[95m"
|
||||
#define ANSI_FG_BRIGHT_CYAN "\033[96m"
|
||||
#define ANSI_FG_BRIGHT_WHITE "\033[97m"
|
||||
|
||||
/* Background colors */
|
||||
#define ANSI_BG_BLACK "\033[40m"
|
||||
#define ANSI_BG_RED "\033[41m"
|
||||
#define ANSI_BG_GREEN "\033[42m"
|
||||
#define ANSI_BG_YELLOW "\033[43m"
|
||||
#define ANSI_BG_BLUE "\033[44m"
|
||||
#define ANSI_BG_MAGENTA "\033[45m"
|
||||
#define ANSI_BG_CYAN "\033[46m"
|
||||
#define ANSI_BG_WHITE "\033[47m"
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ASCII3D_CONFIG_H */
|
||||
Reference in New Issue
Block a user