アプリケーションは、照明と互いにやり取りするためにIDirect3DRMLightインターフェイスのメソッドを使用する。このセクションは、IDirect3DRMLightインターフェイスメソッドのリファレンスである。概念については、「照明」を参照すること。
IDirect3DRMLightインターフェイスのメソッドは、以下のグループにまとめることができる。
すべてのCOMインターフェイスと同様、IDirect3DRMLightインターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは、以下の3つのメソッドをサポートする。
AddRef |
QueryInterface |
Release |
さらに、IDirect3DRMLightインターフェイスは、IDirect3DRMObjectインターフェイスから次のメソッドを継承する。
AddDestroyCallback |
Clone |
DeleteDestroyCallback |
GetAppData |
GetClassName |
GetName |
SetAppData |
SetName |
Direct3DRMLightオブジェクトは、IDirect3DRM3::CreateLightおよびIDirect3DRM3::CreateLightRGBメソッドの呼び出しによって取得される。
現在のDirect3DRMLightオブジェクトの色を取得する。
構文
D3DCOLOR GetColor( );
戻り値
色を返す。
参照
Direct3DRMLightオブジェクトの減衰定数を取得する。
構文
D3DVALUE GetConstantAttenuation( );
戻り値
減衰定数を返す。
注意
位置を持つ(無限に遠くない)照明には減衰定数があり、光源からの距離に基づいて照明の減衰を計算できる。
使用される照明の減衰公式は、D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされているかどうかに依存する。このフラグは、IDirect3DRMDevice3::SetRenderMode中にセットされている。
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされている場合、次の公式が照明の減衰に使用される。
- 距離正規化の公式は次の通りである。
normalized_distance = (distance_from_light - light_range)/light_range
light_rangeのデフォルト値は、256モデル空間単位である。
全減衰係数の公式は次の通りである。
constant_attenuation_factor + normalized_distance * linear_attenuation_factor + (normalized_distance**2) * quadratic_attenuation_factor
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされていない場合、次の公式が照明の減衰に使用される。
- 1 / [constant_attenuation_factor + distance * linear_attenuation_factor + (distance**2) * quadratic_attenuation_factor]
全減衰係数は1より大きくならない。
減衰係数が指定されないと、デフォルト値は、減衰定数に対しては1.0、線形減衰係数に対しては0.0、二次減衰係数に対しては0.0である。
参照
照明を設定するのに有効フレームを取得する。
構文
HRESULT GetEnableFrame(
LPDIRECT3DRMFRAME *lplpEnableFrame
);
パラメータ
- lplpEnableFrame
- 現在のDirect3DRMFrameオブジェクトの有効フレームを受け取るポインタへのポインタ。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
照明の1次減衰係数を取得する。
構文
D3DVALUE GetLinearAttenuation( );
戻り値
1次減衰係数を返す。
注意
位置を持つ(無限に遠くない)照明には減衰定数があり、光源からの距離に基づいて照明の減衰を計算できる。
使用される照明の減衰公式は、D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされているかどうかに依存する。このフラグは、IDirect3DRMDevice3::SetRenderMode中にセットされている。
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされている場合、次の公式が照明の減衰に使用される。
- 距離正規化の公式は次の通りである。
normalized_distance = (distance_from_light - light_range)/light_range
light_rangeのデフォルト値は、256モデル空間単位である。
全減衰係数の公式は次の通りである。
constant_attenuation_factor + normalized_distance * linear_attenuation_factor + (normalized_distance**2) * quadratic_attenuation_factor
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされていない場合、次の公式が照明の減衰に使用される。
- 1 / [constant_attenuation_factor + distance * linear_attenuation_factor + (distance**2) * quadratic_attenuation_factor]
全減衰係数は1より大きくならない。
減衰係数が指定されないと、デフォルト値は、減衰定数に対しては1.0、線形減衰係数に対しては0.0、2次減衰係数に対しては0.0である。
参照
スポットライトの暗影部の角度を取得する。
構文
D3DVALUE GetPenumbra( );
戻り値
暗影部の値を返す。
注意
参照
照明の2次減衰係数を取得する。
構文
D3DVALUE GetQuadraticAttenuation( );
戻り値
2次減衰係数を返す。
注意
位置を持つ(無限に遠くない)照明には減衰定数があり、照明からの距離に基づいて照明の減衰を計算できる。
使用される照明の減衰公式は、D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされているかどうかに依存する。このフラグは、IDirect3DRMDevice3::SetRenderMode中にセットされている。
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされている場合、次の公式が照明の減衰に使用される。
- 距離正規化の公式は次の通りである。
normalized_distance = (distance_from_light - light_range)/light_range
light_rangeのデフォルト値は、256モデル空間単位である。
全減衰係数の公式は次の通りである。
constant_attenuation_factor + normalized_distance * linear_attenuation_factor + (normalized_distance**2) * quadratic_attenuation_factor
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされていない場合、次の公式が照明の減衰に使用される。
- 1 / [constant_attenuation_factor + distance * linear_attenuation_factor + (distance**2) * quadratic_attenuation_factor]
全減衰係数は1より大きくならない。
減衰係数が指定されないと、デフォルト値は、減衰定数に対しては1.0、線形減衰係数に対しては0.0、2次減衰係数に対しては0.0である。
参照
現在のDirect3DRMLightオブジェクトの範囲を取得する。
構文
D3DVALUE GetRange( );
戻り値
範囲を示す値を返す。
参照
指定された照明のタイプを取得する。
構文
D3DRMLIGHTTYPE GetType( );
戻り値
D3DRMLIGHTTYPE列挙型のメンバの1つを返す。
参照
Direct3DRMLightオブジェクトの明部の角度を取得する。デフォルトは、0.4ラジアンである。
構文
D3DVALUE GetUmbra( );
戻り値
明部の角度を返す。
注意
参照
指定された照明の色を設定する。
構文
HRESULT SetColor(
D3DCOLOR rcColor
);
パラメータ
- rcColor
- 照明の新しい色。赤、緑、青の色要素だけでなく、アルファ要素も必ずセットする。そうしないと、オブジェクトが可視にならないことがある。RGBA_MAKE DirectXマクロによってこれらの値を指定することができる。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、Direct3DRMLightInterpolatorオブジェクトにRGBカラーキーを追加するためにも使用する。
参照
指定された照明の色をR, B, Gそれぞれの値で設定する。
構文
HRESULT SetColorRGB(
D3DVALUE rvRed,
D3DVALUE rvGreen,
D3DVALUE rvBlue
);
パラメータ
- rvRed, rvGreen, rvBlue
- 照明の新しい色。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、Direct3DRMLightInterpolatorオブジェクトにRGBカラーキーを追加するためにも使用する。
照明の減衰係数を設定する。
構文
HRESULT SetConstantAttenuation(
D3DVALUE rvAtt
);
パラメータ
- rvAtt
- 新しい減衰定数。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
位置を持つ(無限に遠くない)照明には減衰定数があり、照明からの距離に基づいて照明の減衰を計算できる。
使用される照明の減衰公式は、D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされているかどうかに依存する。このフラグは、IDirect3DRMDevice3::SetRenderMode中にセットされている。
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされている場合、次の公式が照明の減衰に使用される。
- 距離正規化の公式は次の通りである。
normalized_distance = (distance_from_light - light_range)/light_range
light_rangeのデフォルト値は、256モデル空間単位である。
全減衰係数の公式は次の通りである。
constant_attenuation_factor + normalized_distance * linear_attenuation_factor + (normalized_distance**2) * quadratic_attenuation_factor
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされていない場合、次の公式が照明の減衰に使用される。
- 1 / [constant_attenuation_factor + distance * linear_attenuation_factor + (distance**2) * quadratic_attenuation_factor]
全減衰係数は1より大きくならない。
減衰係数が指定されないと、デフォルト値は、減衰定数に対しては1.0、線形減衰係数に対しては0.0、2次減衰係数に対しては0.0である。
このメソッドは、Direct3DRMLightInterpolatorオブジェクトに減衰定数キーを追加するためにも使用する。
参照
照明の有効フレームを設定する。
構文
HRESULT SetEnableFrame(
LPDIRECT3DRMFRAME lpEnableFrame
);
パラメータ
- lpEnableFrame
- 照明の有効フレームへのポインタ。このフレームには親フレームと同様の照明となる。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
照明の1次減衰係数を設定する。
構文
HRESULT SetLinearAttenuation(
D3DVALUE rvAtt
);
パラメータ
- rvAtt
- 新しい線形減衰係数。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
位置を持つ(無限に遠くない)照明には減衰定数があり、照明からの距離に基づいて照明の減衰を計算できる。
使用される照明の減衰公式は、D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされているかどうかに依存する。このフラグは、IDirect3DRMDevice3::SetRenderMode中にセットされている。
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされている場合、次の公式が照明の減衰に使用される。
- 距離正規化の公式は次の通りである。
normalized_distance = (distance_from_light - light_range)/light_range
light_rangeのデフォルト値は、256モデル空間単位である。
全減衰係数の公式は次の通りである。
constant_attenuation_factor + normalized_distance * linear_attenuation_factor + (normalized_distance**2) * quadratic_attenuation_factor
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされていない場合、次の公式が照明の減衰に使用される。
- 1 / [constant_attenuation_factor + distance * linear_attenuation_factor + (distance**2) * quadratic_attenuation_factor]
全減衰係数は1より大きくならない。
減衰係数が指定されないと、デフォルト値は、減衰定数に対しては1.0、線形減衰係数に対しては0.0、2次減衰係数に対しては0.0である。
このメソッドは、Direct3DRMLightInterpolatorオブジェクトに線形減衰定数キーを追加するためにも使用する。
参照
円錐の暗影部の角度をセットする。
構文
HRESULT SetPenumbra(
D3DVALUE rvAngle
);
パラメータ
- rvAngle
- ラジアン単位の新しい暗影部の角度。この角度は暗部の角度より大きいか、等しくなくてはいけない。暗影部の角度を明部の角度よりも小さく設定した場合、暗影部は明部と同じ角度になる。デフォルト値は0.5ラジアンである。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、Direct3DRMLightInterpolatorオブジェクトに影角度キーを追加するためにも使用する。
参照
照明の2次減衰係数を設定する。
構文
HRESULT SetQuadraticAttenuation(
D3DVALUE rvAtt
);
パラメータ
- rvAtt
- 新しい2次減衰係数。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
位置を持つ(無限に遠くない)照明には減衰定数があり、照明からの距離に基づいて照明の減衰を計算できる。
使用される照明の減衰公式は、D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされているかどうかに依存する。このフラグは、IDirect3DRMDevice3::SetRenderMode中にセットされている。
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされている場合、次の公式が照明の減衰に使用される。
- 距離正規化の公式は次の通りである。
normalized_distance = (distance_from_light - light_range)/light_range
light_rangeのデフォルト値は、256モデル空間単位である。
全減衰係数の公式は次の通りである。
constant_attenuation_factor + normalized_distance * linear_attenuation_factor + (normalized_distance**2) * quadratic_attenuation_factor
D3DRMRENDERMODE_VIEWDEPENDENTSPECULARフラグがセットされていない場合、次の公式が照明の減衰に使用される。
- 1 / [constant_attenuation_factor + distance * linear_attenuation_factor + (distance**2) * quadratic_attenuation_factor]
全減衰係数は1より大きくならない。
減衰係数が指定されないと、デフォルト値は、減衰定数に対しては1.0、線形減衰係数に対しては0.0、2次減衰係数に対しては0.0である。
このメソッドは、Direct3DRMLightInterpolatorオブジェクトに2次減衰キーを追加するためにも使用する。
参照
スポットライトの範囲を設定する。この照明は、範囲内にあるオブジェクトに限り影響する。
構文
HRESULT SetRange(
D3DVALUE rvRange
);
パラメータ
- rvRange
- 新しい範囲。デフォルト値は、256モデル空間単位である。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
範囲プロパティは、スポットライトだけのものである。このメソッドは、Direct3DRMLightInterpolatorオブジェクトに範囲キーを追加するためにも使用する。
参照
照明のタイプを変更する。
構文
HRESULT SetType(
D3DRMLIGHTTYPE d3drmtType
);
パラメータ
- d3drmtType
- 新しい照明タイプをD3DRMLIGHTTYPE列挙型のメンバの1つで指定する。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
円錐の明部の角度を設定する。
構文
HRESULT SetUmbra(
D3DVALUE rvAngle
);
パラメータ
- rvAngle
- ラジアン単位の新しい明部の角度。この角度は、暗影部の角度よりも小さいか、等しくなくてはいけない。明部の角度を暗影部の角度より大きく設定した場合、明部は暗影部と同じ角度となる。デフォルト値は0.4ラジアンである。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、Direct3DRMLightInterpolatorオブジェクトに影角度キーを追加するためにも使用する。
参照
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.