IDirect3DRMFrame3メソッドN〜Z

この項は、IDirect3DRMFrame3インターフェイスのメソッドのうち、メソッド名がNからZのものをとりあげるリファレンスページである。

IDirect3DRMFrame3::RayPick

IDirect3DRMFrame3

このDirect3DRMFrame3オブジェクトを起点として階層を検索し、lpRefFrameパラメータによって指定される座標空間で、任意のビジュアルとdvPositiondvDirectionパラメータによって指定される光線との交差部分を計算する。

構文

HRESULT RayPick(
  LPDIRECT3DRMFRAME3 lpRefFrame,
  LPD3DRMRAY ray,
  DWORD dwFlags,
  LPD3DRMPICKED2ARRAY *lplpPicked2Array
  );

パラメータ

lpRefFrame
光線を格納するDirect3DRMFrame3オブジェクトのアドレス。
ray
2つのD3DVECTOR構造体を含むD3DRMRAY構造体へのポインタ。最初のD3DVECTOR構造体は、光線のベクトル方向である。二番目のD3DVECTOR構造体は、光線の原点の位置である。
dwFlags
以下のいずれかの値となる。
D3DRMRAYPICK_ONLYBOUNDINGBOXES − 階層中のビジュアルの境界ボックスのある交差部分だけが返される。正確な面の交差はチェックしない。
D3DRMRAYPICK_IGNOREFURTHERPRIMITIVES − 光線に交差する最も近いビジュアルだけが返される。それまでの検索中に発見された最も近いものより遠くにあるビジュアルを無視する。
D3DRMRAYPICK_INTERPOLATEUV − テクスチャ座標を補間する。
D3DRMRAYPICK_INTERPOLATECOLOR − 色を補間する。
D3DRMRAYPICK_INTERPOLATENORMAL − 法線を補間する。
lplpPicked2Array
IDirect3DRMPicked2Arrayインタフェースへの有効なポインタで初期化されるポインタのアドレス。IDirect3DRMPicked2Array::GetPickメソッドを使って、ビジュアルオブジェクト、IDirect3DRMFrameArrayインターフェイス、およびD3DRMPICKDESC2構造体を取得する。フレームの配列は階層を通過するパスで、光線に交差したビジュアルオブジェクトに到達する。D3DRMPICKDESC2構造体には、面やグループの識別子、ピックの位置、頂点の水平および垂直テクスチャ座標、頂点の法線および交差したオブジェクトの色が含まれる。

D3DRMRAYPICK_ONLYBOUNDINGBOXESを指定すると、D3DRMPICKDESC2構造体のテクスチャ、法線および色データは無効になる。

戻り値

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

注意

フラグには、最適化フラグと補間フラグの二種類がある。最適化フラグは、検索を制限することができ、したがってそれを高速にする。補間フラグは、プリミティブに行き当たったときに何を補間すべきか指定する。3つの補間選択肢は、色、法線およびテクスチャ座標である。

光線は、参照フレーム座標空間で指定される(lpRefFrameが指す)。参照フレームがNULLの場合には、光線は、ワールド座標で指定される。

IDirect3DRMFrame3::Save

IDirect3DRMFrame3

指定したファイルにDirect3DRMFrame2オブジェクトを保存する。

構文

HRESULT Save(
  LPCSTR lpFilename,
  D3DRMXOFFORMAT d3dFormat,
  D3DRMSAVEOPTIONS d3dSaveFlags
  );

パラメータ

lpFilename
作成したファイルの名前を指定するアドレス。このファイルは、.xファイル名拡張を持たなければならない。
d3dFormat
D3DRMXOFFORMAT列挙型からD3DRMXOF_TEXTの値。
d3dSaveFlags
保存オプションを記述するD3DRMSAVEOPTIONS型の値。

戻り値

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

IDirect3DRMFrame3::SetAxes

IDirect3DRMFrame3

IDirect3DRMFrame3::SetOrientationベクトルを変換する座標空間を定義するベクトルを設定する。

構文

HRESULT SetAxes(
  D3DVALUE dx,
  D3DVALUE dy,
  D3DVALUE dz,
  D3DVALUE ux,
  D3DVALUE uy,
  D3DVALUE uz
  );

パラメータ

dx, dy, dz
フレームのz軸。デフォルトは(0,0,1)である。
ux, uy, uz
フレームのy軸。デフォルトは(0,1,0)である。

戻り値

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

注意

このメソッドは、左手座標系と右手座標系の両方を支援する。また、負のz軸がオブジェクトの前面を表すように指定することも可能にする。

IDirect3DRMFrame3::SetOrientation方向ベクトル(rvDx, rvDy, rvDz)とアップベクトル(rvUx, rvUy, rvUz)は、SetAxesベクトルの値に従って変換される。

IDirect3DRMFrame3::SetInheritAxesに指定されているように、軸は子フレームによって継承される。

参照

IDirect3DRMFrame3::GetAxes, IDirect3DRMFrame3::GetInheritAxes, IDirect3DRMFrame3::SetInheritAxes

IDirect3DRMFrame3::SetBox

IDirect3DRMFrame3

境界ボックステストで使用するボックスを設定する。境界ボックスが有効であるためには、最小xは最大x以下でなければならず、最小yは最大y以下でなければならず、また最小zは最大z以下でなければならない。

構文

HRESULT SetBox(
  D3DRMBOX *lpD3DRMBox
  );

パラメータ

lpD3DRMBox
境界ボックス座標を含むD3DRMBOX構造体のアドレス。

戻り値

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

注意

このメソッドは、階層的選別に対するフレーム上の境界ボックスをサポートする。境界ボックスをイネーブルにするには、IDirect3DRMFrame3::SetBoxEnableメソッドを使って、イネーブルフラグにTRUEをセットしなければならない。デフォルトでは、ボックスイネーブルフラグはFALSEである。

参照

IDirect3DRMFrame3::GetBox, IDirect3DRMFrame3::SetBoxEnable, IDirect3DRMFrame3::GetBoxEnable

IDirect3DRMFrame3::SetBoxEnable

IDirect3DRMFrame3

このDirect3DRMFrame2オブジェクトに対して、境界ボックステストをイネーブルまたはディセーブルする。境界ボックステストをイネーブルにするには、有効な境界ボックスがフレームにすでに設定されていなければならない。

構文

HRESULT SetBoxEnable(
  BOOL bEnableFlag
  );

パラメータ

bEnableFlag
フラグは、境界ボックスがイネーブルかどうかを指定する。TRUEは、境界ボックスをイネーブルにする。境界ボックスがイネーブルでなければFALSE。デフォルトはFALSEである。

戻り値

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

注意

境界ボックスをイネーブルにするには、このメソッドを使ってイネーブルフラグにTRUEをセットしなければならない。デフォルトでは、ボックスイネーブルフラグはFALSEである。

境界ボックステストは、以下のように行う。レンダリング時には、境界ボックスはモデル空間に変換して、視錐台との交差部分がないか調べる。ボックス全体が視錐台の外にある場合、フレームや子フレームにあるビジュアルのレンダリングは行わない。それ以外の場合は、通常のレンダリングを続ける。

{0,0,0,0}のボックスで境界ボックステストをイネーブルすると、フレームはまったくレンダリングされない。

参照

IDirect3DRMFrame3::GetBoxEnable, IDirect3DRMFrame3::GetBox, IDirect3DRMFrame3::SetBox

IDirect3DRMFrame3::SetColor

IDirect3DRMFrame3

フレームの色を設定する。この色は、D3DRMMATERIALMODE列挙型がD3DRMMATERIAL_FROMFRAMEである場合に、フレーム中のメッシュに対して使用される。

構文

HRESULT SetColor(
  D3DCOLOR rcColor
  );

パラメータ

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

戻り値

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

注意

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

参照

IDirect3DRMFrame3::GetColor, IDirect3DRMFrame3::SetMaterialMode

IDirect3DRMFrame3::SetColorRGB

IDirect3DRMFrame3

フレームの色を設定する。この色は、D3DRMMATERIALMODE列挙型がD3DRMMATERIAL_FROMFRAMEである場合に、フレーム中のメッシュに対して使用される。

構文

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

パラメータ

rvRed, rvGreen, rvBlue
フレームの新しい色。色の各要素は、0.0から1.0の範囲にある必要がある。

戻り値

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

注意

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

参照

IDirect3DRMFrame3::SetMaterialMode

IDirect3DRMFrame3::SetInheritAxes

IDirect3DRMFrame3

フレームの軸が親フレームから継承したものであるかどうかを指定する。

構文

HRESULT SetInheritAxes(
  BOOL inherit_from_parent
  );

パラメータ

inherit_from_parent
フレームがその親から軸を継承するかどうかを示すフラグ。TRUEの場合、フレームは軸を継承する(デフォルト)。FALSEの場合、フレームは、軸を継承しない。

戻り値

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

注意

デフォルトでは、軸は親から継承したものである。フレームに親からの継承と設定されていて、親が存在しない場合には、フレームは、デフォルト軸(方向=(0,0,1)アップ=(0,1,0))を持つ親から継承したように動作する。このメソッドは、階層のルートで設定される軸の単一の方針を許す。

参照

IDirect3DRMFrame3::GetInheritAxes, IDirect3DRMFrame3::GetAxes, IDirect3DRMFrame3::SetAxes

IDirect3DRMFrame3::SetMaterial

IDirect3DRMFrame3

Direct3DRMFrame2オブジェクトのマテリアルを設定する。

構文

HRESULT SetMaterial(
  LPDIRECT3DRMMATERIAL2 *lplpMaterial
  );

パラメータ

lplpMaterial
フレームに適用されるDirect3DRMMaterialオブジェクトのアドレス。

戻り値

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

参照

IDirect3DRMFrame3::GetMaterial

IDirect3DRMFrame3::SetMaterialMode

IDirect3DRMFrame3

フレームのマテリアルモードを設定する。マテリアルモードは、フレームとレンダリングされるビジュアルのマテリアル情報のソースを決定する。

構文

HRESULT SetMaterialMode(
  D3DRMMATERIALMODE rmmMode
  );

パラメータ

rmmMode
D3DRMMATERIALMODE列挙型のメンバの1つ。

戻り値

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

参照

IDirect3DRMFrame3::GetMaterialMode

IDirect3DRMFrame3::SetMaterialOverride

IDirect3DRMFrame3

固有のマテリアル属性をセットできるようにする。たとえば、このメソッドはマテリアルの放射プロパティだけをオーバーライドできるようにする。

構文

HRESULT SetMaterialOverride(
  LPD3DRMMATERIALOVERRIDE lpdmOverride);

パラメータ

lpdmOverride
オーバーライドするプロパティを記述するD3DRMMATERIALOVERRIDE構造体へのポインタ。

戻り値

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

注意

オーバーライドでは、常に階層をたどってすべてがオーバーライドされる。あるフレームの放射プロパティをオーバーライドする場合、階層をさらにたどって同じプロパティをオーバーライドしようとしても無視される。このオーバーライドは、固有のメッシュ上のマテリアルプロパティだけでなく、標準フレームのオーバーライドよりも優先する。SetMaterialSetTextureなどのオーバーライドは、このメソッドの動作に対して何の効果も持たない。

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

参照

GetMaterialOverride

IDirect3DRMFrame3::SetOrientation

IDirect3DRMFrame3

z方向が方向ベクトル [rvDx, rvDy, rvDz] と同方向を指し、y方向がベクトル [rvUx, rvUy, rvUz] と同方向を指すようにフレームを整列する。

構文

HRESULT SetOrientation(
  LPDIRECT3DRMFRAME3 lpRef,
  D3DVALUE rvDx,
  D3DVALUE rvDy,
  D3DVALUE rvDz,
  D3DVALUE rvUx,
  D3DVALUE rvUy,
  D3DVALUE rvUz
  );

パラメータ

lpRef
参照フレームとして使用されるDirect3DRMFrameオブジェクトを表す変数のアドレス。これはNULLにすることができる。NULLの場合、メソッドは参照フレームの変換マトリックスではなく、ローカルの変換マトリックスを使う。
rvDx, rvDy, rvDz
フレームの新しいz軸。ベクトルの各要素は、-1.0から1.0の範囲にある必要がある。
rvUx, rvUy, rvUz
フレームの新しいy軸。ベクトルの各要素は、-1.0から1.0の範囲にある必要がある。

戻り値

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

注意

フレームのデフォルトの方向は、方向ベクトル [0, 0, 1] およびアップベクトル [0, 1, 0] を持つ。

[rvUx, rvUy, rvUz] が [rvDx, rvDy, rvDz] に平行な場合には、D3DRMERR_BADVALUEエラー値が戻る。そうでない場合には、渡された [rvUx, rvUy, rvUz] ベクトルは、[rvDx, rvDy, rvDz] に垂直なプレーンに投影される。

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

DirectX version 6.0以前では、SetOrientationはスケールとせん断について考慮していなかった。これは、DirectX version 6.0では修正されている。

次のコード部分は、SetOrientationを呼び出し、デフォルトの方向をセットする。これは、IDirect3DRM3::CreateFrameメソッドを使用して、カメラとシーンフレームがすでに作成されていることを前提としている。

LPDIRECT3DRMFRAME3 camera;
LPDIRECT3DRMFRAME3 scene;

if (FAILED(camera->SetOrientation(scene, D3DVAL(0), D3DVAL(0), D3DVAL(1),
                                  D3DVAL(0), D3DVAL(1), D3DVAL(0)))
{
    // エラー
}

参照

IDirect3DRMFrame3::GetOrientation

IDirect3DRMFrame3::SetPosition

IDirect3DRMFrame3

参照フレームを基準とするフレームの位置を設定する。フレームを参照フレームから[rvX, rvY, rvZ]の距離に置く。子フレームが親フレーム内に作成される場合、親フレームの[0, 0, 0]に置かれる。

構文

HRESULT SetPosition(
  LPDIRECT3DRMFRAME3 lpRef,
  D3DVALUE rvX,
  D3DVALUE rvY,
  D3DVALUE rvZ
  );

パラメータ

lpRef
参照フレームとして使用されるDirect3DRMFrameオブジェクトを表す変数のアドレス。これはNULLにすることができる。NULLの場合、メソッドは参照フレームの変換マトリックスではなく、ローカルの変換マトリックスを使う。
rvX, rvY, rvZ
フレームの新しい位置。位置は単位を持たない。視錐台を使用して、適正な数字を選択する。詳細については、「ビューポート」を参照すること。

戻り値

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

注意

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

次のコード部分は、SetPositionを呼び出す。これは、IDirect3DRM3::CreateFrameメソッドを使用して、カメラとシーンフレームがすでに作成されていることを前提としている。

LPDIRECT3DRMFRAME3 camera;
LPDIRECT3DRMFRAME3 scene;

if (FAILED(camera->SetPosition(scene, D3DVAL(0), D3DVAL(0), -D3DVAL(10)))
{
    // エラー
}

参照

IDirect3DRMFrame3::GetPosition

IDirect3DRMFrame3::SetQuaternion

IDirect3DRMFrame3

単位4元数を用いて、参照フレームに対してフレームの向きを設定する。

構文

HRESULT SetQuaternion(
  LPDIRECT3DRMFRAME3 lpRef,
  D3DRMQUATERNION *quat
  )

パラメータ

lpRef
参照として用いるDirect3DRMFrame2オブジェクトを表す変数のアドレス。これはNULLにすることができる。NULLの場合、メソッドは参照フレームの変換マトリックスではなく、ローカルの変換マトリックスを使う。
quat
単位4元数を保持するD3DRMQUATERNION構造体。

戻り値

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

注意

4元数とは、任意の回転を表すために用いられる四値ベクトルで、向きの間で補間を行うときに有用な特性を持っている。4元数は、s**2 + x**2 + y**2 + z**2 = 1であれば単位4元数である。

関数D3DRMQuaternionFromRotationは、任意の回転値から単位4元数を生成するときに用いる。

SetQuaternionメソッドは、FrameInterpolatorsによりサポートされている。インターポレータについての詳細は、「インターポレータ」を参照すること。

IDirect3DRMFrame3::SetRotation

IDirect3DRMFrame3

IDirect3DRM3::TickまたはIDirect3DRMFrame3::Moveメソッドに対する呼び出しごとに、指定のベクトルの周囲に指定の角度でフレームの回転を設定する。方向ベクトル [rvX, rvY, rvZ] は、参照フレームで定義される。

構文

HRESULT SetRotation(
  LPDIRECT3DRMFRAME3 lpRef,
  D3DVALUE rvX,
  D3DVALUE rvY,
  D3DVALUE rvZ,
  D3DVALUE rvTheta
  );

パラメータ

lpRef
参照フレームとして使用されるDirect3DRMFrameオブジェクトを表す変数のアドレス。これはNULLにすることができる。NULLの場合、メソッドは参照フレームの変換マトリックスではなく、ローカルの変換マトリックスを使う。
rvX, rvY, rvZ
回転の中心のベクトル。有効な値は、-1.0から1.0の範囲にある必要がある。
rvTheta
ラジアン単位の回転角。角度が大きければ大きいほど、オブジェクトの回転は速くなる。IDirect3DRMFrame3::MoveIDirect3DRM3::Tickメソッドが、この値をスケーリングする。

戻り値

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

注意

指定の回転は、フレーム中のオブジェクトを一度しか変更しないIDirect3DRMFrame3::AddRotationメソッドとは異なり、レンダリングごとに行列を変更する。

次のコード部分は、SetRotationを呼び出す。これは、IDirect3DRM3::CreateFrameメソッドを使用して、子とシーンフレームがすでに作成されていることを前提としている。

LPDIRECT3DRMFRAME3 child;
LPDIRECT3DRMFRAME3 scene;

if (FAILED(child->SetRotation(scene, D3DVAL(0), D3DVAL(1), D3DVAL(1), D3DVAL(0.02)))
{
    // エラー
}

参照

IDirect3DRMFrame3::AddRotation, IDirect3DRMFrame3::GetRotation

IDirect3DRMFrame3::SetSceneBackground

IDirect3DRMFrame3

シーンの背景色を設定する。

構文

HRESULT SetSceneBackground(
  D3DCOLOR rcColor
  );

パラメータ

rcColor
背景の新しい色。

戻り値

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

注意

このメソッドは、Direct3DRMFrameInterpolatorオブジェクトへの背景カラーキーを追加するためにも使われる。

IDirect3DRMFrame3::SetSceneBackgroundDepth

IDirect3DRMFrame3

シーンの背景深度バッファを指定する。

構文

HRESULT SetSceneBackgroundDepth(
  LPDIRECTDRAWSURFACE lpImage
  );

パラメータ

lpImage
シーンの新しい背景深度を保存するDirectDrawサーフェスのアドレス。

戻り値

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

注意

イメージはピクセル単位の深度16を持たなければならない。イメージとビューポートのサイズが異なると、はじめにイメージのスケーリングを行う。背景深度バッファをアニメートするときに最適なパフォーマンスを得るには、イメージはビューポートと同じサイズでなければならない。そうすると、余分なオーバーヘッドなしに、深度バッファはイメージメモリから直接更新することができる。

参照

IDirect3DRMFrame3::GetSceneBackgroundDepth

IDirect3DRMFrame3::SetSceneBackgroundImage

IDirect3DRMFrame3

シーンの背景イメージを指定する。

構文

HRESULT SetSceneBackgroundImage(
  LPDIRECT3DRMTEXTURE3 lpTexture
  );

パラメータ

lpTexture
新しい背景シーンを含むDirect3DRMTextureオブジェクトのアドレス。

戻り値

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

注意

イメージのサイズまたはカラー深度がビューポートと異なる場合、まずイメージのスケーリングを行うか、正しい深度に変換する。背景をアニメートするときに最適なパフォーマンスを得るには、イメージはビューポートと同じサイズおよびカラー深度でなければならない。そうすると、余分なオーバーヘッドなしに、直接イメージメモリから背景のレンダリングを行うことができる。

IDirect3DRMFrame3::SetSceneBackgroundRGB

IDirect3DRMFrame3

シーンの背景色を設定する。

構文

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

パラメータ

rvRed, rvGreen, rvBlue
背景の新しい色。色の各要素は、0.0から1.0の範囲にある必要がある。

戻り値

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

注意

このメソッドは、Direct3DRMFrameInterpolatorオブジェクトに背景RGBカラーキーを追加するためにも用いられる。

IDirect3DRMFrame3::SetSceneFogColor

IDirect3DRMFrame3

シーンのフォグ色を設定する。

構文

HRESULT SetSceneFogColor(
  D3DCOLOR rcColor
  );

パラメータ

rcColor
フォグの新しい色。

戻り値

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

注意

このメソッドは、Direct3DRMRFrameInterpolatorオブジェクトにフォグカラーキーを追加するためにも用いられる。

IDirect3DRMFrame3::SetSceneFogEnable

IDirect3DRMFrame3

フォグイネーブル状態を設定する。

構文

HRESULT SetSceneFogEnable(
  BOOL bEnable
  );

パラメータ

bEnable
新しいフォグイネーブル状態。

戻り値

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

IDirect3DRMFrame3::SetSceneFogMethod

IDirect3DRMFrame3

頂点フォグまたはテーブルフォグを介してフォグを実行するかどうかを指定する。

構文

HRESULT SetSceneFogMethod(
  DWORD dwFlags);

パラメータ

dwFlags
現在定義されているフラグは、次の通りである。
D3DRMFOGMETHOD_ANY
Direct3D保持モードが適用可能なメソッドを選択することを示す。
D3DRMFOGMETHOD_VERTEX
頂点フォグを使用する。
D3DRMFOGMETHOD_TABLE
テーブルフォグを使用する。

戻り値

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

注意

IDirect3DRM3インターフェイスによって作成されるDirect3DRMFrameオブジェクトのデフォルトの動作はD3DRMFOGMETHOD_ANYであり、フォグメソッドはデバイスの機能に基づいて選択される。デバイスが頂点とテーブルを基準とした両方のフォグをサポートする場合、頂点フォグが使用される。アプリケーションでテーブルフォグが要求されたが、テーブルフォグが使用可能でない場合も、頂点フォグが使用される。IDirect3DRMまたはIDirect3DRM2インターフェイスによって作成されるDirect3DRMFrameオブジェクトの動作は、D3DRMFOGMETHOD_VERTEXである。

注意

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

IDirect3DRMFrame3::SetSceneFogMode

IDirect3DRMFrame3

フォグモードを設定する。

構文

HRESULT SetSceneFogMode(
  D3DRMFOGMODE rfMode
  );

パラメータ

rfMode
D3DRMFOGMODE列挙型のメンバの1つで、新しいフォグモードを指定する。

戻り値

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

参照

IDirect3DRMFrame3::SetSceneFogParams

IDirect3DRMFrame3::SetSceneFogParams

IDirect3DRMFrame3

このシーンの現在のフォグパラメータを設定する。

構文

HRESULT SetSceneFogParams(
  D3DVALUE rvStart,
  D3DVALUE rvEnd,
  D3DVALUE rvDensity
  );

パラメータ

rvStart, rvEnd
線形フォグモードのフォグ開始および終了ポイント。この設定は、フォグ効果が最初に見えるようになるときのカメラからの距離と、フォグが最大密度になるときの距離を決める。
rvDensity
指数フォグモードでのフォグ密度。この値は、0から1の値でなければならない。

戻り値

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

注意

このメソッドは、Direct3DRMRFrameInterpolatorオブジェクトにフォグパラメータキーを追加するためにも用いられる。

参照

D3DRMFOGMODE, IDirect3DRMFrame3::SetSceneFogMode

IDirect3DRMFrame3::SetSortMode

IDirect3DRMFrame3

子フレームを処理するのに使用するソートモードを設定する。このメソッドを使用して隠面削除アルゴリズムのプロパティを変更することができる。

構文

HRESULT SetSortMode(
  D3DRMSORTMODE d3drmSM
  );

パラメータ

d3drmSM
ソートモードを指定するD3DRMSORTMODE列挙型のメンバの1つ。デフォルト値は、D3DRMSORT_FROMPARENTである。

戻り値

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

参照

IDirect3DRMFrame3::GetSortMode

IDirect3DRMFrame3::SetTexture

IDirect3DRMFrame3

フレームのテクスチャを設定する。

構文

HRESULT SetTexture(
  LPDIRECT3DRMTEXTURE3 lpD3DRMTexture
  );

パラメータ

lpD3DRMTexture
使用するDirect3DRMTextureオブジェクトを表す変数のアドレス。

戻り値

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

注意

このテクスチャは、D3DRMMATERIALMODE列挙型がD3DRMMATERIAL_FROMFRAMEである場合にフレーム中のメッシュに対して使用される。フレームのテクスチャをディセーブルにするには、NULLテクスチャを使用する。

参照

IDirect3DRMFrame3::GetTexture, IDirect3DRMFrame3::SetMaterialMode

IDirect3DRMFrame3::SetTraversalOptions

IDirect3DRMFrame3

レンダリングとピッキングの際にこのフレームを横断するかどうかを指定する。すなわち、D3DRMFRAME_RENDERENABLEの値なしでこのAPIを使用すると、レンダリングに対してフレームが効率的にオフに切り換わる。デフォルトでは、フレームはレンダリングとピッキングに対して有効になる。

構文

HRESULT SetTraversalOptions
(DWORD dwFlags);

パラメータ

dwFlags
現在定義されているフラグは、次の通りである。
D3DRMFRAME_RENDERENABLE
このフレームまたはその子フレームをレンダリングすることを示す。
D3DRMFRAME_PICKENABLE
このフレームまたはその子フレーム中の、任意のビジュアルをピックすることを示す。

戻り値

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

注意

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

IDirect3DRMFrame3::SetVelocity

IDirect3DRMFrame3

参照フレームを基準として指定のフレームの速度を設定するフレームは、IDirect3DRM3::TickまたはIDirect3DRMFrame3::Moveメソッドに対する連続呼び出しごとに、参照フレームを基準として [rvX, rvY, rvZ] ベクトル分だけ移動する。

構文

HRESULT SetVelocity(
  LPDIRECT3DRMFRAME3 lpRef,
  D3DVALUE rvX,
  D3DVALUE rvY,
  D3DVALUE rvZ,
  BOOL fRotVel
  );

パラメータ

lpRef
参照フレームとして使用されるDirect3DRMFrameオブジェクトを表す変数のアドレス。これはNULLにすることができる。NULLの場合、メソッドは参照フレームの変換マトリックスではなく、ローカルの変換マトリックスを使う。
rvX, rvY, rvZ
フレームの新しい速度。回転速度は単位を持たず、任意の値をセットできる。IDirect3DRMFrame3::MoveIDirect3DRM3::Tickメソッドは、この値をスケーリングする。
fRotVel
直線速度を設定するときに、オブジェクトの回転速度を考慮するかどうかを指定するフラグ。TRUEの場合、オブジェクトの回転速度が計算に含まれる。

戻り値

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

参照

IDirect3DRMFrame3::GetVelocity

IDirect3DRMFrame3::SetZbufferMode

IDirect3DRMFrame3

Zバッファモードを設定する。すなわち、Zバッファリングをイネーブルまたはディセーブルにするかを設定する。

構文

HRESULT SetZbufferMode(
  D3DRMZBUFFERMODE d3drmZBM
  );

パラメータ

d3drmZBM
Zバッファモードを指定するD3DRMZBUFFERMODE列挙型のメンバの1つ。デフォルト値はD3DRMZBUFFER_FROMPARENTである。

戻り値

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

参照

IDirect3DRMFrame3::GetZbufferMode

IDirect3DRMFrame3::Transform

IDirect3DRMFrame3

モデル座標lpd3dVSrcパラメータ中のベクトルを変換し、その結果をワールド座標lpd3dVDstパラメータに返す。

構文

HRESULT Transform(
  D3DVECTOR *lpd3dVDst,
  D3DVECTOR *lpd3dVSrc
  );

パラメータ

lpd3dVDst
変換操作の結果がセットされるD3DVECTOR構造体のアドレス。
lpd3dVSrc
変換操作のソースであるD3DVECTOR構造体のアドレス。

戻り値

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

参照

IDirect3DRMFrame3::InverseTransform, 「3D変換

IDirect3DRMFrame3::TransformVectors

IDirect3DRMFrame3

ベクトルの配列を、モデルからワールド空間に変換する。

構文

HRESULT TransformVectors(
  LPDIRECT3DRMFRAME3 lpRefFrame,
  DWORD dwNumVectors,
  LPD3DVECTOR lpDstVectors,
  LPD3DVECTOR lpSrcVectors);

パラメータ

lpRefFrame
この呼び出しのためにシーンのルートとして使用されるフレーム。この引数がNULLの場合、現在のルートフレーム(GetSceneが返すフレーム)が使用される。
dwNumVectors
変換する必要のあるベクトル数。
lpDstVectors
変換の出力先。
lpSrcVectors
変換するベクトルの配列。

戻り値

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

注意

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


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