アプリケーションは、Direct3DRMMeshインターフェイスのメソッドを使用して、メッシュのグループと会話する。メッシュは、ポリゴン面のセットから構成されるビジュアルオブジェクトである。メッシュは、頂点のセットと面のセット (面はメッシュの頂点と法線によって定義される) を定義する。いくつかの面が使用している頂点または法線を変更すると、それを共有するすべての面の外観が変わる。
メッシュの頂点はメッシュ中の面の位置を定義し、これらを使用してテクスチャマップ内の2D座標を定義することもできる。
Direct3DRMMeshとDirect3DRMMeshBuilder3を使用して、Microsoft® Direct3D® 保持モードでメッシュを操作することができる。
アプリケーションで、同じ特性 (マテリアル、テクスチャなど) をいくつかの頂点または面に割り当てる必要がある場合、Direct3DRMMeshインターフェイスを使用して、これらを1つのグループにまとめることができる。アプリケーションが2つの異なるグループ間で頂点を共有する必要がある場合 (たとえば、メッシュ中の隣接する面の色が異なる場合)、頂点は両方のグループに重複していなければならない。Direct3DRMMesh.AddGroupメソッドは、グループ識別子を面の集合に割り当てる。この識別子を使用して、後続の呼び出しでグループを参照する。
Direct3DRMMeshBuilder3とDirect3DRMMeshインターフェイスによって、アプリケーションは3つ以上の側面を持つ面を作成することができる。たとえば、アプリケーションがレンダリングしているハードウェアに64Kの制限があり、メッシュがそのサイズを超えている場合、これらはメッシュを自動的に複数のバッファに分割する。これらの機能は、Direct3DRMMeshとDirect3DRMMeshBuilder3 APIをDirect3D APIから切り離してセットする。
Direct3DRMMesh.SetGroupColor、SetGroupColorRGB、SetGroupTexture、およびSetGroupMaterialメソッドを使用して、メッシュの各面またはメッシュのすべての面に対して同時に、個別の色、テクスチャ、マテリアルプロパティを定義することができる。
レンダリングするメッシュについては、Direct3DRMFrame3.AddVisualメソッドを使用して、最初にフレームに追加しなければならない。単一のメッシュを複数のフレームに追加して、そのメッシュの複数のインスタンスを作成することができる。
Direct3DRMMesh.SetGroupQualityメソッドに対する呼び出しで指定されたように、アプリケーションは、フラット、グーロー、フォンシェードモードを使用することができる(しかし、フォンシェーディングはまだ利用可能ではない)。
Direct3DRMMeshインターフェイスのメソッドは、以下のグループにまとめることができる。
色 GetGroupColor SetGroupColor SetGroupColorRGB 作成と情報 AddGroup GetBox GetGroupCount GetGroupData GetSizes GetGroupDataSize マテリアル GetGroupMaterial SetGroupMaterial その他 Scale Translate レンダリングクオリティ GetGroupQuality SetGroupQuality テクスチャマッピング GetGroupMapping SetGroupMapping テクスチャ GetGroupTexture SetGroupTexture 頂点の位置 GetVertex GetVertexCount GetVertices SetVertex SetVertices
Direct3DRMMeshインターフェイスは、Direct3DRMObjectインターフェイスから次のメソッドを継承する。
Direct3DRMMeshオブジェクトは、Direct3DRM3.CreateMeshメソッドの使用によって取得される。
面の集まりをグループ化し、そのグループの識別子を取得する。メッシュに最初に追加されるグループのインデックスは、常に0である。以降のグループのインデックスは、それぞれ1ずつ増加する。
構文
object.AddGroup(vertexCount As Long, faceCount As Long, verticesPerFace As Long, fdata() As Long) As Long
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- vertexCount, faceCount
- グループに含まれる頂点と面の数。
- verticesPerFace
- すべての面が同じ数の頂点を持つ場合、面当たりの頂点の数。グループ中の面が持つ頂点の数が一定でないときは、このパラメータに0を指定しなくてはならない。
- fdata
- 面データ。verticesPerFaceパラメータに値が設定されている場合、このデータは単に、グループの頂点配列へのインデックスリストである。verticesPerFaceが0のときは、頂点インデックスよりも、その面の頂点の数を示す整数値を優先しなくてはならない。たとえば、verticesPerFaceが0で、グループを構成する面が三角形と四角形である場合、データは次のようになる。[ 3, インデックス, インデックス, インデックス, 4, インデックス, インデックス, インデックス, インデックス, 3, インデックス, インデックス, インデックス, ...]
戻り値
グループを識別する値を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
新しく追加されたグループには、以下のデフォルトのプロパティが与えられる。
- 白。
- テクスチャなし。
- 反射なし。
- 頂点配列の各頂点の位置、法線、色は0。
頂点の位置を設定するには、Direct3DRMMesh.SetVerticesメソッドを使用する。
Direct3DRMMeshオブジェクトを含む境界ボックスを取得する。境界ボックスは、それぞれの次元のモデル座標の最小値と最大値を示す。
構文
object.GetBox(vector As D3DRMBOX)
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- vector
- 境界ボックス座標を受け取るD3DRMBOX型。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
グループの色を取得する。
構文
object.GetGroupColor(id As Long) As Long
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
戻り値
成功すれば、色を示す値を返す。失敗すれば0を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMesh.SetGroupColor、Direct3DRMMesh.SetGroupColorRGB
指定されたDirect3DRMMeshオブジェクト中のグループの数を取得する。
構文
object.GetGroupCount( ) As Long
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
戻り値
成功すればグループの数を返す。失敗すれば0を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
指定されたグループに関連付けられた面データを取得する。
構文
object.GetGroupData(id As Long, psa() As Long)
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
- psa
- 面データを受け取る配列。このデータは、その面の頂点の数を示す整数値が前に指定されたグループの頂点配列へのインデックスリストである。たとえば、グループを構成する面が三角形と四角形である場合、データは次のようになる。[ 3, インデックス, インデックス, インデックス, 4, インデックス, インデックス, インデックス, インデックス, 3, インデックス, インデックス, インデックス, ...]
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
特定のグループに関連付けられたデータ配列中の要素数を取得する。
構文
object.GetGroupDataSize(id As Long) As Long
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使用して生成されたものでなくてはならない。
戻り値
要素数を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshオブジェクト中のグループに対して、どのようにテクスチャがマップされるかを取得する。
構文
object.GetGroupMapping(id As Long) As CONST_D3DRMMAPPINGFLAGS
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
戻り値
グループへのテクスチャのマップ方法を示すCONST_D3DRMMAPPINGFLAGS列挙型から次の値のうちの1つを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshオブジェクト中のグループに関連付けられたマテリアルを取得する。
構文
object.GetGroupMaterial(id As Long) As Direct3DRMMaterial2
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
戻り値
Direct3DRMMaterial2オブジェクトを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshオブジェクト中の指定されたグループのレンダリングクオリティを取得する。
構文
object.GetGroupQuality(id As Long) As CONST_D3DRMRENDERQUALITY
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
戻り値
成功すれば、レンダリングクオリティを示すCONST_D3DRMRENDERQUALITY列挙型の値を返す。失敗すれば0を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
レンダリングクオリティとは、デバイスのレンダリングサーフェス上で実行されるレンダリングのクオリティの最大値である。
オブジェクトのクオリティには、3つのコンポーネントがある。つまり、シェーディングモード (フラットまたはグーロー)、照明タイプ (オンまたはオフ) および塗りつぶしモード (ポイント、ワイヤフレームまたはソリッド) である。
参照
Direct3DRMMeshオブジェクト中のグループに関連付けられたテクスチャを取得する。
構文
object.GetGroupTexture(id As Long) As Direct3DRMTexture3
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
戻り値
Direct3DRMTexture3オブジェクトを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshオブジェクト中の指定のグループに対する情報を取得する。
構文
object.GetSizes(id As Long, cnt1 As Long, cnt2 As Long, cnt3 As Long, cnt4 As Long)
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
- cnt1
- グループ中の頂点の数を受け取る。
- cnt2
- グループ中の面の数を受け取る。
- cnt3
- すべての面が同じ頂点カウントを持つ場合は、グループ中の各面の頂点の数を受け取る。グループに異なる頂点カウントを持つ面がある場合、このパラメータは0を受け取る。
- cnt4
- GetGroupDataによって要求されたpsaの必須サイズを受け取る。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
特定のグループから1つの頂点を取得する。
構文
object.GetVertex(id As Long, idx As Long, ret As D3DRMVERTEX)
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupを使って生成されたものでなくてはならない。
- idx
- 頂点位置を取得する始点を示すD3DRMVERTEX型の配列のインデックス。
- ret
- メソッドが戻ったとき、頂点情報(頂点位置、色、テクスチャ座標など)を格納するD3DRMVERTEX型。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
指定されたDirect3DRMMeshオブジェクトの頂点の数を取得する。
構文
object.GetVertexCount(id As Long) As Long
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupを使って生成されたものでなくてはならない。
戻り値
成功すれば頂点の数を返す。失敗すれば0を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshオブジェクト中の指定のグループに対する頂点情報を取得する。
構文
object.GetVertices(id As Long, idx As Long, cnt As Long, vertexArray() As D3DRMVERTEX)
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
- idx
- 頂点位置を取得する始点を示すD3DRMVERTEX型の配列のインデックス。
- cnt
- idxパラメータで与えられているインデックス以降の、取得するD3DRMVERTEX型 (頂点) の数。このパラメータはNOTHINGにできない。グループ中の頂点の数を取得するには、Direct3DRMMesh.GetVertexCountメソッドを呼び出す。
- vertexArray
- メソッドが戻ったとき、頂点情報(頂点位置、色、テクスチャ座標など)を格納するD3DRMVERTEX型の配列。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
モデル座標のx軸、y軸、z軸に対し、与えられたスケール係数によってDirect3DRMMeshオブジェクトをスケーリングする。
構文
object.Scale(sx As Single, sy As Single, sz As Single)
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- sx, sy, sz
- x軸、y軸、z軸に沿って適用されるスケール係数。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshオブジェクト中のグループの色を設定する。
構文
object.SetGroupColor(id As Long, val As Long)
要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupを使って生成されたものでなくてはならない。
- val
- グループの色。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
このメソッドは、Direct3DRMMeshInterpolatorオブジェクトにグループカラーキーを追加するためにも使用する。
参照
Direct3DRMMesh.GetGroupColor、Direct3DRMMesh.SetGroupColorRGB
Direct3DRMMesh.SetGroupColorRGB
Direct3DRMMeshRGB値を使用して、Direct3DRMMeshオブジェクト中のグループの色を設定する。
構文
object.SetGroupColorRGB(id As Long, r As Single, g As Single, b As Single)要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
- r, g, b
- グループの色の赤、緑、青の各要素。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
このメソッドは、Direct3DRMMeshInterpolatorオブジェクトにグループRGBキーを追加するためにも使用する。
参照
Direct3DRMMesh.SetGroupMapping
Direct3DRMMeshDirect3DRMMeshオブジェクト中のグループにマッピングを設定する。マッピングは、どのようにテクスチャが面にマップされるかを決定する。
構文
object.SetGroupMapping(id As Long, value As CONST_D3DRMMAPPINGFLAGS)要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
- value
- グループのマッピングを指定するCONST_D3DRMMAPPINGFLAGS列挙型からの値。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMesh.SetGroupMaterial
Direct3DRMMeshDirect3DRMMeshオブジェクト中のグループにマテリアルを関連付ける。
構文
object.SetGroupMaterial(id As Long, val As Direct3DRMMaterial2)要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
- val
- Direct3DRMMeshオブジェクトのDirect3DRMMaterial2インターフェイス。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMesh.SetGroupQuality
Direct3DRMMeshDirect3DRMMeshオブジェクト中の指定されたグループのレンダリングクオリティを設定する。
構文
object.SetGroupQuality(id As Long, value As CONST_D3DRMRENDERQUALITY)要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
- value
- レンダリングクオリティを示すCONST_D3DRMRENDERQUALITY列挙型の値。これらの値には、オブジェクトのシェーディングモードや照明モード、塗りつぶしモードが含まれている。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
レンダリングクオリティは、デバイスのレンダリング面上で実行されるレンダリングのクオリティの最大値である。
オブジェクトクオリティには、3つのコンポーネントがある。つまり、シェーディングモード (フラットまたはグーローで、フォンは実装されていない。デフォルトはグーローシェーディング)、照明タイプ (オンまたはオフ) および塗りつぶしモード (ポイント、ワイヤフレームまたはソリッド) である。
参照
Direct3DRMMesh.SetGroupTexture
Direct3DRMMeshDirect3DRMMeshオブジェクト中のグループにテクスチャを関連付ける。
構文
object.SetGroupTexture(id As Long, val As Direct3DRMTexture3)要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
- val
- Direct3DRMMeshオブジェクトに関連付けるDirect3DRMTexture3インターフェイス。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMesh.SetVertex
Direct3DRMMeshDirect3DRMMeshオブジェクト中の既存グループのジオメトリを修正する。
構文
object.SetVertex(id As Long, idx As Long, values As D3DRMVERTEX)要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
- idx
- 修正するメッシュグループの最初の頂点のインデックス。
- values
- セットする頂点位置を指定するD3DRMVERTEX型。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
頂点情報はグループごとに持つ。2つの異なったグループ間で頂点を共有する必要がある場合(たとえば、メッシュ上の隣接した面の色が異なるとき)、両方のグループで頂点をコピーしなくてはならない。
このメソッドは、Direct3DRMMeshInterpolatorオブジェクトに頂点位置キーを追加するためにも使用する。
参照
Direct3DRMMesh.SetVertices
Direct3DRMMeshDirect3DRMMeshオブジェクト中の指定されたグループに頂点位置を設定する。
構文
object.SetVertices(id As Long, idx As Long, count As Long, vertexArray() As D3DRMVERTEX)要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- id
- グループの識別子。この識別子はDirect3DRMMesh.AddGroupメソッドを使って生成されたものでなくてはならない。
- idx
- 修正するメッシュグループの最初の頂点のインデックス。
- count
- セットする連続頂点の数。vertexArray配列は、少なくともcount数の要素を格納しなければならない。
- vertexArray
- 設定する頂点位置を示すD3DRMVERTEX型の配列。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
頂点情報はグループごとに持つ。2つの異なったグループ間で頂点を共有する必要がある場合(たとえば、メッシュ上の隣接した面の色が異なるとき)、両方のグループで頂点をコピーしなくてはならない。
このメソッドは、Direct3DRMMeshInterpolatorオブジェクトに頂点位置キーを追加するためにも使用する。
参照
Direct3DRMMesh.Translate
Direct3DRMMeshDirect3DRMMeshオブジェクト中の頂点の位置に、指定されたオフセットを追加する。
構文
object.Translate(tx As Single, ty As Single, tz As Single)要素
- object
- Direct3DRMMeshオブジェクトを表すオブジェクト式。
- tx, ty, tz
- 各頂点位置のx座標、y座標、z座標に追加されるオフセット。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.