<> <> <> <> <> DIRECTORY Imager, Rope, SV3d, SVModelTypes, SVVector3d; Shading: DEFINITIONS = BEGIN <<>> <> <> <> Color: TYPE = Imager.Color; LightSource: TYPE = SVModelTypes.LightSource; LightSourceList: TYPE = SVModelTypes.LightSourceList; Vector: TYPE = SVVector3d.Vector; Point3d: TYPE = SV3d.Point3d; CollimatedLambertianRadiance: PROCEDURE [surfaceNormal: Vector, lightSource: LightSource, albedo: REAL _ 1] RETURNS [radiance: REAL]; <> DiffuseReflectance: PUBLIC PROCEDURE [surfaceNormal: Vector, surfacePt: Point3d, surfaceColor: Color, lightSources: LightSourceList] RETURNS [completeColor: Color]; DiffuseAndSpecularReflectance: PROCEDURE [eyePoint: Point3d, surfaceNormal: Vector, surfacePt: Point3d, surfaceColor: Color, lightSources: LightSourceList] RETURNS [color: Color]; << Frank Crow's highlighted intensity model>> CollimatedSpecularRadiance: PROCEDURE [surfaceNormal: Vector, lightSource: LightSource, albedo: REAL _ 1] RETURNS [radiance: REAL]; <> SimpleFilmIrradiance: PROCEDURE [radiance: REAL, omegaAperture: REAL] RETURNS [irradiance: REAL]; SolidAngle: PROCEDURE [surfacePoint: Point3d, areaAperture: REAL] RETURNS [omegaAperture: REAL]; <> LamFilmIrradiance: PROCEDURE [surfaceNormal: Vector, lightSource: LightSource, albedo: REAL _ 1, omegaAperture: REAL] RETURNS [irradiance: REAL]; <> <<>> <> <<>> <> END.