From Second Life Wiki
Color in LSL
LSL has its own special format for color. LSL uses a vector to store color. Unlike traditional RGB where each channel is 0 -> 255, LSL's color channels are 0 -> 1.
Format: <R, G, B>
| • float
| x
| –
| Red value
| [0, 1]
|
| • float
| y
| –
| Green value
| [0, 1]
|
| • float
| z
| –
| Blue value
| [0, 1]
|
|
Examples
vector white = <1.0, 1.0, 1.0>;
vector grey = <0.5, 0.5, 0.5>;
vector black = <0.0, 0.0, 0.0>;
vector red = <1.0, 0.0, 0.0>;
vector green = <0.0, 1.0, 0.0>;
vector blue = <0.0, 0.0, 1.0>;
vector yellow = <1.0, 1.0, 0.0>;
vector cyan = <0.0, 1.0, 1.0>;
vector magenta = <1.0, 0.0, 1.0>;
|
Useful Snippets
Useful functions for storing/retrieving color and alpha values to/from integers
integer ColorAlphatoRGBA(vector color, float alpha) {
return (((integer)(alpha * 255.0) & 0xFF) << 24) |
(((integer)(color.x * 255.0) & 0xFF) << 16) |
(((integer)(color.y * 255.0) & 0xFF) << 8) |
((integer)(color.z * 255.0) & 0xFF);
}
vector RGBAtoColor(integer rgba) {
return < (rgba >> 16) & 0xFF, (rgba >> 8) & 0xFF, rgba & 0xFF > / 255.0;
}
float RGBAtoAlpha(integer rgba) {
return ((rgba >> 24) & 0xFF) / 255.0;
}
|
Articles in category "LSL Color"
There are 12 articles in this category.
a
C
c
G
|
G cont.
P
p
S
|
S cont.
|