アプリケーションは、IDirect3DRMMeshBuilder3インターフェイスのメソッドを使用してメッシュオブジェクトと対話する。メッシュの詳細については、「Direct3DRMMesh」を参照すること。
Direct3DRMMeshBuilder3.AddVertex、AddFaceおよびAddFacesメソッドを使用して、メッシュに対して個別に頂点と面を追加することができる。
法線 (単位ベクトルでなければならない) をセットするか、またはGenerateNormalsメソッドを使用して、囲んでいる面の面法線を平均化して法線を計算することができる。
Direct3DRMMeshBuilder3メソッドは、1つ以上の法線、法線の数、面、1つ以上の頂点、およびメッシュビルダの状態 (有効または無効)を取得する。このインターフェイスによって、頂点と法線のセット、メッシュビルダの新しいサブメッシュと親メッシュの作成と取り出しを行うことができる。また、Direct3DRMMeshBuilder3では、アプリケーションが新しい三角形 (一般的なポリゴンと対立的な意味で) をDirect3DRMMeshBuilder3オブジェクトに追加し、AddTrianglesメソッドを使用して、処理中に暗黙に新しい面を作成できる。
保持モード6.xでは、Direct3DRM3インターフェイスを使用してDirect3DRMMeshBuilder3オブジェクトを作成することができる。この場合、Direct3DRMMeshBuilder3オブジェクトは、その実装のために直接モードのDrawPrimitiveインターフェイスを使用する。
Direct3DRMMeshBuilder3インターフェイスのメソッドは、以下のグループにまとめることができる。
Direct3DRMMeshBuilder3インターフェイスは、Direct3DRMObjectインターフェイスから以下のメソッドを継承する。
Direct3DRMMeshBuilder3オブジェクトは、Direct3DRM3.CreateMeshBuilderメソッドの呼び出しによって取得される。
Direct3DRMMeshBuilder3オブジェクトに1つの面を追加する。
構文
object.AddFace(f As Direct3DRMFace2)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- f
- 追加するDirect3DRMFace2オブジェクト。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
どの1つの面も、一度に1つのメッシュにしか存在できない。
Direct3DRMMeshBuilder3オブジェクトに複数の面を追加する。
構文
object.AddFaces(vc As Long, vertexArray() As D3DVECTOR, nc As Long, normalArray() As D3DVECTOR, data() As Long) As Direct3DRMFaceArray
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- vc
- 頂点の数。
- vertexArray
- 頂点位置を格納するD3DVECTOR型の配列。
- nc
- 法線の数。
- normalArray
- 法線の位置を格納するD3DVECTOR型の配列。
- data
- 各面に対して、このパラメータは、頂点カウントとそれに続いて頂点配列のインデックスを含む必要がある。ncが0でなければ、このパラメータは、頂点カウントとそれに続いてインデックスの対を含む必要がある。そのインデックスの対の最初のインデックスは、頂点配列に対するインデックスであり、2番目のインデックスは、法線の配列に対するインデックスである。インデックスのリストは、0で終了しなければならない。
戻り値
新しく作成された面へのポインタがセットされるDirect3DRMFaceArrayインターフェイスを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
既存の頂点と法線 (オプション) を使用するメッシュビルダ上に、多数の面を作成できるようにする。
構文
object.AddFacesIndexed(flags As CONST_D3DRMADDFACESFLAGS, indexArray() As Long) As Long
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- flags
- 法線インデックスの処理方法を指定するCONST_D3DRMADDFACESFLAGS列挙型の値。値がD3DRMADDFACES_DEFAULTならば、既存の法線インデックスはindexArrayパラメータ中に指定されていなければならない。そうでない場合、対応するインデックスを持つ法線が各頂点に対して自動的に使用される。
- indexArray
- 各面に対して次のものを指定する、符号なし整数のタップルの連続する配列。
- 頂点の数 n、ここでnは3以上
- 頂点インデックス
- 法線インデックス (オプション)
次のテーブルは、flagsパラメータの値とindexArrayパラメータの必須面タップル形式との関係を示す。
flags 必須面タップル形式 D3DRMADDFACES_DEFAULT {<n>, <vIndex0>, <nIndex0>,...,<vIndex n-1>, <nIndex n-1>} D3DRMADDFACES_VERTICESONLY {<n>, <vIndex0>,...,<vIndex n-1>} vIndexとnIndexの値は、メッシュビルダ内に既に存在している頂点と法線にインデックス付けするのに必要となる。タップルの配列は値0で終了する必要がある。
戻り値
メッシュビルダに追加される最初の新しい面のインデックスを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトにフレームの内容を追加する。
構文
object.AddFrame(f As Direct3DRMFrame3)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- f
- その内容が追加されるDirect3DRMFrame3オブジェクト。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
このメソッドは、指定されたフレーム階層 (より大きなフレーム階層のサブ分岐も可) からDirect3DRMMeshBuilder3オブジェクトへ、すべてのメッシュとメッシュビルダの面のコピーを追加する。フレームツリーは、ルートフレームを渡すことで指定する。面は、それらが内包する要素フレームの位置と方向によって追加される。ルートフレームに親があっても、指定されたルートフレームの変換は無視される。
ソースフレームは、この操作によって変更または参照もされない。
Direct3DRMMeshBuilder3オブジェクトにメッシュを追加する。
構文
object.AddMesh(m As Direct3DRMMesh)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- m
- 追加されるDirect3DRMMeshオブジェクト。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの内容を別のDirect3DRMMeshBuilder3オブジェクトに追加する。内包するDirect3DRMMeshBuilder3ソースオブジェクトと面のもとにあるすべてのサブメッシュビルダは、Direct3DRMMeshBuilder3ターゲットオブジェクトのもとで重複する。
構文
object.AddMeshBuilder(meshbuilder As Direct3DRMMeshBuilder3, flags As CONST_D3DRMADDMESHBUILDERFLAGS)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- meshbuilder
- その内容を追加するDirect3DRMMeshBuilder3オブジェクト。
- flags
- コピーオプションを示すCONST_D3DRMADDMESHBUILDERFLAGS列挙型の1つ以上の値。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
ソースのDirect3DRMMeshBuilder3オブジェクトは、この操作で変更または参照もされない。
Direct3DRMMeshBuilder3オブジェクトに法線を追加する。
構文
object.AddNormal(x As Single, y As Single, z As Single) As Long
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- x, y, z
- 新しい法線の方向のx、y、zの各要素。
戻り値
法線のインデックスを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
アプリケーションが (一般的なポリゴンと対立的な意味で) 新しい三角形をDirect3DRMMeshBuilder3オブジェクトに追加し、処理中に暗黙に新しい面を作成できるようにする。
構文
object.AddTriangles(flags As Long, format As CONST_D3DRMADDTRIANGLESVT, vertexCount As Long, data As Any)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- flags
- 0でなければならない。
- format
- 頂点データのフォーマットを記述するCONST_D3DRMADDTRIANGLESVT列挙型の値の論理的な組み合わせ。すべての有効な値が含まれている場合、頂点データは次のD3DRMFLEXVERTEXユーザ定義型によって記述できる。
構文
Type D3DRMFLEXVERTEX IType As Long color As Long normal As D3DVECTOR position As D3DVECTOR tu As Single tv As Single End Type Dim verts(100) As D3DRMFLEXVERTEX AddTriangles(D3DRMFVF_TYPE Or D3DRMFVF_NORMAL Or D3DRMFVF_COLOR Or D3DRMFVF_TEXTURECOORDS, 100, verts(0))有効な値としては、次の値の任意の論理的組み合わせが可能であり、これらはD3DRMFLEXVERTEX型のどのメンバを各要素の記述に含めるかを示す。positionメンバは常に存在する。
- D3DRMFVF_TYPE
- ITypeメンバを含める。ITypeメンバが存在する場合、その中には次のどれか1つがなければならない。
- D3DRMVERTEX_LIST
- 新しいリストを開始するか、あるいは以前に開始したリストのメンバである。以前の頂点 (またはその前の頂点) にこのフラグのマークが付いていない場合、最低1つの三角形が形成されるまで、次の頂点にこのフラグのマークが付いていなければならない。
- D3DRMVERTEX_STRIP
- 以前の2つの頂点を持つ新しい三角形を細片フォーマットで形成する。
- D3DRMVERTEX_FAN
- 以前の頂点と扇の最初の頂点を持つ新しい三角形を形成する。
- D3DRMFVF_NORMAL
- normalメンバを含める。
- D3DRMFVF_COLOR
- colorメンバを含める。
- D3DRMFVF_TEXTURECOORDS
- tuとtvメンバを含める。
- vertexCount
- 頂点の数。
- data
- formatで記述されるデータ。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
このメソッドは、三角形を記述するアプリケーションに柔軟性を提供する。三角形は頂点のセットで記述される。各頂点は位置を持つが、オプションで法線、テクスチャ座標、または色を持つことも、持たないこともできる。
次の例は、図中の各頂点に対して適切なITypeフラグを示す。
頂点数 ITypeフラグ 0 D3DRMVERTEX_STRIP 1 D3DRMVERTEX_STRIP 2 D3DRMVERTEX_STRIP 3 D3DRMVERTEX_STRIP 4 D3DRMVERTEX_STRIP 5 D3DRMVERTEX_FAN 6 D3DRMVERTEX_FAN 7 D3DRMVERTEX_FAN 8 D3DRMVERTEX_LIST 9 D3DRMVERTEX_LIST 10 D3DRMVERTEX_LIST 11 D3DRMVERTEX_LIST 12 D3DRMVERTEX_LIST 13 D3DRMVERTEX_LIST
Direct3DRMMeshBuilder3オブジェクトに頂点を追加する。
構文
object.AddVertex(x As Single, y As Single, z As Single) As Long
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- x, y, z
- 新しい頂点の位置のx、y、zの各要素。
戻り値
頂点のインデックスを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
頂点のない新しい面を作成し、Direct3DRMMeshBuilder3オブジェクトに追加する。
構文
object.CreateFace( ) As Direct3DRMFace2
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
新しく作成された面を受け取るDirect3DRMFace2オブジェクトを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトから新しいメッシュを作成する。
構文
object.CreateMesh( ) As Direct3DRMMesh
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
Direct3DRMMeshオブジェクトを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
現在のDirect3DRMMeshBuilder3オブジェクトに対して、新しいサブメッシュを作成する。
構文
object.CreateSubMesh( ) As Direct3DRMMeshBuilder3
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
Direct3DRMMeshBuilder3オブジェクトを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
サブメッシュは、Direct3DRMMeshBuilder3インターフェイスをサポートし、それ自体もサブメッシュを持てるという点で、メッシュビルダオブジェクトに類似している。サブメッシュとメッシュビルダの相違は、すべてのサブメッシュが頂点と法線を、サブメッシュの連鎖中の大元の祖先と共有することである。メッシュビルダは頂点と法線を共有しない。
参照
Direct3DRMMeshBuilder3.DeleteSubMesh、Direct3DRMMeshBuilder3.GetSubMesh、Direct3DRMMeshBuilder3.GetParentMesh
Direct3DRMMeshBuilder3オブジェクトの面を削除する。
構文
object.DeleteFace(face As Direct3DRMFace2)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- face
- Direct3DRMMeshBuilder3オブジェクトから削除するDirect3DRMFace2オブジェクトのインターフェイス。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
サブメッシュを削除する。サブメッシュは、現在のDirect3DRMMeshBuilder3オブジェクトのすぐ下の子でなければならない。
構文
object.DeleteSubMesh(mesh As Direct3DRMMeshBuilder3)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- mesh
- 削除するサブメッシュのDirect3DRMMeshBuilder3インターフェイス。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3.CreateSubMesh、Direct3DRMMeshBuilder3.GetSubMesh、Direct3DRMMeshBuilder3.GetParentMesh
Direct3DRMMeshBuilder3オブジェクトから、すべての面、頂点、法線を削除する。
構文
object.Empty( )
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
このDirect3DRMMeshBuilder3オブジェクトを、レンダリングとピッキング用に有効にするか無効にするかを指定する。
構文
object.Enable(flags As CONST_D3DRMADDMESHBUILDERFLAGS)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- flags
- レンダリングとピッキングを有効にするかどうかを指定するCONST_D3DRMMESHBUILDERENABLEFLAGS列挙型の1つ以上の値。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3オブジェクトを処理し、頂点を共有する各面に対する面法線を平均化することによって、メッシュ中の各頂点に対して法線を生成する。新しい法線は、頂点を共有する面が、面どうしの角度が折れ目の角度より大きい場合に生成される。
構文
object.GenerateNormals(angle As Single, flags As CONST_D3DRMGENERATENORMALSFLAGS)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- angle
- ラジアン単位の、新しい法線を生成できる面どうしの最小可能角度。
- flags
- CONST_D3DRMGENERATENORMALSFLAGS列挙型の1つ以上の値。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
D3DRMGENERATENORMALS_PRECOMPACTフラグを指定すると、プリコンパクトパスは、メッシュ中のすべての頂点を検索し、同じ頂点をすべてマージする。これは、ロードされているメッシュをコンパクトにするのに賢明な方法である。メッシュの中には、頂点に複数の法線を持つ場合に、複数の頂点を持つものがある。これは、Direct3D保持モードでは必要とならない。このフラグの指定は、複数の頂点を除去する場合の定番的方法である。
コンパクト処理の後、法線が生成される。面どうしの間の辺が調べられ、面が辺でなす角度が、折り目角より小さい場合には、面法線は平均化され、頂点法線が生成される。角度が折り目角より大きい場合には、新しい法線が生成される。新しい頂点は、生成されないことに注意する。
Direct3DRMMeshBuilder3オブジェクトを含む境界ボックスを取得する。境界ボックスは、各次元での最小、最大のモデル座標を与える。
構文
object.GetBox(retV As D3DRMBOX)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- retV
- 境界ボックスの座標がセットされるD3DRMBOX型。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの色ソースを取得する。色ソースは、面でも頂点でも良い。
構文
object.GetColorSource( ) As CONST_D3DRMCOLORSOURCE
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
CONST_D3DRMCOLORSOURCE列挙型のメンバを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3オブジェクトを有効にするか無効にするかを示す値を取得する。
構文
object.GetEnable( ) As CONST_D3DRMADDMESHBUILDERFLAGS
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
このDirect3DRMMeshBuilder3オブジェクトの現在の有効状態を示すCONST_D3DRMMESHBUILDERENABLEFLAGS列挙型から値を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3オブジェクトの単一面を取得する。
構文
object.GetFace(id As Long) As Direct3DRMFace2
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- id
- 取得するメッシュ面のインデックス。この面はDirect3DRMMeshBuilder3オブジェクトの一部になっていなければならない。
戻り値
面を受け取るDirect3DRMFace2インターフェイスを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの面の数を取得する。
構文
object.GetFaceCount( ) As Long
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
面の数を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの面データ配列のサイズを取得する。
構文
object.GetFaceDataSize( ) As Long
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
GetGeometryに必要なsizeData引数の値を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
このメソッドは、Direct3DRMMeshBuilder3.GetGeometryに必要なfaceData配列のサイズを取得する。
Direct3DRMMeshBuilder3オブジェクトの面を取得する。
構文
object.GetFaces( ) As Direct3DRMFaceArray
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
面を受け取るDirect3DRMFaceArrayオブジェクトを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの頂点、法線、面データを取得する。
構文
object.GetGeometry(vertexCount As Long, vertexArray() As D3DVECTOR, normalCount As Long, normalArray() As D3DVECTOR, sizeData As Long, faceData() As Long)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- vertexCount
- vertexArray中の頂点の数。
- vertexArray
- D3DVECTOR型の配列。これはDirect3DRMMeshBuilder3オブジェクトの頂点を含む。GetVertexCountを使って、この配列の最小サイズを決める。
- normalCount
- normalArray中の法線の数。
- normalArray
- D3DVECTOR型の配列。これはDirect3DRMMeshBuilder3オブジェクトの法線を含む。GetNormalCountを使って、この配列のサイズを決める。
- sizeData
- faceData中の要素数を指定する値。
- faceData
- Direct3DRMMeshBuilder3オブジェクトの面データ。このデータは、NULLで終わる点を除いて、Direct3DRMMeshBuilder3.AddFacesメソッドで指定されたフォーマットと同じである。GetFaceDataSizeを呼び出して配列のサイズを決める。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
法線ベクトルを取得する。
構文
object.GetNormal(index As Long, desc As D3DVECTOR)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- index
- 返す法線のインデックス。
- desc
- 法線のx、y、z座標がセットされるD3DVECTOR型。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクト中の法線の数を取得する。
構文
object.GetNormalCount( ) As Long
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
Direct3DRMMeshBuilder3オブジェクト中の法線の数を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3.GetNormal、Direct3DRMMeshBuilder3.SetNormal
このDirect3DRMMeshBuilder3オブジェクトの親メッシュを取得する。
構文
object.GetParentMesh( flags As CONST_D3DRMPARENTINGFLAGS) As Direct3DRMMeshBuilder3
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- flags
- どのDirect3DRMMeshBuilder3オブジェクトを取得するかを定義するCONST_D3DRMPARENTINGFLAGS列挙型の1つ以上の値。
戻り値
Direct3DRMMeshBuilder3オブジェクトを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3オブジェクトに対して、パースペクティブ補正がオンであるかどうかを判別する。
構文
object.GetPerspective( ) As Long
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
パースペクティブ補正がオンの場合は1、オンでない場合は0を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトのレンダリングクオリティを取得する。
構文
object.GetQuality( ) As CONST_D3DRMRENDERQUALITY
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
メッシュのレンダリングクオリティを指定するCONST_D3DRMRENDERQUALITY列挙型から値を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
レンダリングクオリティは、デバイスのレンダリング面上で実行されるレンダリングのクオリティの最大値である。
オブジェクトクオリティには、3つのコンポーネントがある。つまり、シェーディングモード (フラットまたはグーローで、フォンは実装されていない。デフォルトはグーローシェーディング)、照明タイプ (オンまたはオフ) および塗りつぶしモード (ポイント、ワイヤフレームまたはソリッド) である。
参照
Direct3DRMMeshBuilder3オブジェクトに含まれるサブメッシュの数を取得する。
構文
object.GetSubMeshCount( ) As Long
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
サブメッシュの数を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
このDirect3DRMMeshBuilder3オブジェクトに含まれるサブメッシュのリストを取得する。
構文
object.GetSubMeshes(count As Long, arrayOfMeshBuilders() As Direct3DRMMeshBuilder3)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- count
- 返される予定のサブメッシュの数。countがポイントする値は、実際に取得されたサブメッシュの数を受け取る。
- arrayOfMeshBuilders
- 子サブメッシュを含むDirect3DRMMeshBuilder3オブジェクトの配列。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3オブジェクトの指定されている頂点のテクスチャ座標を取得する。
構文
object.GetTextureCoordinates(idx As Long, u As Single, v As Single)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- idx
- 頂点のインデックス。
- u, v
- 返された頂点のテクスチャ座標。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
頂点ベクトルを取得する。
構文
object.GetVertex(id As Long, vec As D3DVECTOR)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- id
- 返す頂点のID。
- vec
- 頂点のx、y、z座標がセットされるD3DVECTOR型。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの指定されている頂点の色を取得する。
構文
object.GetVertexColor(index As Long) As Long
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- index
- 頂点のインデックス。
戻り値
色を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3オブジェクト中の頂点の数を取得する。
構文
object.GetVertexCount( ) As Long
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
戻り値
頂点の数を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトをロードする。
構文
object.LoadFromFile(filename As String, id As String, options As CONST_D3DRMLOADFLAGS, loadTextureImplementation As Direct3DRMLoadTextureCallback3, userArgument As Object)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- filename
- ロードするオブジェクトのソース。ソースは、flagsパラメータで指定されたソースフラグに従って、ファイル、リソース、メモリブロック、またはストリームにできる。
- id
- ロードするオブジェクトの名前または位置。idが""の場合は、optionsパラメータをD3DRMLOAD_FIRSTに設定しなければならない。Microsoft Visual Basic® は、Stringデータ型が指定されている場合でも、ロードするアイテムの位置を示すidパラメータの中のIntegerを受け入れる。たとえば、idパラメータに1が設定されていると、1番目の位置のオブジェクトがロードされる。
- options
- ロードオプションを記述するCONST_D3DRMLOADFLAGS列挙型の1つ以上の値。
- loadTextureImplementation
- Direct3DRMLoadTextureCallback3コールバックインターフェイス。特殊なフォーマッティングを必要とするオブジェクトによって使用される、任意のテクスチャをロードするために使われる。テクスチャは、2で割れる幅と長さでなければならない。このパラメータはNOTHINGにできる。
- userArgument
- コールバックに渡されるアプリケーション定義データ。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
デフォルトでは、このメソッドはfilenameパラメータで指定されているソースから最初のメッシュをロードする。
このメソッドは、Direct3DRM3.SetOptionsがセットする右手と左手ジオメトリオプションを考慮する。
そのロードメソッドを複数回を呼び出すことで、複数のオブジェクトをDirect3DRMMeshBuilder3オブジェクトにロードすることができる。
各LoadFromFileメソッドは、filenameパラメータを使用してオブジェクトのソースを指定し、idパラメータによってオブジェクトを識別する。システムはソースフラグの選択に基づいてfilenameパラメータを解釈する。そして、識別子フラグの選択に基づいてidパラメータの内容を解釈する。
インスタンスフラグは、パラメータの解釈方法には何も変更を加えない。D3DRMLOAD_INSTANCEBYREFERENCEフラグを用いると、新しいオブジェクトを作成することなく同じファイルを2回ロードすることができる。オブジェクトが名前を持っていない場合、D3DRMLOAD_INSTANCEBYREFERENCEフラグをセットすると、D3DRMLOAD_INSTANCEBYCOPYINGフラグをセットしたときと同じ効果を得ることができる。ローダは、同一のオブジェクトが存在しても、各名前なしオブジェクトを新しいオブジェクトとして作成する。
現在のデバイスに対してDirect3DRMMeshBuilder3オブジェクトを最適化する。この操作は高価になることがある。
構文
object.Optimize( )
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトを保存する。
構文
object.Save(fname As String, xFormat As CONST_D3DRMXOFFORMAT, Save As CONST_D3DRMSAVEFLAGS)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- fname
- 作成されるファイルの名前。このファイルのファイル名拡張子は、.xでなければならない。
- xFormat
- CONST_D3DRMXOFFORMAT列挙型のD3DRMXOF_TEXT値。
- Save
- 保存オプションを示すCONST_D3DRMSAVEFLAGS列挙型の1つ以上の値。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
指定のスケーリング係数を使用してモデル座標でx軸、y軸、z軸に平行にDirect3DRMMeshBuilder3オブジェクトをスケーリングする。
構文
object.ScaleMesh(sx As Single, sy As Single, sz As Single)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- sx, sy, sz
- x軸、y軸、z軸に沿って適用されるスケーリング係数。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトのすべての面に指定の色を設定する。
構文
object.SetColor(col As Long)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- col
- 面の色。赤、緑、青の色要素だけでなく、アルファ要素も必ずセットする。そうしないと、オブジェクトが可視にならないことがある。色は4バイトのLongで表される。高バイトはアルファ要素であり、後続のバイトが赤、緑、青を定義する。より簡単に色を構築するにはDirectX7オブジェクトのCreateColorRGBAを使い、フルアルファを希望しているだけの場合はSetColorRGBを使う。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトのすべての面に赤、緑、青の色要素を設定する。
構文
object.SetColorRGB(red As Single, green As Single, blue As Single)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- red, green, blue
- 色の赤、緑、青の各成分。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの色ソースを設定する。
構文
object.SetColorSource(val As CONST_D3DRMCOLORSOURCE)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- val
- 使用する新しい色ソース指定するCONST_D3DRMCOLORSOURCE列挙型のメンバ。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3オブジェクトのすべての面のマテリアルを設定する。
構文
object.SetMaterial(mat As Direct3DRMMaterial2)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- mat
- Direct3DRMMeshBuilder3オブジェクトのDirect3DRMMaterial2インターフェイス。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの指定されている頂点の法線ベクトルを設定する。
構文
object.SetNormal(idx As Long, x As Single, y As Single, z As Single)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- idx
- 設定する法線のインデックス。
- x, y, z
- 指定の法線に割り当てるベクトルのx、y、zの各要素。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトに対するパースペクティブ補正テクスチャマッピングを有効または無効にする。
構文
object.SetPerspective(perspectiveEnabled As CONST_DBOOLFLAGS)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- perspectiveEnabled
- メッシュをパースペクティブ補正でテクスチャマップする必要があればD_TRUEを、そうでなければD_FALSEを指定する。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトのレンダリングクオリティを設定する。
構文
object.SetQuality(q As CONST_D3DRMRENDERQUALITY)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- q
- 使用する新しいレンダリングクオリティを指定するCONST_D3DRMRENDERQUALITY列挙型のメンバ。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
オブジェクトクオリティには、3つのコンポーネントがある。つまり、シェーディングモード (フラットまたはグーロー。フォンは実装されておらず、デフォルトでグーローシェーディングになる)、照明タイプ (オンまたはオフ) および塗りつぶしモード (ポイント、ワイヤフレームまたはソリッド) である。
デバイスのクオリティを設定するには、Direct3DRMDevice3.SetQualityを用いる。デフォルトで、デバイスクオリティはD3DRMRENDER_FLAT (フラットシェーディング、照明オンおよびソリッド塗りつぶし) である。
Direct3DRMMeshBuilder3オブジェクトのクオリティを設定するには、SetQualityメソッドを用いる。デフォルトで、Direct3DRMMeshBuilder3オブジェクトのクオリティはD3DRMRENDER_GOURAUD (グーローシェーディング、照明オンおよびソリッド塗りつぶし) である。
ヒント: グーローシェーディングは、詳細レベルを頻繁にまたはすばやく変更するプログレッシブメッシュオブジェクトについて、フォンシェーディングよりもよいパフォーマンスを得られる。
Direct3D保持モードは、デバイスやオブジェクトの個々のコンポーネントに対する現在の設定の中で最も低位のクオリティで、オブジェクトにレンダリングを行う。たとえば、オブジェクトの現在のクオリティ設定がD3DRMRENDER_GOURAUDで、デバイスがD3DRMRENDER_FLATであると、オブジェクトはフラットシェーディング、ソリッド塗りつぶし、および照明オンでレンダリングされる。
オブジェクトの現在のクオリティ設定がD3DRMSHADE_GOURAUD|D3DRMLIGHT_OFF|D3DRMFILL_WIREFRAMEで、デバイスのクオリティ設定がD3DRMSHADE_FLAT|D3DRMLIGHT_ON|D3DRMFILL_POINTであると、オブジェクトはフラットシェーディング、照明オフ、およびポイント塗りつぶしモードでレンダリングされる。
これらのルールは、Direct3DRMMeshBuilder3オブジェクトおよびDirect3DRMProgressiveMeshオブジェクトに適用される。しかし、Direct3DRMMeshオブジェクトはこれらのルールに従わない。メッシュオブジェクトはデバイスのクオリティ設定を無視し、グループクオリティ設定を用いる(デフォルトでD3DRMRENDER_GOURAUD)。
参照
Direct3DRMMeshBuilder3オブジェクトのすべての面のテクスチャを設定する。
構文
object.SetTexture(tex As Direct3DRMTexture3)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- tex
- 必要なDirect3DRMTexture3オブジェクト。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの指定されている頂点のテクスチャ座標を設定する。
構文
object.SetTextureCoordinates(idx As Long, u As Single, v As Single)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- idx
- 設定する頂点のインデックス。
- u, v
- T指定のメッシュ頂点に割り当てるテクスチャ座標。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3オブジェクトのテクスチャトポロジを設定する。
構文
object.SetTextureTopology(wrap_u As CONST_DBOOLFLAGS, wrap_v As CONST_DBOOLFLAGS)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- wrap_u, wrap_v
- テクスチャトポロジを示す値。円筒形トポロジを、それぞれu次元およびv次元でテクスチャに持たせたい場合、この2つのパラメータの、少なくとも一方にD_TRUEを、そうでない場合には、D_FALSEを指定する。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
テクスチャトポロジフラグ、wrap_u、wrap_vは Direct3D直接モードレンダリング状態D3DRENDERSTATE_WRAPU、D3DRENDERSTATE_WRAPVの設定を制御する。ラッピングフラグがD_TRUEのとき、ラスタライザは、それが2つのテクスチャ座標間で短い方のパスであれば、テクスチャの1つの辺から反対側の辺に横断 (トロイダルマッピング) する。
1つの辺に沿って0.1から0.9の範囲のv座標を持つ三角形があるとする。WRAPVがD_FALSEであれば、テクスチャのほぼ全長が三角形に沿ってレンダリングされる。WRAPVがD_TRUEであれば、テクスチャの上部と下部のスライバがレンダリングされる。さらに、ラッピングフラグがD_TRUEのとき、テクスチャ座標の一部分だけが1.0より大きい値を持つとみなされるため、ラップがD_TRUEのときテクスチャは面に沿ってタイル化されないことになる。
ラッピング動作の制御は、テクスチャ座標の正しい解釈にとって必要である。単一のテクスチャが多くの面に沿ってラップされている場合、wrap_uとwrap_vパラメータをD_TRUEにセットする。モデルが面当たり1つのテクスチャしか持たないか、または1より大きいテクスチャ座標を使用してテクスチャの複数のコピーを単一の面に沿ってタイル化する場合、wrap_uとwrap_vをD_FALSEにセットする。
いくつかのインターフェイスは、SetTextureTopologyメソッドをエクスポーズする。Direct3DRMMeshBuilder3.SetTextureTopologyは、すべての要素面上のトポロジを更新し、Direct3DRMFace2.SetTextureTopologyによる設定をオーバーライドする。デフォルトでは、Direct3DRMFrame3.SetTextureTopologyは、デフォルトのマテリアルモードがD3DRMMATERIAL_FROMMESHであるため、メッシュを読み込む。マテリアルモードがD3DRMMATERIAL_FROMMESHでない場合、Direct3DRMFrame3.SetTextureTopologyはDirect3DRMMeshBuilder3.SetTextureTopologyによる設定をオーバーライドする。
Direct3DRMMeshBuilder3オブジェクトの指定されている頂点の位置を設定する。
構文
object.SetVertex(idx As Long, x As Single, y As Single, z As Single)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- idx
- 設定する頂点のインデックス。
- x, y, z
- 指定の頂点に割り当てる位置のx、y、zの各要素。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの指定されている頂点の色を設定する。
構文
object.SetVertexColor(idx As Long, c As Long)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- idx
- 設定する頂点のインデックス。
- c
- 指定の頂点に割り当てる色。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
参照
Direct3DRMMeshBuilder3オブジェクトの指定されている頂点の赤、緑、青の色要素を設定する。
構文
object.SetVertexColorRGB(idx As Long, r As Single, g As Single, b As Single)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- idx
- 設定する頂点のインデックス。
- r, g, b
- 指定の頂点に割り当てる色の赤、緑、青の各成分。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの頂点の位置に指定のオフセットを追加する。
構文
object.Translate(tx As Single, ty As Single, tz As Single)
要素
- object
- Direct3DRMMeshBuilder3オブジェクトを表すオブジェクト式。
- tx, ty, tz
- 各頂点位置のx座標、y座標、z座標に追加されるオフセット。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.