# Bidirectional reflection distribution function

A bidirectional reflectance distribution function ( English Bidirectional Reflectance Distribution Function , BRDF ) provides a function for the reflection behavior is of surfaces of a material under arbitrary angles of incidence. It provides for each of the material impinging light beam having a given entry angle the ratio of irradiance and irradiance for each emergent light beam. BRDFs are used, among other things, in realistic 3D computer graphics , where they represent part of the fundamental rendering equation and serve to represent surfaces as realistically and physically correct as possible. A generalization of the BRDF on textures , the BTF ( Bidirectional Texturing Function ) is.

View of the geometric elements used when defining the BRDF

A BRDF is very complex, depending on the selected accuracy: It can be determined, for example, for all angles of incidence / reflection (4-dimensional), for every wavelength (5-dimensional) or for every point on the surface (7-dimensional). Because of this complexity, simple models are mostly used as BRDFs in computer graphics.

Formula: ${\ displaystyle f _ {\ text {r}} (\ omega _ {\ text {i}}, \ omega _ {\ text {o}}) \ equiv {\ frac {dL _ {\ text {o}} (\ omega _ {\ text {o}})} {L _ {\ text {i}} (\ omega _ {\ text {i}}) \ cos (\ theta _ {\ text {i}}) d \ omega _ {\ text {i}}}}}$

There are basically 2 approaches to represent the BRDF values:

• explicit storage of the ordered measured values ​​or simulation results ( e.g. obtained by a gonioreflectometer ),
• high storage space requirements with simple storage in finely divided samples,
• high expenditure of time and hardware for data acquisition,
• poorly suited for importance sampling ,
• Approximation through analytical functions ( local lighting models ).

## Physically correct BRDF

The BRDF of a real object must also have the following properties:

• Positivity: ${\ displaystyle f _ {\ text {r}} (\ omega _ {\ text {i}}, \, \ omega _ {\ text {o}}) \ geq 0}$
• fulfills the Helmholtz reciprocity: ${\ displaystyle f _ {\ text {r}} (\ omega _ {\ text {i}}, \, \ omega _ {\ text {o}}) = f _ {\ text {r}} (\ omega _ { \ text {o}}, \, \ omega _ {\ text {i}})}$
• Energy conservation: ${\ displaystyle \ forall \ omega _ {\ text {i}}: \, \ int _ {\ Omega} f _ {\ text {r}} (\ omega _ {\ text {i}}, \, \ omega _ {\ text {o}}) \, \ cos {\ theta _ {\ text {o}}} d \ omega _ {\ text {o}} \ leq 1}$