この項は、IDirect3DRMFrame3インターフェイスのメソッドのうち、メソッド名がNからZのものをとりあげるリファレンスページである。
このDirect3DRMFrame3オブジェクトを起点として階層を検索し、lpRefFrameパラメータによって指定される座標空間で、任意のビジュアルとdvPosition、dvDirectionパラメータによって指定される光線との交差部分を計算する。
構文
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の場合には、光線は、ワールド座標で指定される。
指定したファイルにDirect3DRMFrame2オブジェクトを保存する。
構文
HRESULT Save(
LPCSTR lpFilename,
D3DRMXOFFORMAT d3dFormat,
D3DRMSAVEOPTIONS d3dSaveFlags
);
パラメータ
- lpFilename
- 作成したファイルの名前を指定するアドレス。このファイルは、.xファイル名拡張を持たなければならない。
- d3dFormat
- D3DRMXOFFORMAT列挙型からD3DRMXOF_TEXTの値。
- d3dSaveFlags
- 保存オプションを記述するD3DRMSAVEOPTIONS型の値。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
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
境界ボックステストで使用するボックスを設定する。境界ボックスが有効であるためには、最小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
このDirect3DRMFrame2オブジェクトに対して、境界ボックステストをイネーブルまたはディセーブルする。境界ボックステストをイネーブルにするには、有効な境界ボックスがフレームにすでに設定されていなければならない。
構文
HRESULT SetBoxEnable(
BOOL bEnableFlag
);
パラメータ
- bEnableFlag
- フラグは、境界ボックスがイネーブルかどうかを指定する。TRUEは、境界ボックスをイネーブルにする。境界ボックスがイネーブルでなければFALSE。デフォルトはFALSEである。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
境界ボックスをイネーブルにするには、このメソッドを使ってイネーブルフラグにTRUEをセットしなければならない。デフォルトでは、ボックスイネーブルフラグはFALSEである。
境界ボックステストは、以下のように行う。レンダリング時には、境界ボックスはモデル空間に変換して、視錐台との交差部分がないか調べる。ボックス全体が視錐台の外にある場合、フレームや子フレームにあるビジュアルのレンダリングは行わない。それ以外の場合は、通常のレンダリングを続ける。
{0,0,0,0}のボックスで境界ボックステストをイネーブルすると、フレームはまったくレンダリングされない。
参照
IDirect3DRMFrame3::GetBoxEnable, IDirect3DRMFrame3::GetBox, IDirect3DRMFrame3::SetBox
フレームの色を設定する。この色は、D3DRMMATERIALMODE列挙型がD3DRMMATERIAL_FROMFRAMEである場合に、フレーム中のメッシュに対して使用される。
構文
HRESULT SetColor(
D3DCOLOR rcColor
);
パラメータ
- rcColor
- フレームの新しい色。赤、緑、青の色要素だけでなく、アルファ要素も必ずセットする。そうしないと、オブジェクトが可視にならないことがある。RGBA_MAKE DirectXマクロによって、これらの値を指定することができる。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、カラーキーをDIRECT3DRMFRAMEINTERPOLATORオブジェクトに追加するためにも使用する。
参照
IDirect3DRMFrame3::GetColor, IDirect3DRMFrame3::SetMaterialMode
フレームの色を設定する。この色は、D3DRMMATERIALMODE列挙型がD3DRMMATERIAL_FROMFRAMEである場合に、フレーム中のメッシュに対して使用される。
構文
HRESULT SetColorRGB(
D3DVALUE rvRed,
D3DVALUE rvGreen,
D3DVALUE rvBlue
);
パラメータ
- rvRed, rvGreen, rvBlue
- フレームの新しい色。色の各要素は、0.0から1.0の範囲にある必要がある。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、RGBカラーキーをDIRECT3DRMFRAMEINTERPOLATORオブジェクトに追加するためにも使用する。
参照
フレームの軸が親フレームから継承したものであるかどうかを指定する。
構文
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
Direct3DRMFrame2オブジェクトのマテリアルを設定する。
構文
HRESULT SetMaterial(
LPDIRECT3DRMMATERIAL2 *lplpMaterial
);
パラメータ
- lplpMaterial
- フレームに適用されるDirect3DRMMaterialオブジェクトのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
フレームのマテリアルモードを設定する。マテリアルモードは、フレームとレンダリングされるビジュアルのマテリアル情報のソースを決定する。
構文
HRESULT SetMaterialMode(
D3DRMMATERIALMODE rmmMode
);
パラメータ
- rmmMode
- D3DRMMATERIALMODE列挙型のメンバの1つ。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
固有のマテリアル属性をセットできるようにする。たとえば、このメソッドはマテリアルの放射プロパティだけをオーバーライドできるようにする。
構文
HRESULT SetMaterialOverride( LPD3DRMMATERIALOVERRIDE lpdmOverride);
パラメータ
- lpdmOverride
- オーバーライドするプロパティを記述するD3DRMMATERIALOVERRIDE構造体へのポインタ。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
オーバーライドでは、常に階層をたどってすべてがオーバーライドされる。あるフレームの放射プロパティをオーバーライドする場合、階層をさらにたどって同じプロパティをオーバーライドしようとしても無視される。このオーバーライドは、固有のメッシュ上のマテリアルプロパティだけでなく、標準フレームのオーバーライドよりも優先する。SetMaterialとSetTextureなどのオーバーライドは、このメソッドの動作に対して何の効果も持たない。
このメソッドは、DirectX version 6.0とともに導入された。
参照
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))) { // エラー }
参照
参照フレームを基準とするフレームの位置を設定する。フレームを参照フレームから[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))) { // エラー }
参照
単位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によりサポートされている。インターポレータについての詳細は、「インターポレータ」を参照すること。
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::MoveとIDirect3DRM3::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
シーンの背景色を設定する。
構文
HRESULT SetSceneBackground(
D3DCOLOR rcColor
);
パラメータ
- rcColor
- 背景の新しい色。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、Direct3DRMFrameInterpolatorオブジェクトへの背景カラーキーを追加するためにも使われる。
シーンの背景深度バッファを指定する。
構文
HRESULT SetSceneBackgroundDepth(
LPDIRECTDRAWSURFACE lpImage
);
パラメータ
- lpImage
- シーンの新しい背景深度を保存するDirectDrawサーフェスのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
イメージはピクセル単位の深度16を持たなければならない。イメージとビューポートのサイズが異なると、はじめにイメージのスケーリングを行う。背景深度バッファをアニメートするときに最適なパフォーマンスを得るには、イメージはビューポートと同じサイズでなければならない。そうすると、余分なオーバーヘッドなしに、深度バッファはイメージメモリから直接更新することができる。
参照
シーンの背景イメージを指定する。
構文
HRESULT SetSceneBackgroundImage(
LPDIRECT3DRMTEXTURE3 lpTexture
);
パラメータ
- lpTexture
- 新しい背景シーンを含むDirect3DRMTextureオブジェクトのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
イメージのサイズまたはカラー深度がビューポートと異なる場合、まずイメージのスケーリングを行うか、正しい深度に変換する。背景をアニメートするときに最適なパフォーマンスを得るには、イメージはビューポートと同じサイズおよびカラー深度でなければならない。そうすると、余分なオーバーヘッドなしに、直接イメージメモリから背景のレンダリングを行うことができる。
シーンの背景色を設定する。
構文
HRESULT SetSceneBackgroundRGB(
D3DVALUE rvRed,
D3DVALUE rvGreen,
D3DVALUE rvBlue
);
パラメータ
- rvRed, rvGreen, rvBlue
- 背景の新しい色。色の各要素は、0.0から1.0の範囲にある必要がある。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、Direct3DRMFrameInterpolatorオブジェクトに背景RGBカラーキーを追加するためにも用いられる。
シーンのフォグ色を設定する。
構文
HRESULT SetSceneFogColor(
D3DCOLOR rcColor
);
パラメータ
- rcColor
- フォグの新しい色。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、Direct3DRMRFrameInterpolatorオブジェクトにフォグカラーキーを追加するためにも用いられる。
フォグイネーブル状態を設定する。
構文
HRESULT SetSceneFogEnable(
BOOL bEnable
);
パラメータ
- bEnable
- 新しいフォグイネーブル状態。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
頂点フォグまたはテーブルフォグを介してフォグを実行するかどうかを指定する。
構文
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とともに導入された。
フォグモードを設定する。
構文
HRESULT SetSceneFogMode(
D3DRMFOGMODE rfMode
);
パラメータ
- rfMode
- D3DRMFOGMODE列挙型のメンバの1つで、新しいフォグモードを指定する。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
このシーンの現在のフォグパラメータを設定する。
構文
HRESULT SetSceneFogParams(
D3DVALUE rvStart,
D3DVALUE rvEnd,
D3DVALUE rvDensity
);
パラメータ
- rvStart, rvEnd
- 線形フォグモードのフォグ開始および終了ポイント。この設定は、フォグ効果が最初に見えるようになるときのカメラからの距離と、フォグが最大密度になるときの距離を決める。
- rvDensity
- 指数フォグモードでのフォグ密度。この値は、0から1の値でなければならない。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、Direct3DRMRFrameInterpolatorオブジェクトにフォグパラメータキーを追加するためにも用いられる。
参照
子フレームを処理するのに使用するソートモードを設定する。このメソッドを使用して隠面削除アルゴリズムのプロパティを変更することができる。
構文
HRESULT SetSortMode(
D3DRMSORTMODE d3drmSM
);
パラメータ
- d3drmSM
- ソートモードを指定するD3DRMSORTMODE列挙型のメンバの1つ。デフォルト値は、D3DRMSORT_FROMPARENTである。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
フレームのテクスチャを設定する。
構文
HRESULT SetTexture(
LPDIRECT3DRMTEXTURE3 lpD3DRMTexture
);
パラメータ
- lpD3DRMTexture
- 使用するDirect3DRMTextureオブジェクトを表す変数のアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このテクスチャは、D3DRMMATERIALMODE列挙型がD3DRMMATERIAL_FROMFRAMEである場合にフレーム中のメッシュに対して使用される。フレームのテクスチャをディセーブルにするには、NULLテクスチャを使用する。
参照
IDirect3DRMFrame3::GetTexture, IDirect3DRMFrame3::SetMaterialMode
レンダリングとピッキングの際にこのフレームを横断するかどうかを指定する。すなわち、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とともに導入された。
参照フレームを基準として指定のフレームの速度を設定するフレームは、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::MoveとIDirect3DRM3::Tickメソッドは、この値をスケーリングする。
- fRotVel
- 直線速度を設定するときに、オブジェクトの回転速度を考慮するかどうかを指定するフラグ。TRUEの場合、オブジェクトの回転速度が計算に含まれる。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
Zバッファモードを設定する。すなわち、Zバッファリングをイネーブルまたはディセーブルにするかを設定する。
構文
HRESULT SetZbufferMode(
D3DRMZBUFFERMODE d3drmZBM
);
パラメータ
- d3drmZBM
- Zバッファモードを指定するD3DRMZBUFFERMODE列挙型のメンバの1つ。デフォルト値はD3DRMZBUFFER_FROMPARENTである。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
モデル座標のlpd3dVSrcパラメータ中のベクトルを変換し、その結果をワールド座標のlpd3dVDstパラメータに返す。
構文
HRESULT Transform(
D3DVECTOR *lpd3dVDst,
D3DVECTOR *lpd3dVSrc
);
パラメータ
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
ベクトルの配列を、モデルからワールド空間に変換する。
構文
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.