My attempt at making my own 3d renderer. The code is not clean and it's quite laggy, but I'm overall satisfied with it, and I learned some new stuff. You can change the object being displayed by editing the source code. I'm not planning on optimizing it for now.

Controls:

Left/Right : rotate Y

Up/Down : rotate X

C/X : rotate Z

Player 2 Up/Down (E/D) : Zoom/Dezoom

Cool. I want to tinker with hand-rolled 3D rendering stuff at some point, too. PICO-8 is perfect for this. Nice work!

Out of curiosity, when you studied how to do this, how deep did you go in the math...I always struggle with a mental hangup when I go to work with algorithms like this, and feel that I must go as far as understanding linear algebra upside down forwards and backwards and learn all the proofs---but I don't actually do this, and get discouraged and then don't actually do anything. Whereas, I should probably just treat the formulas others have discovered for 3D math as a black box and just use it rather than try to learn how to re-derive everything myself. I mean there's a reason why there are programmers, and mathematicians. I'm not a mathematician.

hey there gradualgames, have you seen PICOcad?

https://johanpeitz.itch.io/picocad

@gradualgames I did it mostly based off knowledge I already had, and sort of looked up the math on the fly whenever I needed it. I can recommend you these two resources: http://www.sunshine2k.de/coding/java/TriangleRasterization/TriangleRasterization.html and https://www.youtube.com/watch?v=ih20l3pJoeU&t=1386s

Good luck!

[Please log in to post a comment]