PRIM POINT LIGHT/ja

From Second Life Wiki
< PRIM POINT LIGHT
Revision as of 07:50, 12 April 2010 by Mako Nozaki (talk | contribs) (new created)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 での色

サンプル

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

} </lsl>

特記事項

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