A simple OpenGL template, explained.
Switch branches/tags
Nothing to show
Clone or download

README.md

[TOC]

Features

  • Theoretical introduction
  • Technical introduction
  • General setup (glm, glew, glfw)
  • Main loop
  • Interactions
  • Programs and shaders compilation
  • Errors and tips, debugging
  • Rendering basic geometry
  • Simple shaders
  • Uniforms

[Explanations stop here]

  • Textures
  • Attributes
  • Moving to 3D using matrix
  • Camera
  • Element arrays
  • Meshes loading
  • Lighting
  • Complex uniforms
  • Texture and Normal maps
  • Effect maps (specular, AO)
  • Cubemap : skybox
  • Environment mapping: specular, irradiance map
  • Gamma correction
  • Simple framebuffer
  • Shadow maps
  • Antialiasing
  • Distinct render and display resolutions
  • Parallax mapping
  • Variance shadow maps
  • Deferred shading
  • SSAO
  • Resources managers
  • Joystick support
  • HDR, bloom
  • Physically based rendering
  • Spotlights, point lights shadow maps
  • Atmospheric scattering
  • Shader offline validation

Planned

Graphics techniques

  • Raymarching techniques (SSR)
  • Water/terrain/noise
  • Temporal AA
  • UI elements, text rendering (df)
  • Particles, instanced drawing
  • Geometry shaders/TFb
  • Tessellation

Engineering

  • Framebuffers with multiple attachments using descriptors
  • Support PS4 controller fully
  • Additional controllers support
  • Separate backgrounds and objects
  • Realtime cubmaps for reflections?