Realistic rendering of virtual worlds

This wiki page reports on the process and product of the BSc graduation project titled “Realistic Rendering of Virtual Worlds”. It was assigned to the authors by Ir. R.M. Smelik. The assignment was to create a reusable system that is able to render virtual worlds in a realistic manner, and to integrate this system into an existing software package called SketchaWorld.

We have implemented a renderer that uses a deferred rendering approach. Contrary to forward rendering, which is the ‘classic’ approach, deferred rendering postpones many of the calculations that are required to determine the final output color for a pixel. Intermediate results are stored in texture buffers and combined in later phases. The deferred renderer is designed to make full use of the advantages of scene graphs; with the renderer itself is structured as a scene graph.

Many advanced techniques are implemented in the renderer, all aimed at enhancing visual realism. These techniques are spread out over the different phases in the deferred rendering pipeline. During the world render phase, primitive data about the world geometry is rendered. During the light render phase, each light is processed once to determine its influence on only the visible geometry. Afterwards, the results of both phases are combined. The atmosphere is rendered on top of that based on the time of day.

Transparency has always been an issue with deferred rendering. Transparency implies that the color value of one pixel depends on multiple objects, while most deferred renderers only store one set of data per pixel. This problem therefore needs to be solved by rendering transparent objects with forward rendering, adding it to the result of the deferred rendering steps. Afterwards, post processing effects are applied. The renderer supports an arbitrary number of post processing effects, which can be swapped in real time.

Most of the requirements that were formulated in the requirement analysis document have been implemented successfully. Some requirements were implemented somewhat differently than originally decided in the orientation report. These deviations were the result of new insights while developing the rendering system.


In this section you can find the final deliverables for the BSc project. Among other things these documents include the the original assignment description, an orientation report and an integration guide.


  • Korijn van Golen
  • Zhi Kang Shao
  • Mattijs Driel
  • Quintijn Hendrickx