Having worked on the book and its renderer for a few months, it’s interesting to look back and see how the project has shaped itself. The majority of the work I’ve done so far has gone into the code base; my thought all along has been to write only about techniques that really work, and to do that I must implement all the parts that make up a simple, but fully functional renderer.
One question I got early on was: are you releasing a real production volume renderer? The answer is both yes and no. What I’m working on is and will be a fully functional renderer. It has a C++/Python interface. It implements the same kind of modeling primitives and the same kind of rendering algorithms that we use for production work. But at the same time, it is primarily an educational tool. The subject of production volume rendering is very new, and I believe the most important thing is to provide a good overview of how an entire system can be constructed. I’ve chosen to focus on the structure of the renderer, and on illustrating the core functionality of each module, rather than on high performance. For example, I’ve chosen not to multithread or GPU accelerate the system, because I believe the added complexity of the code would mask what the book is really about – which is an introduction to the fundamental aspects of production volume rendering.
And with that, I leave you with the only possible (for a renderer) first image: