I'm doing a major rewrite of my engine so it will take a while to get it back on its feet. There was and there still is some relic of my past rasterizer that I need to clean. I want to make the ray-tracing and "shading" completely asynchronous so that I can possibly trace rays on the GPU and shade on the CPU in the future. I want it to be very dynamic, it should be able to add/remove threads and render devices on the fly without interrupting a render. It will be able to build multiple acceleration structures simultaneously as well. Maybe it will be able to build a single structure with multiple threads in the future. I have some code ready for testing, but I really need to build a new interface.
It should also be able to serialize and unserialize all scene data to be saved in a file or to be sent to a render server for network rendering. It should also be able to react to changes made in a scene to notify all render devices. I want to keep this part separate from the core as well so that an application can program its own serialization system.
It is already somewhat interactive. I can move around and change parameters on the fly and it will render progressively and I want to keep it that way as much as possible.
I am building a new interface to pursue my development and hopefully I can compile everything on linux. It's not that much code to write, but it's a lot of structuring and debugging.