Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ surface_coe(3G) — HP-UX ANSI C A.10.11

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bf_control(3G)

fill_color(3G)

interior_style(3G)

perimeter_color(3G)

surface_model(3G)

surface_coefficients(3G)

NAME

surface_coefficients, bf_surface_coefficients − select the ambient, diffuse and specular coefficients for filled area primitives, and back-facing elements of filled area primitives

SYNOPSIS

C Syntax:

void surface_coefficients ( fildes, ka, kd, ks );
int fildes;
float ka, kd, ks;

void bf_surface_coefficients ( fildes, ka, kd, ks );
int fildes;
float ka, kd, ks;

FORTRAN77 Syntax:

subroutine surface_coefficients ( fildes, ka, kd, ks )
integer*4 fildes
real ka, kd, ks

subroutine bf_surface_coefficients ( fildes, ka, kd, ks )
integer*4 fildes
real ka, kd, ks

Pascal Syntax:

procedure surface_coefficients ( fildes:integer;
ka, kd, ks:real );

procedure bf_surface_coefficients ( fildes:integer; ka,
kd, ks:real );

DESCRIPTION

Input Parameters

fildes Integer file descriptor returned by gopen when an I/O path to a graphics device is opened. 

ka Coefficient of ambient reflection

kd Coefficient of diffuse reflection

ks Coefficient of specular reflection

Discussion

The surface_coefficients subroutine specifies ambient, diffuse, and specular lighting constants for polygonal surfaces.  bf_surface_coefficients specifies the same constants for back-facing shaded polygons.  Its parameters are used to determine the intensity of back-facing shaded polygons.  The use of surface coefficients on front-facing and back-facing polygons is initiated by a call to shade_mode, turning shading on and to bf_control, turning on special handling for back-facing polygons. 

The reflection coefficients defined here are multiplied by each of these terms and are used as a means to attenuate the contribution of various components.  When shading polygons, the basic light source computations consist of the sum of three separate components:

The energy due to ambient illumination:
 

Ea = (ka)(Rs)(Ia)

The energy due to diffuse reflection from a point source, where n is device-dependent (see discussion in light_switch(3G) on the number of lights supported):

 
Ed = (kd)n∑j=1(Rs)(Ipj)(cos(ij))

The energy due to specular reflection from a point source, where n is device-dependent (see discussion in light_switch(3G) on the number of lights supported):

 
Es = (ks)n∑j=1(W)(Ipj)((cos(sj))h)

Where:

Rs = Reflectance coefficient of the surface
(RGB color set by fill_color)
Ia = Ambient illumination
(RGB color set by light_ambient)
Ip = Point source illumination
(RGB color set by light_source)
ka = Coefficient of ambient reflection
kd = Coefficient of diffuse reflection
ks = Coefficient of specular reflection
i = Incident angle of light source
W = Specular reflection coefficient (red, green,
blue color set by surface_model)
s = Angle between viewpoint ray and reflected ray.
h = Specular highlight power is degree of
shininess (highlight)

DEFAULTS

ka = 1.0  kd = 1.0  ks = 1.0

SEE ALSO

bf_control(3G), fill_color(3G), interior_style(3G), perimeter_color(3G), surface_model(3G). 
Starbase Graphics Techniques. 

Hewlett-Packard Company  —  November 03, 1994

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026