A rewrite of the dimensional_graphics project in C/C++ for embedded systems (ESP32 or Arduino)
- Transformations (rotation, etc)
- Textures
- Tools for importing files (obj2h, tex2h)
- Support for both desktop and embeded systems (Arduino, ESP32)
- Supports many output methods with a simple buffer (Adafruit GFX, MiniFB)
https://github.com/simplyrohan/dimensional_embedded/blob/main/assets/embedded_cobblestone.mp4
https://github.com/simplyrohan/dimensional_embedded/blob/main/assets/embedded_cube.mp4
To test this on a desktop enviroment, use MiniFB
. Just run
make setup
to install it.
Then use
make build
To build with MiniFB
To run this on an ESP32 (or any Arduino device really, but I haven't tested) make an Arduino project. Then copy the contents of the renderer
directory into the project (Arduino is unable to find C++ files if they are in a sub directory). You can do this with
make setup-arduino
Look at main.ino
for how to set it up with a TFT.
A tool to convert Wavefront OBJ files into headers compatible with this project.
python obj2h.py path/to/model.obj
A tool to convert images into textures for models
python tex2h.py path/to/image.png
(This is mainly a task list for myself)
- Rename transformations (translation->position, consolidating things into a struct, vertex->vector3, etc)
- Scene system
- Fix broken rotation system (maybe use quanternions, euler sucks rn (idek if it is euler, everything is so messed up))