IDirect3DRMMaterial2

アプリケーションは、マテリアルオブジェクトと互いにやり取りするためにIDirect3DRMMaterial2インターフェイスのメソッドを使用する。

マテリアルでは、サーフェスがどのように光を反射するかを定義する。マテリアルには、放射プロパティ(光を放射するかどうか)と反射プロパティの2つの要素があり、その輝度は強度設定によって決まる。指数の値は反射するハイライトの鋭さを決め、5の値は金属の外観を与え、より大きい値はよりプラスチック的な外観を与える。

アプリケーションは、GetEmissiveSetEmissiveメソッドを使用してマテリアルの放射を、GetSpecularSetSpecularメソッドを使用して反射要素を、GetPowerSetPowerメソッドを使用して指数を制御することができる。

Microsoft DirectX version 6.0は、IDirect3DRMMaterial2インターフェイスを導入している。IDirect3DRMMaterial2は、マテリアルプロパティに対するより洗練された制御を可能にするGetAmbientSetAmbientメソッドを追加することで、それが置換する旧のIDirect3DRMMaterialインターフェイスを拡張する。IDirect3DRMMaterialについては、アンビエントカラーを修正することはできず、常に面の色と等しくなる。IDirect3DRMMaterial2オブジェクトは、SetAmbientが呼び出されるまで、オブジェクトの面の色をアンビエントカラーとして使用する。Direct3D保持モードインターフェイスの履歴については、「インターフェイスの変更点」を参照すること。

IDirect3DRMMaterial2インターフェイスのメソッドは、以下のグループにまとめることができる。
アンビエント GetAmbient
SetAmbient
放射 GetEmissive
SetEmissive
反射指数の GetPower
指数 SetPower
反射 GetSpecular
SetSpecular

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

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

Direct3DRMMaterialオブジェクトは、IDirect3DRM3::CreateMaterialメソッドの使用によって取得される。

IDirect3DRMMaterial2::GetAmbient

IDirect3DRMMaterial2

マテリアルの現在のアンビエント値を取得する。

構文

HRESULT GetAmbient(
LPD3DVALUE lpdvRed,
LPD3DVALUE lpdvGreen,
LPD3DVALUE lpdvBlue);

パラメータ

lpdvRed
アンビエントカラーの赤要素がセットされる。
lpdvGreen
アンビエントカラーの緑要素がセットされる。
lpdvBlue
アンビエントカラーの青要素がセットされる。

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMMaterial2::GetEmissive

IDirect3DRMMaterial2

マテリアルの放射プロパティの設定を取得する。このプロパティの設定は、色とオブジェクトが発散する光の指数を示す。

構文

HRESULT GetEmissive(
  D3DVALUE *lpr,
  D3DVALUE *lpg,
  D3DVALUE *lpb
  );

パラメータ

lpr, lpg, lpb
メソッドが制御を返すとき、放射の赤、緑、青の色要素を受け取るアドレス。

戻り値

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

参照

IDirect3DRMMaterial2::SetEmissive

IDirect3DRMMaterial2::GetPower

IDirect3DRMMaterial2

指定されたマテリアルでの反射指数の強度を取得する。

構文

D3DVALUE GetPower( );

戻り値

反射指数の指数を示す値を返す。

参照

IDirect3DRMMaterial2::SetPower

IDirect3DRMMaterial2::GetSpecular

IDirect3DRMMaterial2

マテリアルの反射ハイライトの色を取得する。

構文

HRESULT GetSpecular(
  D3DVALUE *lpr,
  D3DVALUE *lpg,
  D3DVALUE *lpb
  );

パラメータ

lpr, lpg, lpb
メソッドが制御を返すとき、反射ハイライトの赤、緑、青の色要素を受け取るアドレス。

戻り値

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

参照

IDirect3DRMMaterial2::SetSpecular

IDirect3DRMMaterial2::SetAmbient

IDirect3DRMMaterial2

マテリアルのアンビエント値を設定する。デフォルトは拡散色である。拡散色とは、サーフェスの乱反射する(つやのない)色のことである。

構文

HRESULT SetAmbient(
    D3DVALUE dvRed,
    D3DVALUE dvGreen,
    D3DVALUE dvBlue);

パラメータ

dvRed
アンビエントカラーの赤要素。
dvGreen
アンビエントカラーの緑要素。
dvBlue
アンビエントカラーの青要素。

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMMaterial2::SetEmissive

IDirect3DRMMaterial2

マテリアルの放射プロパティを設定する。

構文

HRESULT SetEmissive(
  D3DVALUE r,
  D3DVALUE g,
  D3DVALUE b
  );

パラメータ

r, g, b
放射の色の赤、緑、青要素。

戻り値

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

注意

このメソッドは、Direct3DRMMaterialInterpolatorオブジェクトに放射プロパティキーを追加するためにも使用する。

参照

IDirect3DRMMaterial2::GetEmissive

IDirect3DRMMaterial2::SetPower

IDirect3DRMMaterial2

マテリアルの反射指数の強度を設定する。

構文

HRESULT SetPower(
  D3DVALUE rvPower
  );

パラメータ

rvPower
新しい反射指数。

戻り値

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

注意

このメソッドは、Direct3DRMMaterialInterpolatorオブジェクトに反射指数キーを追加するためにも使用する。

参照

IDirect3DRMMaterial2::GetPower

IDirect3DRMMaterial2::SetSpecular

IDirect3DRMMaterial2

マテリアルの反射ハイライトの色を設定する。

構文

HRESULT SetSpecular(
  D3DVALUE r,
  D3DVALUE g,
  D3DVALUE b
  );

パラメータ

r, g, b
反射ハイライトの色の赤、緑、青の各要素。

戻り値

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

注意

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

参照

IDirect3DRMMaterial2::GetSpecular


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