Difference between revisions of "Category:LSL Color/ja"

From Second Life Wiki
Jump to: navigation, search
(移動)
 
Line 1: Line 1:
#Redirect [[:Category:LSL ]]
+
{{Multi-lang}}
 +
{{LSL Header/ja|ml=*}}
 +
{{LSLC/ja|}}
 +
 
 +
{{#vardefine:header_title|Color in LSL
 +
}}{{#vardefine:header_text|LSLは自身が特別な色の形式を持っています。LSLは色の記憶に[[vector/ja|vector]]を使用します。伝統的なRGB各チャンネルの0から255のようなものではなく、LSLのカラーチャンネルは0から1です。<br/>
 +
===形式: {{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|
 +
===色とアルファを(から)integerへ(に)記憶(回収)するための応用しやすい関数です===
 +
<source lang="lsl2">
 +
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;
 +
}</source>
 +
}}{{#vardefine:examples|
 +
<source lang="lsl2">
 +
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>;
 +
 
 +
 
 +
</source>
 +
}}{{LSL Generic/ja}}{{LSLC/ja|Face|Color}}

Latest revision as of 09:48, 18 December 2015


Color in LSL

Color in LSL

LSLは自身が特別な色の形式を持っています。LSLは色の記憶にvectorを使用します。伝統的なRGB各チャンネルの0から255のようなものではなく、LSLのカラーチャンネルは0から1です。

形式: <R, G, B>

• float x Red value [0, 1]
• float y Green value [0, 1]
• float z Blue value [0, 1]

サンプル

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

便利なスニペット

色とアルファを(から)integerへ(に)記憶(回収)するための応用しやすい関数です

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;
}