IDirect3DRMMesh

アプリケーションは、IDirect3DRMMeshインターフェイスのメソッドを使用して、メッシュのグループと会話する。メッシュは、ポリゴン面のセットから構成されるビジュアルオブジェクトである。メッシュは、頂点のセットと面のセット (面はメッシュの頂点と法線によって定義される) を定義する。いくつかの面が使用している頂点または法線を変更すると、それを共有するすべての面の外観が変わる。

メッシュの頂点はメッシュ中の面の位置を定義し、これらを使用してテクスチャマップ内の2D座標を定義することもできる。

IDirect3DRMMeshIDirect3DRMMeshBuilder3を使用して、保持モードでメッシュを操作することができる。

アプリケーションで、同じ特性 (マテリアル、テクスチャなど) をいくつかの頂点または面に割り当てる必要がある場合、IDirect3DRMMeshインターフェイスを使用して、これらを1つのグループにまとめることができる。アプリケーションが2つの異なるグループ間で頂点を共有する必要がある場合 (たとえば、メッシュ中の隣接する面の色が異なる場合)、頂点は両方のグループに重複していなければならない。IDirect3DRMMesh::AddGroupメソッドは、グループ識別子を面の集合に割り当てる。この識別子を使用して、後続の呼び出しでグループを参照する。

IDirect3DRMMeshBuilder3IDirect3DRMMeshインターフェイスによって、アプリケーションは3つ以上の側面を持つ面を作成することができる。たとえば、アプリケーションがレンダリングしているハードウェアに64Kの制限があり、メッシュがそのサイズを超えている場合、これらはメッシュを自動的に複数のバッファに分割する。これらの機能は、Direct3DRMMeshとDirect3DRMMeshBuilder3 APIをDirect3D APIから切り離してセットする。

IDirect3DRMMesh::SetGroupColorSetGroupColorRGBSetGroupTextureおよびSetGroupMaterialメソッドを使用して、メッシュの各面またはメッシュのすべての面に対して同時に、個別の色、テクスチャ、マテリアルプロパティを定義することができる。

レンダリングするメッシュについては、IDirect3DRMFrame3::AddVisualメソッドを使用して、最初にフレームに追加しなければならない。単一のメッシュを複数のフレームに追加して、そのメッシュの複数のインスタンスを作成することができる。

IDirect3DRMMesh::SetGroupQualityメソッドに対する呼び出しで指定されたように、アプリケーションは、フラット、グーロー、フォンシェードモードを使用することができる (しかし、フォンシェーディングはまだ利用可能ではない)。このメソッドは、D3DRMRENDERQUALITY列挙型の値を使用する。シェーディングモードの詳細については、「ポリゴン」を参照すること。

IDirect3DRMMeshインターフェイスのメソッドは、以下のグループにまとめることができる。
GetGroupColor
SetGroupColor
SetGroupColorRGB
作成と AddGroup
情報 GetBox
GetGroup
GetGroupCount
マテリアル GetGroupMaterial
SetGroupMaterial
その他 Scale
Translate
レンダリングクオリティ GetGroupQuality
SetGroupQuality
テクスチャマッピング GetGroupMapping
SetGroupMapping
テクスチャ GetGroupTexture
SetGroupTexture
頂点の位置 GetVertices
SetVertices

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

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

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

IDirect3DRMMesh::AddGroup

IDirect3DRMMesh

面の集まりをグループ化し、そのグループの識別子を取得する。メッシュに最初に追加されるグループのインデックスは、常に0である。以降のグループのインデックスは、それぞれ1ずつ増加する。

構文

HRESULT AddGroup(
  unsigned vCount,
  unsigned fCount,
  unsigned vPerFace,
  unsigned *fData,
  D3DRMGROUPINDEX *returnId
  );

パラメータ

vCount, fCount
グループに含まれる頂点と面の数。
vPerFace
すべての面が同じ数の頂点を持つ場合、面当たりの頂点の数。グループ中の面が持つ頂点の数が一定でないときは、このパラメータに0を指定しなくてはならない。
fData
面データのアドレス。vPerFaceパラメータに値が設定されている場合、このデータは単に、グループの頂点配列へのインデックスリストである。vPerFaceが0のときは、頂点インデックスよりも、その面の頂点の数を示す整数値を優先しなくてはならない。たとえば、vPerFaceが0で、グループを構成する面が三角形と四角形である場合、データは次のようになる。[ 3, インデックス, インデックス, インデックス, 4, インデックス, インデックス, インデックス, インデックス, 3, インデックス, インデックス, インデックス, ...]
returnId
メソッドが制御を返すとき、グループの識別子を受け取る変数へのポインタ。

戻り値

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

注意

新しく追加されたグループには、以下のデフォルトのプロパティが与えられる。

頂点の位置を設定するには、IDirect3DRMMesh::SetVerticesメソッドを使用する。

IDirect3DRMMesh::GetBox

IDirect3DRMMesh

Direct3DRMMeshオブジェクトを含む方形範囲を取得する。方形範囲は、それぞれの次元のモデル座標の最小値と最大値を示す。

構文

HRESULT GetBox(
  D3DRMBOX *lpD3DRMBox
  );

パラメータ

lpD3DRMBox
境界ボックス座標を受け取るD3DRMBOX構造体。

戻り値

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

IDirect3DRMMesh::GetGroup

IDirect3DRMMesh

指定されたグループに関連付けられているデータを取得する。

構文

HRESULT GetGroup(
  D3DRMGROUPINDEX id,
  unsigned *vCount,
  unsigned *fCount,
  unsigned *vPerFace,
  DWORD *fDataSize,
  unsigned *fData
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使用して生成されたものでなくてはならない。
vCount, fCount
メソッドが制御を返すとき、グループの頂点の数と面の数を受け取る変数のアドレス。これらのパラメータにはNULLを指定することができる。
vPerFace
メソッドが制御を返すとき、面当たりの頂点の数を受け取る変数のアドレス。これらのパラメータにはNULLを指定することができる。
fDataSize
fDataパラメータが指すバッファの中の、符号なし要素の数を示す変数のアドレス。このパラメータにNULLを指定することはできない。
fData
メソッドが制御を返すとき、グループの面データを格納するバッファのアドレス。このデータの形式は、IDirect3DRMMesh::AddGroupメソッドの呼び出しで指定したものと同じである。このパラメータがNULLのとき、必要なバッファのサイズがfDataSizeパラメータに返される。

戻り値

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

IDirect3DRMMesh::GetGroupColor

IDirect3DRMMesh

グループの色を取得する。

構文

D3DCOLOR GetGroupColor(
  D3DRMGROUPINDEX id
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。

戻り値

成功すれば、色を示すD3DCOLOR値を返す。失敗すれば0を返す。

参照

IDirect3DRMMesh::SetGroupColor, IDirect3DRMMesh::SetGroupColorRGB

IDirect3DRMMesh::GetGroupCount

IDirect3DRMMesh

指定されたDirect3DRMMeshオブジェクト中のグループの数を取得する。

構文

unsigned GetGroupCount( );

戻り値

成功すればグループの数を返す。失敗すれば0を返す。

IDirect3DRMMesh::GetGroupMapping

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中のグループに対して、どのようにテクスチャがマップされるかを取得する。

構文

D3DRMMAPPING GetGroupMapping(
  D3DRMGROUPINDEX id
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。

戻り値

成功すれば、グループへのテクスチャのマップ方法を示すD3DRMMAPPING値の1つを返す。失敗すれば0を返す。

参照

IDirect3DRMMesh::SetGroupMapping

IDirect3DRMMesh::GetGroupMaterial

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中のグループに関連付けられたマテリアルへのポインタを取得する。

構文

HRESULT GetGroupMaterial(
  D3DRMGROUPINDEX id,
  LPDIRECT3DRMMATERIAL *returnPtr
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。
returnPtr
メソッドが制御を戻すとき、グループのIDirect3DRMMaterialインターフェイスを受け取る変数へのポインタのアドレス。

戻り値

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

参照

IDirect3DRMMesh::SetGroupMaterial

IDirect3DRMMesh::GetGroupQuality

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中の指定されたグループのレンダリングクオリティを取得する。

構文

D3DRMRENDERQUALITY GetGroupQuality(
  D3DRMGROUPINDEX id
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。

戻り値

成功すれば、D3DRMRENDERQUALITYで示される列挙型の値を返す。失敗すれば0を返す。これらの値には、オブジェクトのシェーディングモードや照明モード、塗りつぶしモードが含まれている。

参照

IDirect3DRMMesh::SetGroupQuality

IDirect3DRMMesh::GetGroupTexture

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中のグループに関連付けられたテクスチャへのポインタを取得する。

構文

HRESULT GetGroupTexture(
  D3DRMGROUPINDEX id,
  LPDIRECT3DRMTEXTURE *returnPtr
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。
returnPtr
メソッドが制御を返すとき、グループのIDirect3DRMTextureインターフェイスを受け取る変数へのポインタのアドレス。

戻り値

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

参照

IDirect3DRMMesh::SetGroupTexture

IDirect3DRMMesh::GetVertices

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中の指定のグループに対する頂点情報を取得する。

構文

HRESULT GetVertices(
  D3DRMGROUPINDEX id,
  DWORD index,
  DWORD count,
  D3DRMVERTEX *returnPtr
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。
index
頂点位置を取得する始点を示すD3DRMVERTEX構造体の配列のインデックス。
count
パラメータで与えられているインデックス以降の、取得するD3DRMVERTEX構造体(頂点)の数。このパラメータはNULLにできない。グループ中の頂点の数を取得するには、IDirect3DRMMesh::GetGroupメソッドを呼び出す。
returnPtr
メソッドが戻ったとき、頂点情報(頂点位置、色、テクスチャ座標など)を格納するD3DRMVERTEX構造体からなる配列。

戻り値

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

参照

IDirect3DRMMesh::GetGroup, IDirect3DRMMesh::SetVertices

IDirect3DRMMesh::Scale

IDirect3DRMMesh

モデル座標のx軸、y軸、z軸に対し、与えられたスケール係数によってDirect3DRMMeshオブジェクトをスケーリングする。

構文

HRESULT Scale(
  D3DVALUE sx,
  D3DVALUE sy,
  D3DVALUE sz
  );

パラメータ

sx, sy, sz
x軸、y軸、z軸に沿って適用されるスケール係数。

戻り値

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

IDirect3DRMMesh::SetGroupColor

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中のグループの色を設定する。

構文

HRESULT SetGroupColor(
  D3DRMGROUPINDEX id,
  D3DCOLOR value
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupを使って生成されたものでなくてはならない。
value
グループの色。

戻り値

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

注意

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

参照

IDirect3DRMMesh::GetGroupColor, IDirect3DRMMesh::SetGroupColorRGB

IDirect3DRMMesh::SetGroupColorRGB

IDirect3DRMMesh

RGB値を使用して、Direct3DRMMeshオブジェクト中のグループの色を設定する。

構文

HRESULT SetGroupColorRGB(
  D3DRMGROUPINDEX id,
  D3DVALUE red,
  D3DVALUE green,
  D3DVALUE blue
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。
red, green, blue
グループの色の赤、緑、青の各要素。

戻り値

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

注意

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

参照

IDirect3DRMMesh::GetGroupColor, IDirect3DRMMesh::SetGroupColor

IDirect3DRMMesh::SetGroupMapping

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中のグループにマッピングを設定する。マッピングは、どのようにテクスチャが面にマップされるかを決定する。

構文

HRESULT SetGroupMapping(
  D3DRMGROUPINDEX id,
  D3DRMMAPPING value
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。
value
グループのマッピングを指定するD3DRMMAPPING型の値。

戻り値

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

参照

IDirect3DRMMesh::GetGroupMapping

IDirect3DRMMesh::SetGroupMaterial

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中のグループにマテリアルを関連付ける。

構文

HRESULT SetGroupMaterial(
  D3DRMGROUPINDEX id,
  LPDIRECT3DRMMATERIAL value
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。
value
Direct3DRMMeshオブジェクトに関連付けるIDirect3DRMMaterialインターフェイスのアドレス。

戻り値

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

参照

IDirect3DRMMesh::GetGroupMaterial

IDirect3DRMMesh::SetGroupQuality

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中の指定されたグループのレンダリングクオリティを設定する。

構文

HRESULT SetGroupQuality(
  D3DRMGROUPINDEX id,
  D3DRMRENDERQUALITY value
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。
value
D3DRMRENDERQUALITY型で表される列挙型の値。これらの値には、オブジェクトのシェーディングモードや照明モード、塗りつぶしモードが含まれている。

戻り値

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

参照

IDirect3DRMMesh::GetGroupQuality

IDirect3DRMMesh::SetGroupTexture

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中のグループにテクスチャを関連付ける。

構文

HRESULT SetGroupTexture(
  D3DRMGROUPINDEX id,
  LPDIRECT3DRMTEXTURE value
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。
value
Direct3DRMMeshオブジェクトに関連付けるIDirect3DRMTextureインターフェイスのアドレス。

戻り値

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

参照

IDirect3DRMMesh::GetGroupTexture

IDirect3DRMMesh::SetVertices

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中の指定されたグループの頂点の位置を設定する。

構文

HRESULT SetVertices(
  D3DRMGROUPINDEX id,
  unsigned index,
  unsigned count,
  D3DRMVERTEX *values
  );

パラメータ

id
グループの識別子。この識別子はIDirect3DRMMesh::AddGroupメソッドを使って生成されたものでなくてはならない。
index
修正するメッシュグループの最初の頂点のインデックス。
count
セットする連続頂点の数。values配列は、少なくともcount数の要素を格納しなければならない。
values
設定する頂点位置を示すD3DRMVERTEX構造体の配列。

戻り値

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

注意

頂点情報はグループごとに持つ。2つの異なったグループ間で頂点を共有する必要がある場合(たとえば、メッシュ上の隣接した面の色が異なるとき)、両方のグループで頂点をコピーしなくてはならない。

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

参照

IDirect3DRMMesh::GetVertices

IDirect3DRMMesh::Translate

IDirect3DRMMesh

Direct3DRMMeshオブジェクト中の頂点の位置に、指定されたオフセットを追加する。

構文

HRESULT Translate(
  D3DVALUE tx,
  D3DVALUE ty,
  D3DVALUE tz
  );

パラメータ

tx, ty, tz
各頂点位置のx座標、y座標、z座標に追加されるオフセット。

戻り値

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


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