Most of 2015 has been spent working on housekeeping that doesn’t contribute to prettier pictures. But the fixes should make future improvements a lot more clean and stable.
I’ve been fixing memory leaks, unifying and sorting out objects, cleaning up mesh generation code, and making lights into first class primitives, for example.
Materials can now be named and assigned by name.
OBJ file reading has been overhauled from scratch making it much more general. It wouldn’t work with multiple meshes before.
Radiosity and X file input have also been cleaned up and refactored.
All scene objects have been moved out of the renderer (the ray tracing class) and into the scene class.
I also added a functional test framework so that going forward I’ll be able to make sure new updates haven’t stopped old scenes from working.
I even got the old motion blur hack working as you can see in the featured image.
That’s not all the changes, and there are more needed. But it felt like time to post an update.