VARKON Version 1.15 1997-10-24


material_view - Procedure

Sets material characteristics for shading


Description

Links a material to a pen number and sets its parameters. Initially no pens are linked to materials and the shader uses the standard color of the pen as set up in the Varkon resource- or ini-file or created with the cre_color() routine. If a material is defined the shader will use the characteristics of the material instead of the ordinary color when the specified pen is used. 8 different materials may be defined and accociated with pens one through eight.

A material is defined by 4 different light components each with a red, green and blue (RGB) value. A shininess factor may also be defined, a total of 13 float parameters which all must be set.

The ambient component sets how much ambient light the material reflects. The diffuse component sets the amount of diffuse light reflected and the specular component sets the amount of specular light reflected. The emitted component sets the amount of light emitted from the material itself (not reflected). The emitted component may be used to create a luminous material.

Syntax

material_view(pen, ar, ag, ab, dr, dg, db, sr, sg, sb, er, eg, eb, sh)

INT pen;
FLOAT ar, ag, ab;
FLOAT dr, dg, db;
FLOAT sr, sg, sb;
FLOAT er, eg, eb;
FLOAT sh;


Principal parameters

pen - The pen number to link to the material. 1 - 8
ar - Ambient red
ag - Ambient green
ab - Ambient blue
dr - Diffuse red
dg - Diffuse green
db - Diffuse blue
sr - Specular red
sg - Specular green
sb - Specular blue
er - Emitted red
eg - Emitted green
eb - Emitted blue
sh - Shininess


Optional parameters

None..


Examples

material_veiw(1, 100, 0, 0, 100, 0, 0, 100, 0, 0, 0, 0, 0, 50);

A red material linked to pen 1 equally sensitive to ambient, diffuse and specular light but with no emitted light and medium shininess.

material_veiw(1, 50, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0);

A darker and less shiny red material.


Comments

A complete description of how to use light and material parameters to create different effects is not possible to give here. Please check with the litterature on OpenGL and similar graphics software.

A quick guide could be to start with ambient only. Ambient produces no shading but gives the right colors. You could think of it as a sort of background light which is always present everywhere. Add diffuse light to produce more realistic shades. The object now becomes brighter so the ambient level may have to be reduced. Diffuse light reminds of the light you would expect from the sun with some cloudiness. Finally add specular to give a more shiny surface. Use the shininess factor to concentrate or spread the reflected light. Specular light reminds of the very sharp light directly from the sun with no cloudiness.

Note that the Varkon resource- or ini-file sets the common ambient, diffuse and specular parameters for all lights but material_view() sets these for each material independantly.


VARKON Homepage Index