top of page

PBR Shader Tool – Real-Time Shader Development in OpenGL

I developed a standalone real-time look development tool that allows artists to preview and tweak physically based materials without touching shader code. The application is inspired by Unreal Engine’s Principled Shader workflow and implements a full PBR + Image-Based Lighting (IBL) pipeline.

The focus of this project is artist usability: material parameters, texture inputs, and lighting conditions can be adjusted interactively through a custom ImGui-based interface, enabling rapid visual iteration.

 
Github

Artist Workflow

Users can:

  • Load arbitrary .obj models

  • Assign base color, normal, roughness, metallic, and AO maps

  • Toggle individual texture channels on/off

  • Adjust roughness, metallic, and base color tint via sliders

  • Modify light direction, color, and intensity

  • Enable or disable IBL and environment lighting

This setup mirrors common lookdev workflows used in animation and real-time pipelines, allowing artists to evaluate materials under different lighting conditions instantly.

Image-Based Lighting (IBL)

The tool supports HDR-based environment lighting using an equirectangular HDRI, which is converted into a cubemap at runtime. This cubemap is:

  • Convolved into an irradiance map for diffuse lighting

  • Sampled using mipmap LODs to drive roughness-dependent specular reflections

This produces visually grounded materials that respond naturally to their environment, improving material evaluation and consistency.

Technical Architecture

Under the hood, the system is built with modular C++ and GLSL components:

  • Physically based shading using GGX microfacet BRDF, Schlick Fresnel, and Smith geometry terms

  • Tangent-space normal mapping with correct TBN construction

  • Modular utilities for texture loading, mesh parsing, shader compilation, and cubemap generation

  • Orbital camera system with smooth pan/zoom and UI input management

The tool also includes debug visualization features, allowing individual lighting and texture contributions to be isolated during look development.

Why This Tool Matters

This project demonstrates my ability to:

  • Translate complex rendering theory into artist-accessible tools

  • Design intuitive GUIs around technical systems

  • Build modular, extensible tooling suitable for production pipelines

 

Model Sources:

Sophie Bolotin 

bottom of page