pbrv
Physically Based Rendering Viewer (pbrv) is a small PBR 3D Viewer in CLI powered by ModernGL. Github
I wanted to go through learnopengl.com and a little beyond with by coding this Python PBR viewer.
Features/Specs
Interactive window
- Trackball camera (with path indepedance)
- Lclick: rotate
- Rclick: pan
- Dblclick: focus
- Ctrl+Lclick: rotate object
- Shift+Lclick: rotate environment
- Alt+Lclick: rotate directional light
Deferred Shading
Metal/roughness workflow
Normal mapping (tangent space)
SSAO (if no AO map)
Image based lighting
- Cubemaps
- Equirectangular panoramas (converted to cubemap)
- Cubemap prefiltering
- Irradiance (Cosine)
- Specular (GGX)
1 Directional light
1 Point light
Procedural Environment
- Sun (sunrise/dusk)
- Based on directional light direction
- Stars at night
Examples
