I'm starting to implement a real-time PBR shading pipeline in one of my projects and had a few questions that I thought folks around here could help clarify.

1) Is it fair to say that in a PBR shading model, you'd typically have two separate BRDFs - one for specular and one for diffuse? So far, I've been using a simple Lambertian diffuse term and a more complicated BRDF for specular (i.e. one that uses a normal distribution function, a geometric shadowing term, and fresnel attenuation). At the end of my shading routine, I simply add these two terms together.

2) Why do so many diffuse models ignore surface roughness? I don't understand why the microfacet model wouldn't drastically change the way light is refracted, scattered, and re-emitted through a surface (i.e. the diffuse term).

3) People often parameterize this material model with three variables: roughness, metallic, and specular. In my current model, I use 'roughness' for various calculations in the specular BRDF. Obviously, the Lambertian diffuse model doesn't take into account the surface roughness, but I may adopt a more advanced shading model later (i.e. Oren-Nayar). I use 'metallic' to blend between the diffuse and specular terms. It also controls the color of the specular highlight - a higher 'metallic' value will result in highlights that are tinted towards the diffuse color of the material, while lower values result in highlights that are white. Finally, 'specular' just controls the final intensity of the specular highlight. Does this make sense?

4) I'm confused where environment maps, irradiance maps, and pre-filtered cube maps fit into this model. Is it fair to say that irradiance maps are used for indirect diffuse lighting, pre-filtered cube maps are used for indirect specular lighting, and environment maps are used for reflections (based on how 'metallic' a material is)? The relationship between direct and indirect lighting in a PBR material model is confusing to me.

Any help would be greatly appreciated. Thanks all


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.