PRIM POINT LIGHT: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
| Line 21: | Line 21: | ||
|text=When used with [[llSetPrimitiveParams]] & [[llSetLinkPrimitiveParams]] & [[llSetLinkPrimitiveParamsFast]] | |text=When used with [[llSetPrimitiveParams]] & [[llSetLinkPrimitiveParams]] & [[llSetLinkPrimitiveParamsFast]] | ||
|toc=llSetPrimitiveParams | |toc=llSetPrimitiveParams | ||
|i1_type=integer|i1_name=boolean | |i1_type=integer|i1_subtype=boolean|i1_name=boolean | ||
|i2_type=vector|i2_name=color | |i2_type=vector|i2_name=color | ||
|i3_type=float|i3_name=intensity | |i3_type=float|i3_name=intensity | ||
| Line 30: | Line 30: | ||
|text | |text | ||
|toc=llGetPrimitiveParams | |toc=llGetPrimitiveParams | ||
|r1_type=integer|r1_name=boolean | |r1_type=integer|r1_subtype=boolean|r1_name=boolean | ||
|r2_type=vector|r2_name=color | |r2_type=vector|r2_name=color | ||
|r3_type=float|r3_name=intensity | |r3_type=float|r3_name=intensity | ||
Revision as of 01:51, 23 December 2013
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Description
Constant: integer PRIM_POINT_LIGHT = 23;The integer constant PRIM_POINT_LIGHT has the value 23
PRIM_POINT_LIGHT is used to configure the point light configuration of the prim
llSetPrimitiveParams
[ PRIM_POINT_LIGHT, integer boolean, vector color, float intensity, float radius, float falloff ]| • integer | boolean | – | TRUE enables, FALSE disables | |
| • vector | color | – | color in RGB <R, G, B> (<0.0, 0.0, 0.0> = black, <1.0, 1.0, 1.0> = white) | |
| • float | intensity | – | ranges from 0.0 to 1.0 | |
| • float | radius | – | ranges from 0.1 to 20.0 | |
| • float | falloff | – | ranges from 0.01 to 2.0 |
When used with llSetPrimitiveParams & llSetLinkPrimitiveParams & llSetLinkPrimitiveParamsFast
llGetPrimitiveParams
llGetPrimitiveParams([ PRIM_POINT_LIGHT ]);Returns the list [ integer boolean, vector color, float intensity, float radius, float falloff ]
| • integer | boolean | – | TRUE enables, FALSE disables | |
| • vector | color | – | color in RGB <R, G, B> (<0.0, 0.0, 0.0> = black, <1.0, 1.0, 1.0> = white) | |
| • float | intensity | – | ranges from 0.0 to 1.0 | |
| • float | radius | – | ranges from 0.1 to 20.0 | |
| • float | falloff | – | ranges from 0.01 to 2.0 |
Caveats
- Viewers that do not have advanced lighting enabled can only render 6 lights at a time and projectors will be rendered as omnidirectional light sources. (OpenGL limitations allow for 8 light sources, SL appears to reserve one each for the Sun and Moon.)
- Viewers that do have advanced lighting enabled can render as many lights as their graphics card allows; it is not hard-limited by the viewer.
- Lights with a high intensity have a wash-out effect when overlapping. Keep this in mind when using multiple lights. Never create an abundance of lights to get around the 6 light maximum in basic lighting, as viewers with advanced lighting will be washed out and may suffer from client lag.
- There are no LSL functions that allow you to set projector values (texture, FOV, focus, and ambiance).
Related Articles
Constants
| • | CHANGED_SHAPE |
Functions
| • | llSetPrimitiveParams | |||
| • | llSetLinkPrimitiveParams | |||
| • | llGetPrimitiveParams |
Events
| • | changed |
Articles
| • | Color in LSL |
Examples
<lsl> // simple light source demonstrator // 8feb07 "tetsumo kuri" // thanks to squee janitor for line to dissect
integer light_s = TRUE; // "_s" for status
default {
state_entry()
{
// llSetText("click me",<1,0,0.6>,.5); // in case you like labels
}
touch_start(integer total_number)
{
if ( light_s )
{
light_s = FALSE;
// fullbright doesn't have anything to do with light in NEW(2006?) lighting model
// setting fullbright does look good though
llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,FALSE]);
llSetPrimitiveParams([PRIM_POINT_LIGHT, FALSE, // if this is false, light is off,
<0.0,1.0,0.0>,1.0, 10.0, 0.5]); // rest of params don't matter
}
else
{
light_s = TRUE;
//llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,TRUE]); //leave fullbright commented for now
llSetPrimitiveParams([PRIM_POINT_LIGHT,TRUE,
<1.0,0.7,1.0>, // light color vector range: 0.0-1.0 *3
1.0, // intensity (0.0-1.0)
10.0, // radius (.1-20.0)
0.6 ]); // falloff (.01-2.0)
// this could have been done in one line, like this
//llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,FALSE,PRIM_POINT_LIGHT,TRUE,<1.0,1.0,0.5>,20,1.0,0.5]);
// ... but thats kinda hard to take in...
}
//llSay(0, " Click!");
}
} </lsl>