IDirect3DRMLight

アプリケーションは、照明と互いにやり取りするためにIDirect3DRMLightインターフェイスのメソッドを使用する。このセクションは、IDirect3DRMLightインターフェイスメソッドのリファレンスである。概念については、「照明」を参照すること。

IDirect3DRMLightインターフェイスのメソッドは、以下のグループにまとめることができる。
減衰 GetConstantAttenuation
GetLinearAttenuation
GetQuadraticAttenuation
SetConstantAttenuation
SetLinearAttenuation
SetQuadraticAttenuation
GetColor
SetColor
SetColorRGB
有効フレーム GetEnableFrame
SetEnableFrame
照明タイプ GetType
SetType
範囲 GetRange
SetRange
スポット照明オプション GetPenumbra
GetUmbra
SetPenumbra
SetUmbra

すべてのCOMインターフェイスと同様、IDirect3DRMLightインターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは、以下の3つのメソッドをサポートする。
AddRef
QueryInterface
Release

さらに、IDirect3DRMLightインターフェイスは、IDirect3DRMObjectインターフェイスから次のメソッドを継承する。
AddDestroyCallback
Clone
DeleteDestroyCallback
GetAppData
GetClassName
GetName
SetAppData
SetName

Direct3DRMLightオブジェクトは、IDirect3DRM3::CreateLightおよびIDirect3DRM3::CreateLightRGBメソッドの呼び出しによって取得される。

IDirect3DRMLight::GetColor

IDirect3DRMLight

現在のDirect3DRMLightオブジェクトの色を取得する。

構文

D3DCOLOR GetColor( );

戻り値

色を返す。

参照

IDirect3DRMLight::SetColor

IDirect3DRMLight::GetConstantAttenuation

IDirect3DRMLight

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である。

参照

IDirect3DRMLight::SetConstantAttenuation

IDirect3DRMLight::GetEnableFrame

IDirect3DRMLight

照明を設定するのに有効フレームを取得する。

構文

HRESULT GetEnableFrame(
  LPDIRECT3DRMFRAME *lplpEnableFrame
  );

パラメータ

lplpEnableFrame
現在のDirect3DRMFrameオブジェクトの有効フレームを受け取るポインタへのポインタ。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMLight::SetEnableFrame

IDirect3DRMLight::GetLinearAttenuation

IDirect3DRMLight

照明の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である。

参照

IDirect3DRMLight::SetLinearAttenuation

IDirect3DRMLight::GetPenumbra

IDirect3DRMLight

スポットライト暗影部の角度を取得する。

構文

D3DVALUE GetPenumbra( );

戻り値

暗影部の値を返す。

注意

詳細は、「照明」の「スポットライト」を参照すること。

参照

IDirect3DRMLight::SetPenumbra

IDirect3DRMLight::GetQuadraticAttenuation

IDirect3DRMLight

照明の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である。

参照

IDirect3DRMLight::SetQuadraticAttenuation

IDirect3DRMLight::GetRange

IDirect3DRMLight

現在のDirect3DRMLightオブジェクトの範囲を取得する。

構文

D3DVALUE GetRange( );

戻り値

範囲を示す値を返す。

参照

IDirect3DRMLight::SetRange

IDirect3DRMLight::GetType

IDirect3DRMLight

指定された照明のタイプを取得する。

構文

D3DRMLIGHTTYPE GetType( );

戻り値

D3DRMLIGHTTYPE列挙型のメンバの1つを返す。

参照

IDirect3DRMLight::SetType

IDirect3DRMLight::GetUmbra

IDirect3DRMLight

Direct3DRMLightオブジェクトの明部の角度を取得する。デフォルトは、0.4ラジアンである。

構文

D3DVALUE GetUmbra( );

戻り値

明部の角度を返す。

注意

詳細については、「照明」の「スポットライト」を参照すること。

参照

IDirect3DRMLight::SetUmbra

IDirect3DRMLight::SetColor

IDirect3DRMLight

指定された照明の色を設定する。

構文

HRESULT SetColor(
  D3DCOLOR rcColor
  );

パラメータ

rcColor
照明の新しい色。赤、緑、青の色要素だけでなく、アルファ要素も必ずセットする。そうしないと、オブジェクトが可視にならないことがある。RGBA_MAKE DirectXマクロによってこれらの値を指定することができる。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、Direct3DRMLightInterpolatorオブジェクトにRGBカラーキーを追加するためにも使用する。

参照

IDirect3DRMLight::GetColor

IDirect3DRMLight::SetColorRGB

IDirect3DRMLight

指定された照明の色をR, B, Gそれぞれの値で設定する。

構文

HRESULT SetColorRGB(
  D3DVALUE rvRed,
  D3DVALUE rvGreen,
  D3DVALUE rvBlue
  );

パラメータ

rvRed, rvGreen, rvBlue
照明の新しい色。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、Direct3DRMLightInterpolatorオブジェクトにRGBカラーキーを追加するためにも使用する。

IDirect3DRMLight::SetConstantAttenuation

IDirect3DRMLight

照明の減衰係数を設定する。

構文

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オブジェクトに減衰定数キーを追加するためにも使用する。

参照

IDirect3DRMLight::GetConstantAttenuation

IDirect3DRMLight::SetEnableFrame

IDirect3DRMLight

照明の有効フレームを設定する。

構文

HRESULT SetEnableFrame(
  LPDIRECT3DRMFRAME lpEnableFrame
  );

パラメータ

lpEnableFrame
照明の有効フレームへのポインタ。このフレームには親フレームと同様の照明となる。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMLight::GetEnableFrame

IDirect3DRMLight::SetLinearAttenuation

IDirect3DRMLight

照明の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オブジェクトに線形減衰定数キーを追加するためにも使用する。

参照

IDirect3DRMLight::GetLinearAttenuation

IDirect3DRMLight::SetPenumbra

IDirect3DRMLight

円錐の暗影部の角度をセットする。

構文

HRESULT SetPenumbra(
  D3DVALUE rvAngle
  );

パラメータ

rvAngle
ラジアン単位の新しい暗影部の角度。この角度は暗部の角度より大きいか、等しくなくてはいけない。暗影部の角度を明部の角度よりも小さく設定した場合、暗影部は明部と同じ角度になる。デフォルト値は0.5ラジアンである。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、Direct3DRMLightInterpolatorオブジェクトに影角度キーを追加するためにも使用する。

詳細については、「照明」の「スポットライト」を参照すること。

参照

IDirect3DRMLight::GetPenumbra

IDirect3DRMLight::SetQuadraticAttenuation

IDirect3DRMLight

照明の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次減衰キーを追加するためにも使用する。

参照

IDirect3DRMLight::GetQuadraticAttenuation

IDirect3DRMLight::SetRange

IDirect3DRMLight

スポットライトの範囲を設定する。この照明は、範囲内にあるオブジェクトに限り影響する。

構文

HRESULT SetRange(
  D3DVALUE rvRange
  );

パラメータ

rvRange
新しい範囲。デフォルト値は、256モデル空間単位である。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

範囲プロパティは、スポットライトだけのものである。このメソッドは、Direct3DRMLightInterpolatorオブジェクトに範囲キーを追加するためにも使用する。

参照

IDirect3DRMLight::GetRange

IDirect3DRMLight::SetType

IDirect3DRMLight

照明のタイプを変更する。

構文

HRESULT SetType(
  D3DRMLIGHTTYPE d3drmtType
  );

パラメータ

d3drmtType
新しい照明タイプをD3DRMLIGHTTYPE列挙型のメンバの1つで指定する。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMLight::GetType

IDirect3DRMLight::SetUmbra

IDirect3DRMLight

円錐の明部の角度を設定する。

構文

HRESULT SetUmbra(
  D3DVALUE rvAngle
  );

パラメータ

rvAngle
ラジアン単位の新しい明部の角度。この角度は、暗影部の角度よりも小さいか、等しくなくてはいけない。明部の角度を暗影部の角度より大きく設定した場合、明部は暗影部と同じ角度となる。デフォルト値は0.4ラジアンである。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、Direct3DRMLightInterpolatorオブジェクトに影角度キーを追加するためにも使用する。

詳細については、「照明」の「スポットライト」を参照すること。

参照

IDirect3DRMLight::GetUmbra


トップに戻る トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.