As I noted two years ago the same is true today!
Even with a good understanding of how the internal parts of rendering programs work one thing is still very annoying.
Raystorm code is complicated, convoluted and circuitous in nature. It's extremely bloated in so many cases and it's extremely difficult to follow the course of events through the overly complex program. That's still very true even today!
It isn't well organized and it isn't well commented and it's written in C++ to top it all off. Ok, I'm done complaining for the moment. In the process of assembling the AROS raytracer I will make an effort to simplify where possible & add many useful comments.
Rather than follow the complicated RayStorm example with object loaders and handlers for everything imaginable I'd prefer to simplify the Import & Export process. So the native file format of the raytracer will be a modified and simplified OBJ text file. For lack of a better name it is a 3DMesh Text File.
It will contain all the vertices, 3dfaces (triangles) and information about cameras, lights, materials and textures. When importing a scn or 3ds or obj file it will be converted to 3dmesh text format that the raytracer can easily read. And if you are skillful you could write your own 3dmesh file describing an entire scene that can be loaded and rendered.