Difference between revisions of "Category:LSL Color"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
{{LSL Header}} | {{LSL Header | ||
Color | }}{{#vardefine:header_title|Color in LSL | ||
}}{{#vardefine:header_text|LSL has it's 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.<br/> | |||
===Format: {{LSL VR|'''R'''|'''G'''|'''B'''}}=== | |||
{{{!}} | |||
{{LSL DefineRow|float|x|Red value|[0, 1]}} | |||
{{LSL DefineRow|float|y|Green value|[0, 1]}} | |||
{{LSL DefineRow|float|z|Blue value|[0, 1]}} | |||
{{!}}} | |||
}}{{#vardefine:helpers| | |||
< | ===Useful functions for storing/retrieving color and alpha values to/from integers=== | ||
<pre> | |||
< | 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) / 255.0, ((rgba >> 8) & 0xFF) / 255.0, (rgba & 0xFF) / 255.0 >; | |||
} | |||
float RGBAtoAlpha(integer rgba) { | |||
return ((rgba >> 24) & 0xFF) / 255.0; | |||
}</pre> | |||
}}{{#vardefine:examples| | |||
<pre> | |||
vector white = <1.0, 1.0, 1.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 grey = <0.5, 0.5, 0.5>; | |||
vector black = <0.0, 0.0, 0.0>; | |||
</pre> | |||
}}{{LSL Generic}} |
Revision as of 07:03, 1 March 2007
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Color in LSL
Color in LSLLSL has it's 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 red = <1.0, 0.0, 0.0>; vector green = <0.0, 1.0, 0.0>; vector blue = <0.0, 0.0, 1.0>; vector grey = <0.5, 0.5, 0.5>; vector black = <0.0, 0.0, 0.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) / 255.0, ((rgba >> 8) & 0xFF) / 255.0, (rgba & 0xFF) / 255.0 >; } float RGBAtoAlpha(integer rgba) { return ((rgba >> 24) & 0xFF) / 255.0; }
Pages in category "LSL Color"
The following 27 pages are in this category, out of 27 total.