Graphics Programming (Solo)10-30-2022 Real-time&Offline Rendering Practice

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
A technical dive into real-time and offline rendering, demonstrating an understanding of modern rendering pipelines and graphics algorithms, including OpenGL PBR shaders, advanced realtime rendering algorithms, and a C++ offline renderer built from scratch.

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.


Softwares: Visual Studio, Visual Studio Code

©Shijia Liu
Technical  Art
Fantasyland