Files
ASCIIRenderer/README.md

60 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.