Skip to content

Games and Graphics with OpenGL and C++

Posted on:January 16, 2017
Category:
  • University Course
Tech Stack:
  • OpenGL,
  • C++,
  • GLSL,
  • SDL2,
  • ImGUI

3D Interactive International Space Station

As part of the Computer Graphics module, I was tasked to make a scene using OpenGL direct mode. The model that I have built using hierarchical modeling is a replica of an International Space Station. It is made out of several objects built into one (as the ISS is a complex and large model by itself).

The solar panels do change their position and rotation in real life. In my model, they change rotation for most of the panels. To make the scene look realistic, I have created a skybox with images of the earth in the orbit. The model itself is at the centre of the skybox and the sun is at the edge of it, shining light at the ISS.

The ISS is textured, but the base is mostly white as it is made mostly of white fabric or aluminium, so I made the base texture out of aluminium. The solar panels have the solar panel textures. The whole scene looks like the ISS is orbiting the earth and the player is floating above it.

Screenshot of the ISS scene.
Screenshot of the ISS scene.

C++ SDL2 Course Game Prototype

The project had been done as part of the C++ module coursework where I had to implement a simple game to demonstrate my abilities and knowledge of C++ and game programming, particularly C++ classes, polymorphism, game states, events, tile manager, graphics and I/O.

The program is a top to bottom 2D game, consisting of a movable player, randomly generated obstacles and enemies, and different game states.

Game Screenshot
Game Screenshot

OpenGL with GLFW and ImGUI Engine Prototype

While this is purely a learning project and is definitely not finished, I am including this here to document my progress.

I picked up this project to learn graphics programming, particularly OpenGL, its graphics pipeline, vertex and index buffers, textures, vertex and fragment shaders w/ GLSL, as well as the 3D maths required for camera setup, transforms, translations and lighting. The solution uses GLAD as the OpenGL extension loader, GLFW for window management, GLM as the maths library, ImGUI for GUI and displaying information.

The application has three tests: solid color, 2D textures and a 3D model.

Color test.
Color test.

2D test.
2D test.

3D test.
3D test.