Comparing the Cook-Torrance BRDF Model with Diffuse Reflection Simulation

Requires a Wolfram Notebook System

Interact on desktop, mobile and cloud with the free Wolfram CDF Player or other Wolfram Language products.

Requires a Wolfram Notebook System

Edit on desktop, mobile and cloud with any Wolfram Language product.

As Wolfgang Pauli said, “God made the bulk; the surface was invented by the devil.” This Demonstration illustrates the diabolical characteristics of surfaces in the case of reflection. In this specific case, we show how reflection is affected by surface roughness. The latter is described by means of the root mean square (RMS) average of profile height deviations from the mean, recorded within the evaluation length. On smooth surfaces, light is reflected according to Snell's law, in terms of the angle between the incident ray and the surface normal. This law also applies in the case of rough surfaces; however, the inclination of each facet now needs to be accounted for. This gives rise to complications, such as interferences, multiple reflections, etc. We have analyzed only the diffuse reflection, which applies when the wavelength is much greater than RMS (Rayleigh criterion [1]). The incident angle has been set to 45 degrees.

[more]

We consider the Cook–Torrance bidirectional reflectance distribution function (BRDF), which is a physically based model of a reflecting surface. It assumes that a surface is a collection of planar microscopic facets—microfacets—with each microfacet acting as a perfectly smooth reflector. Accordingly,

,

where

,

which describes the distribution of microfacet orientations, with RMS as the root-mean-square slope of the microfacets; is the angle between the normal surface vector and the halfway angle vector (vector sum of the incident vector and the radiant vector at angle ); is the geometric attenuation factor that accounts for microfacet shadowing. The factor is in the range of 0 (total shadowing) to 1 (no shadowing). In this case, we have not considered either multiple reflection phenomena or shadowing, and it is determined as equal to 1. is a Fresnel reflection term related to the material’s index of refraction. Here again, it is determined to be equal to 1, consistent with the assumption that the surface is totally reflective [2].

The "Model" window shows the behavior of reflected rays when varying the surface roughness. The surface roughness has been modeled by randomly picking points from a normal distribution having a zero mean and a standard deviation equal to the RMS control. The "number of points" slider helps to get the microfacets closer or farther by increasing or decreasing the number of points considered on the axis. It is possible to increase the number of incident rays with the "beam diameter" slider, as well as to thicken them with the "beam intensity" slider.

The "Distributions" window shows the comparison of the theoretical Cook–Torrance distribution (colored orange) with the experimental one obtained using the "Model" window model (colored blue).

[less]

Contributed by: D. Meliga, S. Z. Lavagnino and G. Valorio  (September 2017)
Additional contributions by: M. Allegretti
Open content licensed under CC BY-NC-SA


Snapshots


Details

Snapshot 1: in the case of low RMS values, good agreement between the theoretical and experimental models is observed

Snapshot 2: in the case of higher RMS values, we begin to detect discrepancy between the theoretical and experimental models

Snapshot 3: a reflection simulation (Snell's law) on a rough surface

References

[1] I. Hajnsek and K. Papathanassiou. "Rough Surface Scattering Models." earth.esa.int/documents/653194/656796/Rough_Surface_Scattering _Models.pdf.

[2] R. L. Cook and K. E. Torrance, "A Reflectance Model for Computer Graphics," ACM Transactions on Graphics, 1(1), 1982 pp. 7–24. doi:10.1145/357290.357293.



Feedback (field required)
Email (field required) Name
Occupation Organization
Note: Your message & contact information may be shared with the author of any specific Demonstration for which you give feedback.
Send