Graphics
Implemented various graphics programming features for a second-year university assignment.
I wrote the engine in C++ using the following libraries: assimp, fmod, glew, freeglut, freetype, glm, soil.
These graphics projects have taught me how to write a variety of different shader types in GLSL, how to create and build upon a simple game engine, how the graphics pipeline functions in OpenGL, and many other graphics principles.
Character
Made a loader for meshes and animations using the assimp library.
Added shadows to the mesh using shadow-mapping.
Particles
Billboarded particles running on the CPU.
Billboarded particles running on the GPU with a compute shader.
Framebuffer
Game view draws to a framebuffer which is then displayed.
Post-processing applied to the framebuffer; blur, scanlines and chromatic aberration.
Terrain
Terrain loaded from a raw heightmap file.
Randomly generating terrain using layered perlin noise.
Texture blending over terrain based on height.
Grass drawn in the terrain’s geometry shader based on terrain height.
Deferred Rendering
Scene displayed using deferred rendering rather than forward rendering.
Can easily support a large number of lights.