Bidirectional reflectance distribution function
![\omega_{\text{i}}](/w/images/math/1/5/7/1579938c0f962c270473e0881d118d05.png)
![\omega_{\text{r}}](/w/images/math/3/3/3/33332dfb798072cb50cd619ee5128532.png)
![n](/w/images/math/7/b/8/7b8b965ad4bca0e41ab51de7b31363a1.png)
The bidirectional reflectance distribution function (BRDF; ) is a function of four real variables that defines how light is reflected at an opaque surface. It is employed both in the optics of real-world light, in computer graphics algorithms, and in computer vision algorithms. The function takes an incoming light direction,
, and outgoing direction,
(taken in a coordinate system where the surface normal
lies along the z-axis), and returns the ratio of reflected radiance exiting along
to the irradiance incident on the surface from direction
. Each direction
is itself parameterized by azimuth angle
and zenith angle
, therefore the BRDF as a whole is a function of 4 variables. The BRDF has units sr−1, with steradians (sr) being a unit of solid angle.
Contents
Definition
The BRDF was first defined by Fred Nicodemus around 1965.[1] The definition is:
where is radiance, or power per unit solid-angle-in-the-direction-of-a-ray per unit projected-area-perpendicular-to-the-ray,
is irradiance, or power per unit surface area, and
is the angle between
and the surface normal,
. The index
indicates incident light, whereas the index
indicates reflected light.
The reason the function is defined as a quotient of two differentials and not directly as a quotient between the undifferentiated quantities, is because other irradiating light than , which are of no interest for
, might illuminate the surface which would unintentionally affect
, whereas
is only affected by
.
Related functions
The Spatially Varying Bidirectional Reflectance Distribution Function (SVBRDF) is a 6-dimensional function, , where
describes a 2D location over an object's surface.
The Bidirectional Texture Function (BTF) is appropriate for modeling non-flat surfaces, and has the same parameterization as the SVBRDF; however in contrast, the BTF includes non-local scattering effects like shadowing, masking, interreflections or subsurface scattering. The functions defined by the BTF at each point on the surface are thus called Apparent BRDFs.
The Bidirectional Surface Scattering Reflectance Distribution Function (BSSRDF), is a further generalized 8-dimensional function in which light entering the surface may scatter internally and exit at another location.
In all these cases, the dependence on the wavelength of light has been ignored and binned into RGB channels. In reality, the BRDF is wavelength dependent, and to account for effects such as iridescence or luminescence the dependence on wavelength must be made explicit: .
Physically based BRDFs
Physically realistic BRDFs have additional properties,[2] including,
- positivity:
- obeying Helmholtz reciprocity:
- conserving energy:
Applications
The BRDF is a fundamental radiometric concept, and accordingly is used in computer graphics for photorealistic rendering of synthetic scenes (see the rendering equation), as well as in computer vision for many inverse problems such as object recognition. BRDF has also being used for modeling low concentration solar photovoltaic systems.[3]
Models
BRDFs can be measured directly from real objects using calibrated cameras and lightsources;[4] however, many phenomenological and analytic models have been proposed including the Lambertian reflectance model frequently assumed in computer graphics. Some useful features of recent models include:
- accommodating anisotropic reflection
- editable using a small number of intuitive parameters
- accounting for Fresnel effects at grazing angles
- being well-suited to Monte Carlo methods.
W. Matusiak et al. found that interpolating between measured samples produced realistic results and was easy to understand.[5]
Some examples
- Lambertian model, representing perfectly diffuse (matte) surfaces by a constant BRDF.
- Lommel–Seeliger, lunar and Martian reflection.
- Phong reflectance model, a phenomenological model akin to plastic-like specularity.[6]
- Blinn–Phong model, resembling Phong, but allowing for certain quantities to be interpolated, reducing computational overhead.[7]
- Torrance–Sparrow model, a general model representing surfaces as distributions of perfectly specular microfacets.[8]
- Cook–Torrance model, a specular-microfacet model (Torrance–Sparrow) accounting for wavelength and thus color shifting.[9]
- Ward model, a specular-microfacet model with an elliptical-Gaussian distribution function dependent on surface tangent orientation (in addition to surface normal).[10]
- Oren–Nayar model, a "directed-diffuse" microfacet model, with perfectly diffuse (rather than specular) microfacets.[11]
- Ashikhmin-Shirley model, allowing for anisotropic reflectance, along with a diffuse substrate under a specular surface.[12]
- HTSG (He,Torrance,Sillion,Greenberg), a comprehensive physically based model.[13]
- Fitted Lafortune model, a generalization of Phong with multiple specular lobes, and intended for parametric fits of measured data.[14]
- Lebedev model for analytical-grid BRDF approximation.[15]
Acquisition
Traditionally, BRDF measurements were taken for one specific lighting and viewing direction at a time using gonioreflectometers. Unfortunately, using such a device to densely measure the BRDF is very time consuming. One of the first improvements on these techniques used a half-silvered mirror and a digital camera to take many BRDF samples of a planar target at once. Since this work, many researchers have developed other devices for efficiently acquiring BRDFs from real world samples, and it remains an active area of research.
There is an alternative way to measure BRDF based on HDR images. The standard algorithm is to measure the BRDF point cloud from images and optimize it by one of the BRDF models.[16]
See also
- Albedo
- BSDF
- Gonioreflectometer
- Opposition spike
- Photometry (astronomy)
- Radiometry
- Reflectance
- Schlick's approximation
- Specular highlight
References
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Andrews, Rob W.; Pollard, Andrew; Pearce, Joshua M., "Photovoltaic system performance enhancement with non-tracking planar concentrators: Experimental results and BRDF based modelling," Photovoltaic Specialists Conference (PVSC), 2013 IEEE 39th, pp.0229,0234, 16–21 June 2013. doi: 10.1109/PVSC.2013.6744136
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Wojciech Matusik, Hanspeter Pfister, Matt Brand, and Leonard McMillan. A Data-Driven Reflectance Model. ACM Transactions on Graphics. 22(3) 2002.
- ↑ B. T. Phong, Illumination for computer generated pictures, Communications of ACM 18 (1975), no. 6, 311–317.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ K. Torrance and E. Sparrow. Theory for Off-Specular Reflection from Roughened Surfaces. J. Optical Soc. America, vol. 57. 1967. pp. 1105–1114.
- ↑ R. Cook and K. Torrance. "A reflectance model for computer graphics". Computer Graphics (SIGGRAPH '81 Proceedings), Vol. 15, No. 3, July 1981, pp. 301–316.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ S.K. Nayar and M. Oren, "Generalization of the Lambertian Model and Implications for Machine Vision". International Journal on Computer Vision, Vol. 14, No. 3, pp. 227–251, Apr, 1995
- ↑ Michael Ashikhmin, Peter Shirley, An Anisotropic Phong BRDF Model, Journal of Graphics Tools 2000
- ↑ X. He, K. Torrance, F. Sillon, and D. Greenberg, A comprehensive physical model for light reflection, Computer Graphics 25 (1991), no. Annual Conference Series, 175–186.
- ↑ E. Lafortune, S. Foo, K. Torrance, and D. Greenberg, Non-linear approximation of reflectance functions. In Turner Whitted, editor, SIGGRAPH 97 Conference Proceedings, Annual Conference Series, pp. 117–126. ACM SIGGRAPH, Addison Wesley, August 1997.
- ↑ Ilyin A., Lebedev A., Sinyavsky V., Ignatenko, A., Image-based modelling of material reflective properties of flat objects (In Russian). In: GraphiCon'2009.; 2009. p. 198-201.
- ↑ BRDFRecon project
Further reading
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.
- Lua error in package.lua at line 80: module 'strict' not found.