Insert_Area_Light

Functions

HC_KEY DInsert_Area_Light (int count, DPoint const points[], char const *options)
 Inserts an area light. More...
 
void DShow_Area_Light (HC_KEY key, int *ucount, DPoint upoints[], char *options)
 Similar to Show_Area_Light, but operates on double-precision data. More...
 
HC_KEY Insert_Area_Light (int count, Point const points[], char const *options)
 Inserts an area light. More...
 
void Show_Area_Light (HC_KEY key, int *ucount, Point upoints[], char *options)
 Shows the points and options associated with the area light of the given key. More...
 

Detailed Description

Function Documentation

◆ DInsert_Area_Light()

HC_KEY DInsert_Area_Light ( int  count,
DPoint const  points[],
char const *  options 
)

Inserts an area light.

Parameters
count– number of points
points– double-precision triples defining the area (count & points exactly as in Insert_Polygon)
options– "front|back|both", which determines which side(s) of the polygon emit light
Returns
The key to the inserted light, or -1 if an error occurred.

DETAILS

Similar to Insert_Area_Light, but operates on double-precision data.

◆ DShow_Area_Light()

void DShow_Area_Light ( HC_KEY  key,
int *  ucount,
DPoint  upoints[],
char *  options 
)

Similar to Show_Area_Light, but operates on double-precision data.

Parameters
HC_KEY- The key of the light you want to query
ucount- The number of points return in the upoints parameter
upoints- The point data associated with this area light
options- "front|back|both", which determines which side(s) of the polygon emit light
Returns

◆ Insert_Area_Light()

HC_KEY Insert_Area_Light ( int  count,
Point const  points[],
char const *  options 
)

Inserts an area light.

Parameters
count– number of points
points– float triples defining the area (count & points exactly as in Insert_Polygon)
options– "front|back|both", which determines which side(s) of the polygon emit light
Returns
The key to the inserted light, or -1 if an error occurred.

DETAILS

Radiosity is an intensive, iterative calculation based on how light bounces around an environment – a light bulb (point light) near the ceiling lights up the ceiling brightly close to it, and less further away, and less down the walls and the floor. Some of the wall and floor areas are directly shadowed by furniture, but light bouncing off the first lit areas can add a little to those other areas, and a little more to the areas that were first lit. These newly lit/brightened areas now light up more, and so on until a limit is reached – either a number of iterations or the lighting levels have stabilized within a tolerance.

To this end, an area light is an emissive polygon – a polygon that is considered a single extended light source, such as the rectangular diffuser found on many fluorescent fixtures. Area lights do have an effect on the scene lighting - they are treated by the code as if they were one or two very wide spotlights with a falloff.

◆ Show_Area_Light()

void Show_Area_Light ( HC_KEY  key,
int *  ucount,
Point  upoints[],
char *  options 
)

Shows the points and options associated with the area light of the given key.

Parameters
HC_KEY- The key of the light you want to query
ucount- The number of points return in the upoints parameter
upoints- The point data associated with this area light
options- "front|back|both", which determines which side(s) of the polygon emit light
Returns