small3dlib, public domain 3D software rasterizer
Posted: 02 Jul 2019, 15:32
Hello, I've written a small public domain software renderer that can be used for simple 3D games:
https://gitlab.com/drummyfish/small3dlib
Why do this when we have OpenGL and a billion of fine-tuned super quality 3D renderers? It has advantages that can be useful to you.
It has zero dependencies, is written in pure C99 (compiles as C++ as well), in a single file, simple to use (KISS, suckless, no ugly API like OpenGL that you need to study for a decade), using only 32 bit integer math (no float), doesn't require any GPU or coprocessors (no HW hassle, easy debug), is AFAIK pretty optimized and tested on multiple devices. This means you can use this on PC as well as on small embedded gaming consoles or a toaster (I've tested it on my two embedded consoles, Pokitto and Gamebuino META). You don't need to deal with build systems, OOP, package managers, or similar bloat. It is still flexible, you can write practically any shader you could write in OpenGL. It is also completely public domain (CC0 + waiver of other IP like patents), there are exactly zero conditions on usage. Start selling it, use it for good or evil, I don't care about anything else other than that I am not able to sue you over it. Your behavior is your responsibility.
Simply copy-paste it and use it, modify it, hack it, do whatever you want.
Further info in the repo.
Also note I made it myself in my spare time over a few weeks and it's probably still buggy, so don't yell at me. Provided AS-IS, no guarantees.
If you like it, also check out my similar library for raycasting, raycastlib.
https://gitlab.com/drummyfish/small3dlib
Why do this when we have OpenGL and a billion of fine-tuned super quality 3D renderers? It has advantages that can be useful to you.
It has zero dependencies, is written in pure C99 (compiles as C++ as well), in a single file, simple to use (KISS, suckless, no ugly API like OpenGL that you need to study for a decade), using only 32 bit integer math (no float), doesn't require any GPU or coprocessors (no HW hassle, easy debug), is AFAIK pretty optimized and tested on multiple devices. This means you can use this on PC as well as on small embedded gaming consoles or a toaster (I've tested it on my two embedded consoles, Pokitto and Gamebuino META). You don't need to deal with build systems, OOP, package managers, or similar bloat. It is still flexible, you can write practically any shader you could write in OpenGL. It is also completely public domain (CC0 + waiver of other IP like patents), there are exactly zero conditions on usage. Start selling it, use it for good or evil, I don't care about anything else other than that I am not able to sue you over it. Your behavior is your responsibility.
Simply copy-paste it and use it, modify it, hack it, do whatever you want.
Further info in the repo.
Also note I made it myself in my spare time over a few weeks and it's probably still buggy, so don't yell at me. Provided AS-IS, no guarantees.
If you like it, also check out my similar library for raycasting, raycastlib.