TSXLight

タスク

 TSXLightオブジェクトは、一個のライトの設定についての便宜を図ります

 TSXLightGroupオブジェクトが内部で生成します。ユーザーが自分でCreateしないで下さい。

 

リファレンス目次

プロパティ

有効・無効 Enabled
パラメータ Params

 

メソッド

SetupDiffuse
SetupSpecular
SetupAmbient
SetupColors
向き SetupRanges
光源の特性 SetupDirectional
SetupPoint
SetupSpot
フレームとの連携 FitFrame
その他 BeginUpdate
EndUpdate

 

リファレンス〜プロパティ

Enabled

Enabled : Boolean;

 ライトの有効・無効を指定します。

 デフォルトではFalseなので、必ず光源のうち一つ以上をTrueにするのを忘れないで下さい(^^;)

 

Params

Params:D3DLIGHT7;

 光源についてのパラメータが格納されています。

 基本的に、このパラメータを操作すれば、光源の状態に関しては全て制御可能です。

 このパラメータを操作した後、EndUpdateメソッドを呼べば、Direct3Dに捜査の結果を反映します。

 

リファレンス〜メソッド

SetupDiffuse

procedure SetupDiffuse (_R,_G,_B:Single);

 光源の拡散反射に対する色を設定します。

 

SetupSpecular

procedure SetupSpecular(_R,_G,_B:Single);

 光源の鏡面反射に対する色を設定します。


SetupAmbient

procedure SetupAmbient (_R,_G,_B:Single);

 環境光の色を設定します。


SetupColors

procedure SetupColors(difR,difG,difB, specR,specG,specB, ambR,ambG,ambB:Single);

 上記3つの色をまとめて設定します。

 difR, difG, difB で、光源の拡散反射に対する色
 specR, specG, specBで、光源の鏡面反射に対する色
 ambR, ambG, ambB で、環境光の色

 を、それぞれ設定します。


SetupRanges

procedure SetupRanges(range, att0,att1,att2:Single);

 光の届く範囲についての設定を行います。

 rangeを超える距離には光が届かなくなります。

 att1, att2, att3 は、それぞれ減衰の仕方に関するパラメータです。詳しくはDirectX9 SDKをご覧下さい。


SetupDirectional

procedure SetupDirectional(dir:D3DVector);

 光源を、平行光源にします。

 dirで光源の向きを設定します。


SetupPoint

procedure SetupPoint(pos:D3DVector);

 光源を、点光源にします。

 posで、光源の位置を設定します。


SetupSpot

procedure SetupSpot(pos,dir:D3DVector; theta,phi,falloff:Single);

 光源を、スポットライトにします。

 posで光源の位置、dirで光源の向きを指定します。

 また、thetaで光の強さが減衰し始める角度を、phiで光の強さが完全に無くなる角度をそれぞれラジアンで指定します。

 falloffで、減衰具合に関する係数を指定します。1.0が基準値で、値が小さいほど「最初はゆっくり、だんだんきつめ」の変化をし、値が大きいほど「最初はきつめ、だんだんゆっくり」型の変化になります。詳しくはDirectX9 SDKのヘルプをどうぞ


FitFrame

procedure FitFrame(target:TSXFrame);

 targetで示されるフレームの位置・向きに、ライトのパラメータを設定します。


BeginUpdate

procedure BeginUpdate;

 Direct3Dに変更の結果を伝えなくなります。

 一連のSetup〜メソッドを呼ぶ前に、このメソッドを実行し、その後EndUpdateメソッドを呼ぶことで、内部的なDirect3Dのメソッド呼び出しに伴うオーバーヘッドを低減します。


EndUpdate

procedure EndUpdate;

 ParamsプロパティとDirect3Dの設定を一致させます。

 Paramsプロパティを操作した後には、必ず呼んでください。