How a surface redistributes light
BRDF lobe explorer
The BRDF answers one question: light arrives from ωi — what fraction leaves towards ωo? It is bidirectional, so the answer changes when you move either direction, which is exactly what a static picture of a lobe cannot show. Drag the incoming ray and watch all three panels respond at once.
The distance from the origin in any direction is the value of the BRDF for that outgoing direction. A perfect mirror is a spike; a Lambertian surface is a hemisphere of constant radius.
The same BRDF evaluated per pixel over a sphere, lit from the direction you are dragging. This is the appearance the lobe on the left predicts.
Roughness controls the Phong exponent. At 0 the glossy lobe collapses towards the mirror spike; at 1 it spreads out until it is almost indistinguishable from diffuse — which is the notes' point that glossy is a combination of the two, sitting on a dial rather than being a third thing.
∫ f·cosθo dωo ≤ 1 for every incoming direction. Push reflectivity to 1 and the readout sits just under 1 — a perfect, lossless reflector. Anything above 1 would be a surface that manufactures light, and in a path tracer that shows up as an image which gets brighter the longer you let it run instead of converging. Real BRDFs also obey reciprocity: swap ωi and ωo and the value is unchanged, which is what makes it legal to trace paths backwards from the camera at all.