The Lambertian scatter model is typically used to simulate a perfect diffuser. Unlike other models, the BSDF does not depend on either the angle of incidence or the specular ray direction(s). The predefined models Black Lambertian and White Lambertian are both of this type.
The following picture shows a normalized log space plot of the reflected hemispherical scatter intensity distribution in direction cosine space. The Lambertian scatter parameter is reflectivity = 0.04. The specular angle is 30 degrees.
This feature can be accessed by selecting Lambertian (equal scatter in all directions) as the Scatter Type in the Create a new scatter model dialog box.
The Lambertian scatter model has no specular component. The scatter distribution function is completely independent of the angles of incidence, reflection, and transmission. It represents an ideal diffusing surface.
Reflectivity must be between 0 and 1. This setting is independent of the Coating specification on the surface, which applies only to specular rays. Reflectivity near zero approximates a perfect absorber. Conversely, reflectivity approaching a value of 1 approximates a perfect diffuse reflecting surface as might be found in an integrating sphere. White paper is has a Lambertian reflectivity of about 0.8.
The Lambertian model is wavelength invariant.
Scatter in transmission and reflection All scatter models describe the BSDF as measured over a maximum of 2p steradians. Both transmitted and reflected scatter can be modeled by specifying the two scatter directions simultaneously with the appropriate direction controls found under the Scatter tab in the Surface Dialog.
Multiple scatter models can be attached to the same surface. The scatter direction controls are then imposed on every attached model.
Scripting with the Lambertian model Subroutines AddLambertianScatter YourScatter SetLambertianScatter IndexInScatterList, YourScatter GetLambertianScatter IndexInScatterList, YourScatter
Data structure T_LAMBERTIANSCATTER Name – (string) Holds the name of the model. Default is an empty string. Description – (string) Holds the description of the model. Default is an empty string. Refl – (double) The value of the Reflectivity coefficient. Default is 0. ApplyRefl – (Boolean) Applies the scatter model on reflection. Default is False. ApplyTrans – (Boolean) Applies the scatter model on transmission. Default is False. HaltIncident – (Boolean) Halts the incident ray. Default is False.
This example adds a Lambertian Scatter model to the FRED file associated with this script.
Dim s As T_LAMBERTIANSCATTER
This example sets the fourth Scatter model’s name to “Lambertian Example 2”, as long as that scatter model is a Lambertian model. It fails if it is any other scatter type.
Dim s As T_LAMBERTIANSCATTER
This example gets the fourth Scatter model and prints its name, as long as that scatter model is a Lambertian model. It fails if it is any other scatter type.
Dim s As T_LAMBERTIANSCATTER
ABg – for polished surface scatter Binomial - plane symmetric case of general Polynomial Extended Harvey-Shack - shift variant form of the Harvey-Shack model Extended Scripted - User-defined scattering function that allows manipulation of the scattered rays' polarization state Flat Black Paint – specify Total Integrated Scatter (TIS) Harvey-Shack – for polished surface scatter K-Correlation – analytic PSD Phong – cosn from specular Polynomial - General polynomial with diffuse and Lorentzian component Scripted - User-defined scattering function Surface Particle (Mie) – for particulate contamination Tabulated BSDF – measured BSDF data Tabulated PSD – measured PSD data
|
||||||||||||||||||||||||||||||||||||||||||||||||