Various techniques to render images

The renderer is the most important part of the framework, implementing the techniques to generate images. Currently we implemented some Monte Carlo method based rendering techniques for comparision and verification. The most of rendering techniques are parallelized to facilitate the power of the multi-core processor. The renderer is specified by the renderer element in the scene file.

  type: <renderer_type>

Common parameters


Some basic parameters are common between all renderers. For the renderer with parallization, we utilized the following parameters for all renderers.

Controlling quality

Parameters for controlling render quality. The most of the technique are based on randomness and the quality of the rendering based on how many time we spend for computation. Intuitively if we take much time, the quality is improved. However there is no fixed criteria for rendering time, so the user is recommended to control the appropriate computation time sutable for your requirements.

Note that these two parameters are exclusive. That is, we cannot use num_sample and render_time in the same time.

Rendering techniques

Path tracing



This renderer implements Kajiya’s path tracing. Path tracing is the most basic Monte Carlo method based rendering technique. The technique traces lights from the sensor until the ray reaches to the light source.

Light tracing



Unlike path tracing, the renderer traces the ray from the lights from the light sources until it reaches to the sensor. Also we implemented two versions, with and without direct sensor sampling to sample directly from the intersected points.

Bidirectional path tracing




The renderer implements bidirectional path tracings. Bidirectional path tracing traces the paths both from light sources and the sensor. We can obtain various combination of paths connecting different intersected points. We can obtain better estimate of the path energy by combining these light paths.