/OpenGL-Rendering

📚 | A showcase of rendering techniques using OpenGL

Primary LanguageCMIT LicenseMIT

date

OpenGL Rendering Showcase ~ Alien Invasion 👽

A showcase of rendering techniques using OpenGL, intially created to showcase the Exalted rendering engine, and then extended as an exercise for the CSC8503 graphics module at Newcastle University.

This repo uses Exalted, a custom engine I developed as a learning exercise with the purposes of learning engine design and architecture.

Youtube Video: https://www.youtube.com/watch?v=IS9GLXPMrL8&feature=youtu.be

List of Features

Name Description
Scene Graph Used to arrange spatial data in the scenes, for example, to allow for blended transparency ordering
Blinn-Phong Lighting (Energy Conserving) (Directional - Spot - Point) lighting
Environment Mapping Skybox environment
Dynamicly Changing Environment Objects in the scenes change over time
Real-Time Soft Shadows Spot (perspective), Point (cubemapped perspective) and directional (orthographic) multi-sampled shadows
Multi-Viewport Shadowmap Debug Displays Displays normalized shadowmaps as mini-display views
Post Processing Cel Shading - Color Inversion - Grayscale - Sharpening - Blurring - Edge Detection
Anisotropic Filtering 16x anisotropic texture filtering
Object Instancing Instance drawing rendering capabilities, can be used for particle systems etc...

Some Screenshots

Showcase Scene

A screenshot extracted from this youtube video of the showcase:

Cel Shading

Omnidirectional Perspective Shadows

Omnidirectional real-time Shadows:

Orthographic Shadows

Dynamic directional real-time shadows: Dynamic-Directional-Shadows

Instanced Rendering

10 million quads rendered at 150fps:

100k environmently mapped teapots rendered at 100fps:

Blinn-Phong lighting with Energy Conservation

Blinn lighting:

Blinn Phong lighting with energy conservation:

Blinn lighting with normals:

Blinn Phong lighting with normals and energy conservation:

Scene Graph

Scene graph object transformation as done in Unity:

Anisotropic Texture Filtering

16 x Anisotropic filtered textures:

Anisotropic-Filtering

Github Issues

Please use Github Issues to report bugs.