Mirrors & Shadows – OpenGL

After the win32 api game, the rest of the Graphics Programming module focused on OpenGL, with a focus on procedural shape generation.

This submission actually covered two modules – Graphics Programming for the scene and Operating Environments for the threading of the texture loading and sphere generation.

Source code – OpenGL, C++.

With all of the modules tutorials completed, with an not inconsiderable amount of time spent getting a sphere and skybox right – a space scene seemed inevitable.

Anticipating that at least a few others would be making similar submissions, I started looking into some of the suggested topics not covered by the module.

I chose to further investigate and use the stencil buffer within my scene – and after a few failed attempts found that the stencil buffer had not been initialized…

Stencil buffer

Working finally, but with a few issues…

Not reflecting the skybox does a pretty good job of highlighting the transparent plane, and secondly how to fit this into a space scene.

Finding a suitable and decent model to import into the scene via Milkshape was proving rather difficult – mostly as the models I liked usually had too many vertices and often multiple texture files.

Eventually I came across a decent model of a Shadow Vessel from Babylon 5, complete with its scale like texture – and this got me thinking…

How to make a jump point texture!


Finding a usable jump point texture proved impossible – often low resolution or with a ship in shot. Fortunately I was able to create a pretty decent image in Photoshop.

I choose to position the jump point in the center of the scene reflecting along the z axis. This diagram details the layout of the scene, the skyboxes actually overlap entirely.


Scaling aside (its meant to look good, not be accurate) I was rather pleased with the final submission. One of the features I was most proud of is that the skin of the Shadow Vessel is animated, well actually there’s two models each animating in a different direction. This is hard to see but this does enhance the rather scary looking model.