Thanks to visit codestin.com
Credit goes to github.com

Skip to content

MatthewBieda/OGLRenderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OGLRenderer Achievements:

  • Physically Based Rendering (PBR) with Cook-Torrance BRDF, full glTF 2.0 material/texture support
  • Dynamic lighting & shadows: directional (sun), point, and spot lights with PCF shadow maps for sunlight
  • Image Based Lighting (IBL): skyboxes, HDR environment maps, irradiance & prefiltered radiance, BRDF LUT
  • Post-processing pipeline: HDR tone mapping, gamma correction, MSAA, exposure
  • Scene editor: Free camera, Instanced model loading, runtime editing through ImGui interface

Development Roadmap

Version 1

  • Phong Lighting (Phong & Blinn-Phong)
  • 3D Model Loading (Supporting Diffuse & Specular Maps)
  • Free Camera
  • UI Mode
  • Directional Light (Sunlight)
  • Point Lights (With proper Attenuation)
  • Spotlights (Implemented as a flashlight)
  • Wireframe Mode
  • All parameters dynamically adjustable in the application

OGLRenderer v1.0

Version 1.5

  • Skyboxes
  • Dynamic PCF Shadow Maps
  • Anti-Aliasing (MSAA)
  • Controller Support

OGLRenderer v1.5

Version 1.6

  • Support arbitrary model loading/unloading
  • Adopt CMake for a proper build system
  • Move to ImGui Docking to improve user experience

OGLRenderer v1.6

Version 1.7

  • Instanced Rendering
  • Normal Mapping
  • Various Resolution modes
  • Crytek Sponza

OGLRenderer v1.7

Version 1.8

  • Physically Based Materials and Lighting (Cook-Torrance)
  • HDR/Tone Mapping/Gamma Correction
  • Image Based Lighting
  • Post-processing pipeline (with exposure implemented)

I used PolyHaven to get the HDRI, CMFTStudio to bake the diffuse irradiance and prefilter maps in linear space, and IBLBaker to get the Smith BRDF LUT. Also used HDRI-to-CubeMap web utility to make the skybox. Loaded everything in as HDR with stb_image, except the LUT is just a PNG, then tonemapped and gamma corrected at the end. Made sure to parse Albedo and Emissive as sRGB also (hardware applies linear space transformation).

OGLRenderer v1.8

Build Instructions

If you want to develop and are using Visual Studio, the easiest way to get started is just right-click in the working directory and select "Open with Visual Studio".

If you just want to build an executable and test the program:

  • Install the latest CMake version from the official website
  • Run the following from the command line in project root directory
  • cmake -S . -B build -DCMAKE_POLICY_VERSION_MINIMUM=3.5
  • cmake --build build --config Release
  • Move the .exe file into root of project

Builds tested on Arch Linux (GNU) and Windows 11 (MSVC).

Usage Instructions

  • Spacebar to switch between Free Camera and UI Mode.
  • Plug in an Xbox controller to navigate around the scene and jump with the A button (no collision yet).

About

My 3D Rendering Engine with OpenGL

Resources

Stars

Watchers

Forks

Packages

No packages published