Ton is planning a rather large code rewrite of Blender's render engine. Apart from cleaning up some old cruft the main issues seem to be to allow for multi-pass, multi-layer and multi-thread rendering, storing everything in a single EXR file and building a Noodle editor for compositing the rendered layers. Oh, and *real* vector based motion blur. Joy!
An excerpt of Ton's announcement is inside.
I'm going to move now to the 2nd phase of the render coding project;
which is a full refactor of the source/blender/render/ module in
- kill all bad level calls and abuse of render code in non-render
- means: build a good api to control the entire render process
- separate the render process in a more controllable pipeline, I will
use ideas from the Reyes architecture for it
- default render with "buckets" (tiles), and allow threads to do each a
full bucket (and more than 2 threads too)
- prepare for smart bucketing of object/polygon data as well (later)
- enable layer render (separate in front/back using blender layers or
- enable pass render (per layer, output RGB diffuse, RGB, Spec A, Z,
- generalize current passes for halos and transparent, so it can be
used for more (hair)
- use exr to store all tiles and passes in a single file (but also
prepare for multiple computers to render tiles together)
- enable motion blur by storing motion vectors in vertices, so blur
passes can be done in postproduction (or exported)
- make a noodle editor for reading back the exr 'layer-passes' and
- enable preview renders of any object/scene in any situation (like
within a border in 3d win)
- enable preview renders that only re-render a specific material
Hrms... the list is scary! :)
As a result, unified render might get killed (is really a system I
can't maintain well).
Also yafray export might need to be fully re-integrated. But, that was
scheduled to do anyway, based on much wanted renderman (Aqsis) export
too! For this I can really use help in a later stage. I've also asked
Alfredo to help with compositing effects.