Whats the difference between BSDF & BRDF shaders....

Hi all. Can any one explain me clearly whats the difference between BSDF shading and BRDF shading, why its especially used only Render Engines Like Cycles, Mental Ray etc .

I guess BSDF is just another way to say ‘material’, atleast according to wikipedia. Its just the code that describes how a surface interacts with light.

in the purist sense. BTDF+BRDF=BSDF (transmit+received=scattering)

however, as you can see in those notes, BSDF is sometimes just used as a general term when they really mean the BRDF implementation. few engines properly handle BTDF for proper transparent surfaces.

unless they mention which model they’re using for each function it’s hard to gauge what they mean. (blinn vs pure phong vs whatever which are BRDF types)

first off, both are illumination models. shading is just one form of illumination. they tend to be munged together though there is a distinction.

BSDF is a local illumination modeling function for how light interacts with a given surface locally (on the target polygon). BSDF has two parts. how light reflects (BRDF) and how light passes through (BTDF). for opaque surfaces the BTDF is effectively nil if the surface is smooth so the BRDF suffices to approximate. if it has imperfections a truly accurate model takes into account subsurface scattering (think bumpy surface). with translucent and transparent surfaces correct modeling of light interactions needs the BTDF aspect to be rigorous. it gets more complicated with complex scenes and turns into a global (vs local) illumination model after a point though.

in general when referring to BSDF/BRDF unless they specify the algorithm in use it’s marketing gibberish for all intents and ‘local illumination using diffuse/specular/ambient components’ is all you can infer.

because of the complexity of BTDF you find workarounds in texture space like bump mapping to mimick the scattering, and so on.

1 Like