Aftershock | WIP Software Renderer in pure rust

https://crates.io/crates/aftershock

Hello! I have been working on a software renderer in my spare time, and I wanted to share my progress!

The main idea is that you can create Rasterizers, which have a framebuffer that can be drawn to using methods. You can use multiple Rasterizers for many purposes; layers, off-screen rendering, dynamic image generation, etc. You can then take the RGBA-ordered bytes and update them into a screen buffer or texture that represents the screen. (SDL2 and minifb examples showing this are in the repository)

The included drawables.rs has some examples of some higher-level data structures; Sprite and SpriteFont. These involve Matrix-Transformed image manipulation which uses the otherwise sparsely used Mat3 and Vec2 structs I made. I was planning to make a framework out of the library but I think I should focus on graphics at the moment.

Feel free to experiment and offer ideas on what to add! You can include the crate using 'aftershock = "0.0.9" ', but I recommend using the repository to see some examples first and mess around with those.

I'm hoping down the line I can provide an actual game that can be played as a proper example of what it can do, but what I have right now is mostly placeholders I created.

Screenshot of the SDL2 Engine Template:

Video of the SDL2 Engine Template: https://files.catbox.moe/36e3oa.mp4

Thank you very much for your time. Let me know what you think, and I hope you all have a wonderful day!

1 Like