Skip to content
François Beaune edited this page Jan 27, 2014 · 3 revisions

The rendering pipeline in appleseed is very modular, and components can be mixed and matched to achieve a particular pipeline.

There are six main components:

  • The frame renderer takes care of rendering a whole frame. Typical 'final mode" frame renderers delegate the actual rendering of tiles to a tile renderer. Typical "interactive mode" frame renderers delegate the rendering of pixel samples to a sample renderer, and the choice of which samples to generate next to a sample generator.
  • The tile renderer takes care of rendering a given tile of a frame. Most useful tile renderers delegate the actual rendering of pixels inside the tile to a pixel renderer.
  • The pixel renderer takes care of rendering a single pixel. It usually does so by assembling a number of pixel samples, with those being computed by a sample renderer.
  • The sample renderer takes care of computing a single sample (in image space). A sample is the basic indivisible unit, it roughly corresponds to a single path. It invokes surface shaders and environment shaders and perform alpha compositing between them.
  • As stated above, the sole purpose of the sample generator is to choose which samples to compute next in interactive/progressive rendering.
  • The lighting engine is responsible for light transport computations. It is used by the physical surface shader which is the entry point to physically-based shading in appleseed.