Project Information

  • Language: C++
  • Graphics API: OpenGL
  • Creation: Summer 2020
  • Source URL: GitHub Page

Graphics Simulations

Created as part of a series of summer projects, this is a collection of all the OpenGL projects that I created according to the LearnOpenGL website. After following the initial OpenGL tutorials, I learned the basics of shader programs, co-ordinate systems, basic lighting, texturing and model loading along with some advanced features such as framebuffers and cubemaps to name a few. Feel free to browse the embedded playlist below.



The Learning Process

After completing my first year on my Computer Games Programming course, I decided to further my knowledge by visiting the highly recommended LearnOpenGL website. Here I learned about the basics of shader programs and their various implementations. I also learned the process of layering textures, such as diffuse, specular and emissive maps to achieve more interesting results.

 // draw multiple instances of the rock meshes
 for ( unsigned int i = 0; i < rock.meshes.size(); i++ )
 {
      glBindVertexArray( rock.meshes[i].VAO );
      glDrawElementsInstanced( GL_TRIANGLES, rock.meshes[i].indices.size(), GL_UNSIGNED_INT, 0, amount );
      glBindVertexArray( 0 );
 }
With regards to the earlier tutorials, I learned the importance of framebuffers and how they can be used alongside different kernels to create interesting post-processing effects. Among these techniques, there are still many more that I learned from this website, like stencil testing, cubemaps, geometry shaders, instancing, how to implement anti-aliasing, and how to load textured models. Regarding the implementation of these techniques, I was not previously familiar with any of the aforementioned.

Future Projects

As for future projects, there are a lot of interesting ideas that I have based on what I have learned from the creation of these OpenGL scenes. The water simulation scene was the first project that I created using what I had learned. The focus of the scene was supposed to be on the water, but after getting carried away and throwing as many ideas as I could at it, I feel that it turned out a lot better than what I had initially hoped for.

Similar to this, I aim to create more interesting and complex scenes in the future using as many of the techniques now at my disposal.


Feel free to drop a comment below.