Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
src
 
 
 
 
 
 

README.md

Real-Time PBR Learning Engine

About

This project is purely for learning purposes where I create a physically based real-time renderer and get more familiar with C++ in a graphics context.

I previously wrote a traditional forward renderer with some bells and whistles (and a lightweight entity-component-system on top) in Rust, but I'd like to start from scratch to see what this PBR hype is all about.

This engine uses a custom model format that describes materials and gives the vertex and index information of a mesh in a format easily loadable into memory. You can convert models to this format using this handy converter.

Currently there is an absence of documentation, so see demo.cc for more instructions on how to use this engine.

Demo Video demo

Features

  • Physically based material system and lighting (based on UE4). The exact material system accepts albedo, metallic, roughness, ambient occlusion, and normal maps.
  • Image based lighting.
  • MSAA with custom resolve for better HDR anti-aliasing.
  • Skyboxes.
  • Postprocess dithering to combat banding in dark scenes.
  • Custom material format for quick loading.
  • Real-time shadows.

Todo

  • Area lights.
  • More complex shadows.
  • Better GI approximation.
  • Many optimizations.
  • Animated meshes.

Dependencies

This project depends on a few external libraries:

  • OpenGL 3.0+
  • glfw
  • glad
  • glm
  • stb

Contact

Brian Ho

brian@brkho.com

About

This is a physically based real-time renderer made for learning purposes.

Resources

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.