Graphics Demo

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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s