class Facet_BRDF_Model


The class Facet_BRDF_Model implements the specular point theory for scattering from very rough surfaces.

Diagram showing Facet_BRDF_Model

Parameters:

Parameter Data Type Description Default
lambda double Wavelength of the light in vacuum [µm].
(Inherited from BRDF_Model.)
0.532
type int Indicates whether the light is incident from above the substrate or from within the substrate and whether the scattering is evaluated in reflection or transmission. The choices are:
0 : Light is incident from the above the substrate, and scattering is evaluated in reflection.
1 : Light is incident from the above the substrate, and scattering is evaluated in transmission.
2 : Light is incident from the within the substrate, and scattering is evaluated in reflection.
3 : Light is incident from the within the substrate, and scattering is evaluated in transmission.
For 1, 2, and 3, the substrate must be non-absorbing.
(Inherited from BRDF_Model).
0
substrate dielectric_function The optical constants of the substrate, expressed as a complex number (n,k) or, optionally, as a function of wavelength.
(Inherited from BRDF_Model.)
(4.05,0.05)
sdf Slope_Distribution_Function Function describing the isotropic two-dimensional distribution of surface slopes. Exponential_Slope_Distribution_Function
stack StackModel_Ptr Description of any stack of films deposited on the substrate. The films are assumed to be conformal and of total thickness much less than the horizontal scale of the roughness. No_StackModel

See also:

SCATMECH Home,   Conventions,   BRDF_Model,   Roughness_BRDF_Model,   Torrance_Sparrow_BRDF_Model,   Subsurface_Facet_BRDF_Model,   Slope_Distribution_Function

D. E. Barrick, "Rough surface scattering based on the specular point theory," IEEE Trans. Ant. and Prop. AP-16 (4), 449-454 (1968).

Include file:

#include "facet.h"

Source code:

facet.cpp
reg_facet.cpp

Definition of public elements:

class Facet_BRDF_Model
 : public BRDF_Model
{
public:
    virtual double local_angle(double thetai,double thetas,double phis);
    virtual double local_slope(double thetai,double thetas,double phis);
};

typedef Model_Ptr<Facet_BRDF_Model> Facet_BRDF_Model_Ptr;


virtual double local_angle(double thetai,double thetas,double phis)

Function that returns the local angle of reflection on a specular point for a specific scattering geometry.

Top of Page

virtual double local_slope(double thetai,double thetas,double phis)

Function that returns the slope of a facet, which specularly reflects for a specific scattering geometry.

Top of Page

typedef Model_Ptr<Facet_BRDF_Model> Facet_BRDF_Model_Ptr

The typedef Facet_BRDF_Model_Ptr behaves like a pointer to an instance of class Facet_BRDF_Model. The following statement will query the user for an instance of class Facet_BRDF_Model:

Facet_BRDF_Model_Ptr model = Get_Model_Ptr();

The next statement will also create an instance of class Facet_BRDF_Model:

Facet_BRDF_Model_Ptr model = "Facet_BRDF_Model";

See Model_Ptr<model>.

Top of Page


For More Information

SCATMECH Technical Information and Questions
Sensor Science Division Home Page
Sensor Science Division Inquiries
Website Comments

Current SCATMECH version: 7.22 (April 2021)