60 lines
2.4 KiB
Markdown
60 lines
2.4 KiB
Markdown
# ASCII 3D Renderer
|
||
|
||
An advanced software-based 3D text renderer pipeline written purely in C11.
|
||
|
||
By avoiding proprietary graphics stacks, this engine demonstrates foundational rendering principles—like Z-buffer processing, Phong illumination models, matrices integration, and anti-aliasing sweeps—executing cleanly inside standard POSIX terminal boundaries.
|
||
|
||
## Architecture & Documentation
|
||
|
||
Review [DOCUMENTATION.md](DOCUMENTATION.md) for deeper knowledge of subsystems, technical boundaries, and lighting logic optimizations employed in the source code.
|
||
Review [CHANGELOG.md](CHANGELOG.md) for version release tracking constraints.
|
||
|
||
## Technical Feats
|
||
|
||
- Real-time `termios`-driven TUI with non-blocking key capture for dynamic typing
|
||
- Mathematically robust 3D normal computations leveraging 2D glyph extrusion passes
|
||
- Configurable AA (multi-sampling) and shading density metrics per-pixel
|
||
- Support for RGB Truecolor processing directly through terminal escape sequences
|
||
- Strictly isolated C11 components minimizing external dependencies
|
||
|
||
## Rapid Compilation via Makefile
|
||
|
||
```bash
|
||
# Deploys standard -O3 and -flto compiler optimizations
|
||
make release
|
||
|
||
# Run directly, observing standard parameters
|
||
./bin/ascii3d
|
||
```
|
||
|
||
## Interactive TUI Controls
|
||
|
||
Upon executing, the renderer spins into an active TTY session:
|
||
|
||
- **Type Alphanumeric Characters** – Immediately replaces the internal 3D model with your input in real-time.
|
||
- `[w]` and `[s]` – Increase / decrease rotational velocity.
|
||
- `[Space]` – Toggle rotation engine pause constraints.
|
||
- `[m]` – Cycles between topology rendering (Wireframe -> Shaded Pipeline -> Solid Geometry -> Points).
|
||
- `[c]` – Switch between rendering spaces (Mono Base -> 16/256 ANSI -> Full Truecolor mapping).
|
||
- `[p]` – Change ASCII shading dictionaries on the fly.
|
||
- `[q]` or `ESC` – Safely detaches the IO hooks and shuts the process down cleanly.
|
||
|
||
## Execution Options
|
||
|
||
Command-line invocations to bypass or configure TUI session states:
|
||
|
||
```bash
|
||
# Tumbling rotation utilizing Truecolor ANSI standards
|
||
./bin/ascii3d -a -c3 WORLD
|
||
|
||
# Quality override with heavy Anti-Aliasing pipeline
|
||
./bin/ascii3d -A -q1.5 -c2 HQ
|
||
|
||
# Show full parameter dictionary
|
||
./bin/ascii3d -h
|
||
```
|
||
|
||
## Contributing
|
||
|
||
The codebase attempts strict functional modularity. We accept modifications introducing new geometry patterns, deeper PBR emulation methods, or expanded rendering logic assuming complete dependency evasion.
|