https://github.com/jproj3cts/donut-a-cpu-based-rendering-engine
A simple program that renders vector objects and supports various transformations upon them - such as rotations and translations.
https://github.com/jproj3cts/donut-a-cpu-based-rendering-engine
c consol console-application klein klein-bottle linear-algebra rendering torus vector vector-graphics windows
Last synced: 24 days ago
JSON representation
A simple program that renders vector objects and supports various transformations upon them - such as rotations and translations.
- Host: GitHub
- URL: https://github.com/jproj3cts/donut-a-cpu-based-rendering-engine
- Owner: jproj3cts
- License: gpl-3.0
- Created: 2022-10-15T12:14:03.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-18T21:13:15.000Z (over 3 years ago)
- Last Synced: 2023-05-24T17:25:15.571Z (about 3 years ago)
- Topics: c, consol, console-application, klein, klein-bottle, linear-algebra, rendering, torus, vector, vector-graphics, windows
- Language: C
- Homepage: https://github.com/jproj3cts/DONUT-A-CPU-based-rendering-engine
- Size: 5.71 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DONUT-A-CPU-based-rendering-engine
D.O.N.U.T. (Diligently Optimised reNdering Useful Techniques), or - more gramatically - UDONT, is an engine is capable of rendering any 3D shape you can parameterize from any distance or viewing angle. The video below demos this for a klein bottle.
https://user-images.githubusercontent.com/114860885/196288825-5b2e7a50-eee7-4fd6-adde-f124875d1ea0.mp4
I adapted this from the code written by Andy Sloane, the original can be found here: https://www.a1k0n.net/2011/07/20/donut-math.html.
To compile for yourself, simply run:
```
gcc donut.c -o donut -lgdi32
```
after cd-ing into the same directory as the donut.c file.
>>> Note: this application currently only works on windows.
## Planned Improvements
1. Add support for changing camera angle.