University coursework. Instructions were on the line of making a functioning 3D playground.
The main aim was to get any model file, i.e. a list of 3 d coordinates and other encoded parameters, and render it as a 3D object. Showing it was easy; the more difficult part was to calculate the reflection vectors while taking into account light sources. In the preview video you see the bunny and the screw and say “duh, that’s how it’s supposed to look”, no, that actually meant to really fiddle with normal vectors, intensity and other low level tasks which could easily be taken as granted given we’re surrounded by graphics programs which already do this.
We used the OpenGL library to do this so it was not super low level rendering (i.e. we didn’t need to build the library which takes care of colouring every single pixel on the screen, which doesn’t seem like a super hard thing to do, what I’m saying is that if you challenge me to do it and pay me, i think I’ll be able to do it).
This program mainly uses keyboard for interaction. There are so many key bindings you might as well try it out yourself and use every key from a to z
This coursework was super fun, mainly because it was the missing link between encoding of 3D objects and their rendering. So it was nice to see that it’s a reasonably easy thing to do.