Abstract class Shadow_Function


The abstract class Shadow_Function is used by Shadowed_Facet_BRDF_Model to store information about the shadow function. As an abstract class, it contains no executable code. However, three specific classes inheriting its properties are provided. The user may provide other shadow functions for Shadowed_Facet_BRDF_Model by creating classes inheriting the properties of Shadow_Function.

Instantiable Models and Their Parameters:

Parameter Data Type Description Default
Unit_Shadow_Function:
A trivial shadow function that does not provide any shadowing.
Unit_Shadow_Function has no parameters..
Torrance_Sparrow_Shadow_Function:
A shadow function appropriate for a surface covered with a distribution of V-grooves.
Torrance_Sparrow_Shadow_Function has no parameters..
Smith_Shadow_Function:
A shadow function appropriate for Gaussian rough surfaces, give by Smith.
w double The standard deviation of the surface slope. 0.35
Maxwell_Beard_Shadow_Function: A shadow function developed by Maxwell-Beard.
Omega double Omega [deg] 0.7
tau double tau [deg] 0.25
Table_Shadow_Function: A shadow function that is interpolated from a table of values, evaluated at an angle in degrees. The resulting shadow function is the product of this table evaluated at the incident and scattered polar angles.
T Table The table containing the shadow function. 1

See also:

SCATMECH Home,   Conventions,   Shadowed_Facet_BRDF_Model,  

K.E. Torrance and E.M. Sparrow, "Theory of off-specular reflection from roughened surfaces," J. Opt. Soc. Am. 57(9), 1105-1114 (1967).
B. G. Smith, "Geometrical Shadowing of a Random Rough Surface," IEEE Trans. Ant. Prop AP-15, 668-671 (1967).
J.R. Maxwell, J. Beard, S. Weiner, D. Ladd, and D. Ladd, Bidirectional Reflectance Model Validation and Utilization, (Environmental Research Inst. of Michigan (ERIM), Ann Arbor, MI, 1973).

Include file:

#include "torrspar.h"

Source code:

torrspar.cpp

Definition of public elements:

class Shadow_Function : class Model {
    virtual double f(double thetai,double thetas,double phis) = 0;
};

typedef Model_Ptr<Shadow_Function> Shadow_Function_Ptr;

double f(double thetai,double thetas,double phis)

This function evaluates the shadow function for the given geometry. The function is defined as that function which should be multiplied by the calculated intensity to achieve the shadowed intensity.

Top of Page


For More Information

SCATMECH Technical Information and Questions
Optical Technology Division (OTD) Home Page
OTD Technical Inquiries
OTD Website Comments

Current SCATMECH version: 6.00 (February 2008)
This page first online: Version 3.00 (December 2001)
This page last modified: Version 6.00 (February 2008)