Basic Renderer

The cave


The Basic Renderer (bRenderer) is a cross-platform educational framework written in C++ and suited to teach basic knowledge in computer graphics. The framework abstracts the functionality of its underlying graphics API and libraries to an extent that still preserves the main concepts taught in a computer graphics course. Consequently, bRenderer can be used in student projects, as well as in exercises. It helps students to easily understand how a renderer is implemented without getting distracted by the particular implementation of the framework or platform-specific characteristics.

The renderer was developed at the VMML by Benjamin B├╝rgisser under the supervision of David Steiner.


The paper "bRenderer: A Flexible Basis for a Modern Computer Graphics Curriculum" was presented at Eurographics 2017 as part of the Education Program. It is available in the download section of this page.


  • User inputs
  • Windows (and views on iOS) with OpenGL context
  • Object management
  • Adjustable global configurations
  • Queuing render calls
    • Sorting for efficiency
    • Transparency sorting
  • Bounding volumes and culling
  • OBJ loading (materials and models)
  • Sprites and text sprites
  • Fonts
  • Textures
  • Cube maps
  • Depth maps
  • Framebuffers
    • Drawing to textures
  • Shaders
    • Loading shaders from files
    • Generation of shaders according to user specifications or the material
  • Camera objects
  • Light objects
  • Matrix stacks


  • Windows
  • Mac OS X
  • Linux
  • iOS

Example Student Project

Example Project


GitHub VMML Support
GitHub VMML Support