True 3D by Drummyfish

True 3d

Author :

 Drummyfish



Here is my small software renderer (kind of OpenGL for small computers). For testing I’ve created a model viewer and ported it to Gamebuino META as well. I’ve already created a similar raycasting demo on GB, you can check that out for context. Don’t forget to compile with -O3 for performance!

Sadly, GB forums only support GitHub, not GitLab, so I can’t share my repo the proper way! Here is the link:

As I’ve expected 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, but 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 very smooth FPS. 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 :slight_smile:

You should find all the details in the README and the source code, I tried to document everything pretty well.

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.
See more

2 Likes

Beautiful challenge ! Congrats :slight_smile:!

1 Like

Houah, great. Many thanks. I hope that someone will code a good 3D using game with this nice tool :slight_smile:

1 Like

This looks really impressive!

1 Like

Yay! Having tried to do something similar, I am curious to compare our approaches. It has already been a hassle without texturing, kudos to you!

@Alban I’ve already seen your demo, it looks great! For the details of my library see the repository README and the source code of small3dlib, I commented it extensively.

My library is probably slower, I tried to make it rather general so it supports not only texturing, but also shading, transparency and practically any shader that is possible with OpenGL. You can also run it on PC if you want. The price for this generality is some performance.

That’s impressive ! Congratulations for this beautiful creation ! :+1:

1 Like