PRIM POINT LIGHT/ja

From Second Life Wiki
Jump to navigation Jump to search

解説

定数: 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 の使用を検討してください。

JIRA で関連バグを検索する

関連記事

定数

•  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!");
    }
}

特記事項

この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)