PRIM POINT LIGHT/ja
		
		
		
		
		
		Jump to navigation
		Jump to search
		 
     
JIRA で関連バグを検索する
     
		
	
| LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル | 
解説
定数: integer PRIM_POINT_LIGHT = 23;integer 定数 PRIM_POINT_LIGHT の値は 23 です。 
PRIM_POINT_LIGHT はプリムのポイント光の設定を調整するために使用されます。
llSetPrimitiveParams
[ PRIM_POINT_LIGHT, integer boolean, vector color, float intensity, float radius, float falloff ]| • integer | boolean | – | TRUE ならば有効 、 FALSE ならば無効 | |
| • vector | color | – | RGB の色 <R, G, B> (<0.0, 0.0, 0.0> = 黒, <1.0, 1.0, 1.0> = 白) | |
| • float | intensity | – | 0.0 から 1.0 の範囲 | |
| • float | radius | – | 0.1 から 20.0 の範囲 | |
| • float | falloff | – | 0.01 から 2.0 の範囲 | 
When used with llSetPrimitiveParams & llSetLinkPrimitiveParams
llGetPrimitiveParams
llGetPrimitiveParams([ PRIM_POINT_LIGHT ]);[ integer boolean, vector color, float intensity, float radius, float falloff ] のリストを返します。
| • integer | boolean | – | TRUE ならば有効 、 FALSE ならば無効 | |
| • vector | color | – | RGB の色 <R, G, B> (<0.0, 0.0, 0.0> = 黒, <1.0, 1.0, 1.0> = 白) | |
| • float | intensity | – | 0.0 から 1.0 の範囲 | |
| • float | radius | – | 0.1 から 20.0 の範囲 | |
| • float | falloff | – | 0.01 から 2.0 の範囲 | 
警告
光源は極力節約すようにしてください!Second Life ビューアは一度に 6 個以上描画することができません。また、それぞれの光源は描画ラグの原因となります。(OpenGL では 8 個まで可能ですが、SL はそれぞれを太陽と月のためによけておいているようです。)
複数の光源の効果をシミュレートしたい場合は、代わりに GLOW または FULL_BRIGHT の使用を検討してください。
関連記事
定数
| • | CHANGED_SHAPE | 
関数
| • | llSetPrimitiveParams | |||
| • | llSetLinkPrimitiveParams | |||
| • | llGetPrimitiveParams | 
イベント
| • | changed | 
記事
| • | LSL での色 | 
サンプル
// 簡単な光源のデモ
// 8feb07 "tetsumo kuri"
// thanks to squee janitor for line to dissect
integer light_s = TRUE;     //  "_s" はステータスを示します
default
{
    state_entry()
    {
      //  llSetText("click me",<1,0,0.6>,.5);  // ラベルが好きな人のために
    }
    touch_start(integer total_number)
    {
        if ( light_s )
        { 
            light_s = FALSE;
            // フルブライトは新しい(2006年版?)光モデルに何も関係ありません。
            // しかし、見栄えをよくするためにフルブライトにしています。
            llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,FALSE]);
              
            llSetPrimitiveParams([PRIM_POINT_LIGHT, FALSE,   // これが FALSE なら、光はオフです。
                                     <0.0,1.0,0.0>,1.0, 10.0, 0.5]); // 他のパラメタは関係ありません。
        }            
        else
        {
            light_s = TRUE;
            //llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,TRUE]);   //フルブライトはとりあえずコメントアウト
            llSetPrimitiveParams([PRIM_POINT_LIGHT,TRUE,
                                    <1.0,0.7,1.0>,  // 色のベクトル値の範囲: 0.0-1.0 *3
                                    1.0,            // 輝度         (0.0-1.0)
                                    10.0,           // 半径         (.1-20.0)
                                    0.6 ]);         // 弱まる       (.01-2.0)
                
            // これは1行で済ませることができなくもないです。このように。
            //llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,FALSE,PRIM_POINT_LIGHT,TRUE,<1.0,1.0,0.5>,20,1.0,0.5]);
            //      ... だけどなんだか見づらいです ...       
        }
        //llSay(0, " Click!");
    }
}