User:Auryn Beorn/How to get a valid LSL color
Any color is always a combination of Red, Green and Blue values. Usually, these values go from 0 to 255. The higher the value, the more you have of that component. They're usually written it this order: R, G, B.
To mention a few examples:
<255, 0, 0> RED <255, 255, 0> YELLOW (= RED + GREEN) <128, 128, 128> GRAY 50% <0, 128, 0> GREEN 50% <0, 0, 0> BLACK <255, 255, 255> WHITE
But scripts in SL need this written in a very specific way. We need to convert this. Scripts expect the numbers in a different range, so instead of writing, an example, the color red like this:
<255, 0, 0>
the three numbers have to be within the range from 0 to 1, so the color red would be written as follows:
<1, 0, 0>
What do we do, then, when we have a RGB code for a color we like, to "translate it" to LSL (the scripting language)?
We have to take the RGB, like here: 255, 255, 0 Put the three numbers between < and > and separate by commas:
<255, 255, 0>
and then we have to divide the three numbers by 255, so we get:
<255/255, 255/255, 0/255>
which gives as result:
<1.0, 1.0, 0.0>
So, in general, once we have the values for R, G and B, we need to "translate" them to LSL, which expects the color as a vector, <R, G, B>, but values for R, G and B have to be from 0 to 1. So, if we have values from 0 to 255, to convert them into 0 to 1, we need to divide them by 255.
This is, we have <R, G, B>, being R, G and B from 0 to 255, as usual, so LSL needs that we perform the following operation:
<R/255.0, G/255.0, B/255.0>
for the definitive values for the color.
There are a lot of resources in the web to find the RGB components of a color. The two following links are good resources for this:
- http://www.allprofitallfree.com/color-wheel2.html
- http://www.ficml.org/jemimap/style/color/wheel.html
EXAMPLE: Let's suppose we have the blue tone <6, 172, 255>, as it will be written with the standard 0-255 range for RGB.
To convert this <6, 172, 255> to a valid color for LSL, we have to perform the following calculation:
<6.0/255, 172.0/255, 255.0/255>
which means that the value we'll use for the color will be:
<0.023529, 0.67451, 1.0>
(Yes, we could leave it as <6.0/255, 172.0/255, 255.0/255>, but it's better if we save the script to do unnecessary calculations.)
The colors mentioned above will also be written this way:
<1.0, 0.0, 0.0> RED <1.0, 1.0, 0.0> YELLOW (= RED + GREEN) <0.5, 0.5, 0.5> GRAY 50% <0.0, 0.5, 0.0> GREEN 50% <0.0, 0.0, 0.0> BLACK <1.0, 1.0, 1.0> WHITE