/GLAB

Play with C++ OpenGL

Primary LanguageC++

GLAB

Preview image Preview image Preview image

This serves as my final project for Computer Graphics course at ESIEE during 2017 Fall.

I may continue improving it for fun. Some features may not work well on AMD card.

Features

  • CMake
    • Windows + vcpkg
    • Linux
  • C++ 11~17
  • Wavefront.obj
  • Modern OpenGL 4.5+ AZDO
    • Bindless Texture
    • Indirect rendering
    • Direct State Access
    • Shader Storage Buffer
  • Batch Rendering
  • Deferred Rendering
  • Quaternion Rotation
  • Cascaded Shadow Maps
  • Point light
    • Bloom
    • Volumetric Effects
    • Directional shadow mapping
    • Omnidirectional shadow mapping
  • Physically Based Rendering
    • HDR environment
    • Image-based lighting
    • PBR metallic roughness
    • Fresnel Schlick
    • Cook-Torrance BRDF
    • Microfacet GGX+Smith
    • Multiple-Scattering Microfacet BSDFs with the Smith Model
  • Separable Subsurface Scattering
    • Phong lighting
    • PBR lighting
    • Gaussian blur
    • Transmittance
    • Shadow
  • Post-process

To-fix

  • Light source should be brighter.
  • Adjust bloom range based on depth.
  • Redone the pipeline, reduce VRAM cost.

Dependencies

References

opengl-tutorial.org
Learn OpenGL by Joey de Vries
A Guide to Modern OpenGL Functions

FREE PBR
HDRI Haven
CCOTextures
Material ball in 3D-Coat
McGuire Computer Graphics Archive