update!
With the newly revealed overclocking this library has actually become pretty usable! Fullscreen or almost fullscreen renders can reach above 20 FPS sometimes, while smaller models on the screen reach even some 50 FPS. I can now imagine a complete 3D game made with this.
Binaries have been updated. Test yourself!
original post
Here is my small public domain software renderer (kind of OpenGL for small computers), small3dlib. For testing I’ve created a few demos and ported them to Pokitto among other platforms.
As I’ve expected from before I’ve even started the project – being able to compare to my raycasting experimens – this kind of true 3D is pretty resource demanding and the usability is limited (in this sense, my raycastlib is much more practically usable). This means you can’t simply go creating full 3D games and expect high FPS (I’ve reached something between 10 and 20 with full-3D views, the level and city demos) – you can comfortably use this to make your ordinary games extra shiny by adding small 3D GUI elements, a 3D game logo at the start screen, prerendering sprites and backgrounds etc. With smaller rendered models I’ve gotten to well above 30 FPS (modelviewer demo, when you zoom out a bit). With some extra cleverness and optimization, maybe even improving the library, I think there is still room to achieve something greater – I’ll leave this to you, my hackers
You should find all the details in the README and the source code, I tried to document everything pretty well. Don’t forget to compile with -O3!
I’d be very glad if you kept the spirit and shared your derivative creations as free and open source as well, but it is not a requirement. The library is public domain, free of any restrictions.
Here are the sources:
- library: https://gitlab.com/drummyfish/small3dlib
- pokitto: https://gitlab.com/drummyfish/small3dlib/tree/master/programs/pokitto
Here are the bins:
city.bin (71.9 KB)
city_overclock.bin (83.4 KB)
level.bin (56.9 KB)
level_overclock.bin (69.1 KB)
modelviewer.bin (77.7 KB)
modelviewer_overclock.bin (88.8 KB)