I have had this kind of just sitting around for a while now, so I might as well share it as-is…
(Although this is real 3D, it’s still extremely unoptimized and will need a lot of work before it can be applied in a proper, playable “game”)
You can use the Left & Right Arrows to switch the model you’re viewing (there are 13 models so far). Each model is stored as a triangulated .OBJ file that this game reads and then “renders”.
I can try to answer any questions you might have, but keep in mind that this is still very much just a prototype / demo of what’s possible.
Yep.
The file cannot have anything other than triangles, though (no quads, n-gons, etc.). Also some .obj’s store large or tiny numbers using scientific notation (e.g. 2.13e-45) which this also cannot read yet.
But in general, yes.
Probably should be fine? Just make sure it’s triangulated.
Also, try and keep the amount of triangles below 200 (which is not very many, but if you have more than that, the performance will be terrible)
It took quite a bit of trial and error, especially with finding a good way to display the triangles.
It’s still far from perfect, not only performance-wise but also feature-wise—I still need to add actual camera controls and triangle clipping and a better z-sorting mechanism…
Reading the .obj was not super complicated (just look up how a .obj file is structured).
The transforming and rotating of the model is just a bunch of linear algebra (look up linear algebra of 3d transformation matrices).
The toughest part was figuring out how to actually render the triangles, which I finally was able to do during some testing that FlyingFajita was having me do for them: