Show Menu

Engine Introduction

Creating an engine is, of course, an exhaustive process, and demands on my part all the planning, assembling, refining, and (unconditional) loving it deserves. An engine is the concert put forth by an innumerable mass of moving parts, all working in tandem. It is the motor that drives a solid game.
  • January 17, 2015

Clairvoyance Architecture: Buffer Objects

The term Buffer Object describes an allocated block of raw, linear memory. The general premise behind a buffer object is that its memory can be used in a wide variety of arbitrary ways. There is no format associated with a buffer object itself, and specializations are interpreted by the methods that use it. They can…
  • January 27, 2015

Occlusion Culling

Occlusion culling is a term that describes the method of reducing the rendering load on the graphics system by eliminating objects from pipeline that are hidden from view. The idea behind occlusion culling is to find geometry that has no effect on the end result of the frame buffer, as it is behind other geometry…
  • February 4, 2015

Clairvoyance Architecture: Resources

In general, a resource is defined as a source of supply or support – an asset in reserve that can be drawn upon when needed in order to function effectively. In the context of software, we define a resource in similar terms. Resources are abstract data objects that represent a loadable file, and they can…
  • February 11, 2015

Importing Models

A major component of any graphics engine is loading and rendering three-dimensional models, and we wanted Clairvoyance to handle this responsibility as elegantly as possible. Since 3D models are integral to having a functional 3D application, it was important that we develop a robust and reliable system for importing them.
  • February 23, 2015

Using Shaders

Shaders supersede outmoded rendering functions of older OpenGL versions, and can handle a wide variety of rendering operations, such as transformation matrices and lighting.
  • March 3, 2015

Basic Lighting

The graphics pipeline allows the programmer to use two distinct types of shaders: a vertex shader and fragment shader (and there are certainly more!). Dynamic lighting is commonly achieved using shaders.
  • March 14, 2015


A camera represents the perspective from which a scene is rendered. Scenes emulate three dimensional environments and can contain any number of camera references. While a scene can exist independently of a camera, it is only made visible by defining an active camera to render it with.
  • March 24, 2015