OpenGL PBR Shader
Shadow Techniques - Shadow Mapping/PCF/PCFF
Environment Mapping — Shadowed/Inter-reflection
Global Illumination — SSR
Physically Based Materials — Kulla-Conty BRDF
Real-time Ray Tracing — Denoising
Grid Acceleration
Path Tracing
Real-time Rendering
- OpenGL Physically-Based Rendering (PBR) Shader: Implemented a full PBR shader inspired according to the LearnOpenGL tutorial, with support for:
- Model Handling: Efficient loading and rendering of 3D models.
- Point Shadows: Omnidirectional shadow mapping for point lights.
-
Parallax Mapping: Added depth to flat surfaces through texture-based displacement.
- High Dynamic Range (HDR): Implemented tone mapping for accurate lighting intensity.
- Bloom: Post-processing bloom effects to enhance bright highlights.
-
Physically Based Surface Models: Microfacet-based/Disney-principled BRDF for realistic surface shading.
- Image-Based Lighting (IBL): Integrated IBL for realistic environmental reflections and diffuse lighting.
- Advanced Real-Time Rendering Algorithms: Built upon concepts from the Games202: Real-Time High Quality Rendering course to master and implement advanced techniques in WebGL:
- Shadow Techniques: Two-pass shadow mapping, Percentage Closer Filtering (PCF), and PCF Filtering with Variance (PCFF).
- Environment Mapping: Precomputed Radiance Transfer (PRT) for dynamic lighting.
- Global Illumination: Screen-Space Reflections (SSR) to simulate indirect reflections.
- Physically Based Materials: Implemented the Kulla-Conty BRDF to compensate for energy loss.
- Real-time Ray Tracing (RTRT): Integrated denoising techniques to enhance RTRT output quality.
Offline Rendering
- Fundamental Ray Tracing: Implemented a Whitted-Style Ray Tracer in C++ based on the MIT 2004 Computer Graphics course, including:
- Basic Framework: Cameras, transformations, primitives, and materials.
- Recursive Reflection and Refraction for realistic light interaction.
- Grid Acceleration to improve ray-object intersection calculation efficiency.
- Antialiasing via supersampling to improve image quality.
- Advanced Path Tracing: Extended the ray tracer using techniques from the Games101: Introduction to Computer Graphics course:
- Bounding Volume Hierarchy (BVH): Implemented BVH for efficient scene acceleration.
- Path Tracing: Simulated global illumination with Monte Carlo methods, incorporating Russian Roulette termination for sampling efficiency.