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.