Overview
Project Type: Solo, OpenGL Demos
Technologies: C++, OpenGL, GLFW 3, GLM, Assimp, FreeImage
Span: December 2016 – Present
System Support: Windows 7, Ubuntu 16.04+
Note: If issues are encountered on Windows, use Visual Studio 2017.
[Source Code]: https://github.com/invaderjon/demo
Upcoming
Next I plan to implement parallax mapping.
A custom math library that I created a while ago is also going to be refactored for these demos. The existing implementation can be found here:
https://github.com/invaderjon/gel/tree/mat/include/gel/math
https://github.com/invaderjon/gel/tree/mat/src/gel/math
Highlights
- Blinn-Phong shading
- Texture mapping
- Custom GLSL shaders
- Custom allocator support
- Model loading
- Resource manager
- Cross-compiler and cross-platform support
Blinn-Phong Shading
Demo 1 implements blinn-phong shading using a custom GLSL shader program.
Texture Mapping
Demo 2 introduces texture mapping support for diffuse, specular, and normal maps to the shader program. Note: The frame lag is due to the recording software.
Custom Allocator Support
Custom allocators can be used with the system to afford demos the ability to remove memory allocation bottlenecks. This will become important later when the ability to rapidly allocate and deallocate memory becomes vital.
Model Loading
The engine supports loading complex models that contain multiple meshes. In later iterations, the model class will maintain mesh hierarchy.
Resource Manager
A global resource manager provides a convenient interface to obtain assets. This is important, as it will allow the engine to handle low memory events in a sophisticated manner. It will be modified to support instancing and to track asset usage in future iterations.
Cross-Compiler and Cross-Platform Support
All of the code builds using both GCC and Visual Studio and runs on both Ubuntu and Windows. It may compile and run on other Linux distributions but that is untested.