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