A 3D software renderer that renders to the terminal
textrend [filename.obj] [-args]
This renderer only accepts .obj files, and you must always pass the file before the arguments. Currently targeting Windows and Linux, although theoretically it should also work on MacOS.
| Hotkey | Action |
|---|---|
| wasd | Move |
| okl; or 8426 (numpad) |
Look |
| [ and ] | +/- movement speed |
| { and } | +/- rotation speed |
| - and + | Zoom in/out |
| z | Toggle vertices |
| x | Toggle edges |
| c | Toggle faces |
| b | Toggle backface culling |
| Esc | Exit |
| Argument | Description |
|---|---|
| -v --verbosity | Set verbosity level |
| -y --flip-y | Flip camera Y rotation |
| --no-detect-font --no-detect-font-size | (Windows only) Disable auto font size detection; use this if your terminal reports incorrect information |
| --font --font-ratio | (Windows only) Set fallback font width-to-height ratio |
| -h --help | Print help message |
Note
--no-detect-font is enabled automatically if your terminal reports a font size that has 0 as one of its dimensions. The majority of modern terminals on Windows report {0, 16} as the size, so the renderer uses the fallback value.
- Sometimes there are holes in between adjacent triangles
- Adjacent edges of triangles are drawn twice
- Depth testing suffers from precision errors