Category:LSL Color

From Second Life Wiki
Revision as of 15:24, 9 November 2013 by Cerise Resident (talk | contribs) (match these up with the viewer definitions)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Color in LSL

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

<lsl>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>;</lsl>


color picker

Equivalent color vectors to the default color picker palette. These are defined in the viewer program directory's skins/default/colors.xml while custom user-saved palette entries will be in user_settings/colors.xml.

<lsl>vector black = <0,0,0>; //ColorPaletteEntry01, "Black" vector white_A = <1,1,1>; //ColorPaletteEntry17, "White" vector gray = <0.5,0.5,0.5>; //ColorPalettetEntry02, "Gray" vector light_gray = <0.75,0.75,0.75>; //ColorPaletteEntry18, "LtGray" vector dark_red = <0.5,0,0>; //ColorPaletteEntry03 vector red = <1,0,0>; //ColorPaletteEntry19, "Red" vector dark_yellow = <0.5,0.5,0>; //ColorPaletteEntry04 vector yellow = <1,0,0>; //ColorPaletteEntry20, "Yellow" vector dark_green = <0,0.5,0>; //ColorPaletteEntry05 vector green = <0,1,0>; //ColorPalettetEntry21, "Green" vector dark_cyan = <0,0.5,0.5>; //ColorPaletteEntry06 vector cyan = <0,1,1>; //ColorPaletteEntry22 vector dark_blue = <0,0,0.5>; //ColorPaletteEntry07 vector blue = <0,0,1>; //ColorPaletteEntry23, "Blue" vector dark_magenta = <0.5,0,0.5>; //ColorPaletteEntry08 vector magenta = <1,0,1>; //ColorPaletteEntry24, "Purple" vector dirty_yellow = <0.5,0.5,0>; //ColorPaletteEntry09 vector light_yellow = <1,1,0.5>; //ColorPaletteEntry25 vector dark_green_to_blue = <0,0.25,0.25>; //ColorPaletteEntry10 vector green_to_blue = <0,1,0.5>; //ColorPaletteEntry26 vector light_green_to_blue = <0,0.5,1>; //ColorPaletteEntry11 vector light_blue_to_green = <0.5,1,1>; //ColorPaletteEntry27 vector dark_blue_to_cyan = <0,0.25,0.5>; //ColorPaletteEntry12 vector cyan_to_pink = <0.5,0.5,1>; //ColorPaletteEntry28 vector indigo = <0.5,0,1>; //ColorPaletteEntry13 vector violet = <1,1,0.5>; //ColorPaletteEntry29white_C vector dark_brown = <0.5,0.25,0>; //ColorPaletteEntry14 vector brown = <1,0.5,0>; //ColorPaletteEntry30 vector white_B = <1,1,1>; //ColorPaletteEntry15, "White" vector white_C = <1,1,1>; //ColorPaletteEntry31 vector pale_yellow = <1,1,0.79>; //ColorPaletteEntry16, "LtYellow" vector white_D = <1,1,1>; //ColorPaletteEntry32, "White"

// Floating point conversions, ambient inworld light and color profile variances // can show up as small differences in stored settings and externally picked samples</lsl>

Useful Snippets

Useful functions for storing/retrieving color and alpha values to/from integers <lsl>integer ColorAlphatoRGBA(vector color, float alpha) {

   return (((integer)(alpha   * 255.0) & 0xFF) << 24)