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