This project implements a physically-based rendering (PBR) system combined with real-time screen-space reflections (SSR) using OpenGL, C++, and GLSL shaders. It simulates realistic material responses to lighting, including reflections from both environment maps and nearby scene geometry.




Key Features:
1. Cook-Torrance BRDF Shader:
Implemented a physically-accurate shader using the metallic-roughness PBR model, supporting Fresnel-Schlick approximation, GGX microfacet distribution, and image-based lighting (IBL).
Implemented a physically-accurate shader using the metallic-roughness PBR model, supporting Fresnel-Schlick approximation, GGX microfacet distribution, and image-based lighting (IBL).
2. Diffuse & Specular Environment Mapping:
Precomputed diffuse irradiance and specular reflections from HDR environment maps using hemisphere sampling and importance sampling with mipmaps for real-time shading.
Precomputed diffuse irradiance and specular reflections from HDR environment maps using hemisphere sampling and importance sampling with mipmaps for real-time shading.
3. Rendering Pipeline:
Developed a G-buffer to store per-pixel attributes and enable post-processing reflections without re-rendering geometry.
Developed a G-buffer to store per-pixel attributes and enable post-processing reflections without re-rendering geometry.
4. Screen-Space Reflections (SSR):
Added real-time SSR using ray-marching in screen space. Simulated glossy reflections by applying Gaussian blur over reflection results based on surface roughness.
Added real-time SSR using ray-marching in screen space. Simulated glossy reflections by applying Gaussian blur over reflection results based on surface roughness.
5. Shader Debugging Tools:
Used RenderDoc and NVIDIA Nsight for real-time debugging and texture analysis.
Used RenderDoc and NVIDIA Nsight for real-time debugging and texture analysis.