Mesh クラス
Mesh クラス
使用例
- メッシュ オブジェクトの作成
- ファイルからのメッシュのロード
メッシュ オブジェクトを操作するには、Mesh クラスのメソッドとプロパティを使う。メッシュは、テクスチャやマテリアルなどのリソース、および位置データや隣接性データなどの属性を保持する、抽象的なデータ コンテナである。
定義
Visual Basic | Public Class Mesh Inherits BaseMesh |
C# | public class Mesh : BaseMesh |
Managed C++ | public __gc class Mesh : public BaseMesh |
JScript | public class Mesh extends BaseMesh |
メンバ テーブル
次のテーブルは、Mesh オブジェクトによって公開されているメンバの一覧である。左側のタブをクリックし、表示したいメンバの種類を選ぶこと。
イベント
イベント | 説明 |
---|---|
Disposing | オブジェクトで Disposing イベントを検出するイベント ハンドラを追加する。 |
フィールド
フィールド | 説明 |
---|---|
m_pDevice | メッシュに関連付けられているデバイスを取得する。 BaseMesh から継承する。 |
メソッド
メソッド | 説明 |
---|---|
Box | 左手座標系を使い、軸に沿ったボックスを含むメッシュを作成する。 |
Clean | 単純化の準備として、メッシュのクリーニングを行う。 |
Clone | オブジェクトを複製する。BaseMesh から継承する。 |
ComputeNormals | メッシュに含まれる各頂点の法線を計算する。BaseMesh から継承する。 |
ComputeTangent | テクスチャ ステージに与えられたテクスチャ座標の接線ベクトル算出する。 |
ConvertAdjacencyToPointReps | メッシュの隣接性情報をポイント表現の配列に変換する。BaseMesh から継承する。 |
ConvertMeshSubsetToSingleStrip | 指定したメッシュ サブセットを 1 つの三角形ストリップに変換する。 |
ConvertMeshSubsetToStrips | 指定したメッシュ サブセットを 1 連のストリップに変換する。 |
ConvertPointRepsToAdjacency | ポイント表現データをメッシュの隣接性情報に変換する。BaseMesh から継承する。 |
Cylinder | 左手座標系を使い、円柱のメッシュを作成する。 |
Dispose | オブジェクトが使ったアンマネージのリソースを直ちに解放する。 |
DrawSubset | メッシュのサブセットを描画する。BaseMesh から継承する。 |
Equals | このインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返す。 |
Finalize | Garbage Collector がオブジェクトを破棄する前に、オブジェクトが使ったリソースを強制的に解放する。 |
FromFile | .x ファイルからメッシュをロードする。 |
FromStream | メモリからメッシュをロードする。 |
FromX | オブジェクトからメッシュをロードする。 |
GenerateAdjacency | メッシュのインデックスに基づいて隣接性情報を生成する。BaseMesh から継承する。 |
GetHashCode | このインスタンスのハッシュ コードを返す。 |
Intersect | レイがメッシュに当たるかどうかを判別する。 |
IntersectSubset | 指定したレイとメッシュ サブセットを交差させる。 |
LoadHierarchy | x. ファイルの最初のフレーム階層をロードする。 |
LoadHierarchyFromFile | x. ファイルの最初のフレーム階層をロードする。 |
LockAttributeBuffer | 属性バッファをロックし、属性バッファ メモリへの参照を取得する。 |
LockIndexBuffer | インデックス バッファをロックし、インデックス バッファ メモリへの参照を取得する。BaseMesh から継承する。 |
LockVertexBuffer | 頂点バッファをロックし、頂点バッファ メモリへの参照を取得する。BaseMesh から継承する。 |
Mesh | オブジェクトの新しいインスタンスを初期化する。 |
OnLostDevice | このメッシュの作成時に有効になっているメッシュ オプションを取得する。BaseMesh から継承する。 |
op_Equality | |
op_Inequality | |
Optimize | メッシュの面および頂点の順番変更を制御し、パフォーマンスを最適化して、出力メッシュを生成する。 |
OptimizeInPlace | メッシュの面および頂点の順番変更を制御し、パフォーマンスを最適化する。 |
Polygon | 左手座標系を使い、n 面のポリゴンを含むメッシュを作成する。 |
raise_Disposing | |
Save | |
SaveHierarchyToFile | フレーム階層を .x ファイルに保存する。 |
SetIndexBufferData | インデックス バッファをロックし、インデックス バッファ メモリへの参照を取得する。BaseMesh から継承する。 |
SetVertexBufferData | 頂点バッファをロックし、頂点バッファ メモリへの参照を取得する。BaseMesh から継承する。 |
Simplify | 指定した MinValue にできるだけ近づくように重み付けを行って、単純化されたメッシュを生成する。 |
Sphere | 左手座標系を使い、球を含むメッシュを作成する。 |
Split | 指定したサイズより小さいサイズで 1 つのメッシュを複数のメッシュに分割する。 |
Teapot | 左手座標系を使い、ティーポットのメッシュを作成する。 |
TessellateNPatches | N パッチ テセレーションを使って、指定したメッシュをテセレーションする。 |
TextFromFont | デバイスと .NET フォント オブジェクト用のフォント オブジェクトを作成する。 |
Torus | 左手座標系を使い、トーラスのメッシュを作成する。 |
UnlockAttributeBuffer | 属性バッファのロックを解除する。 |
UnlockIndexBuffer | インデックス バッファのロックを解除する。BaseMesh から継承する。 |
UnlockVertexBuffer | 頂点バッファのロックを解除する。BaseMesh から継承する。 |
UpdateSemantics | このメソッドを利用すると、ユーザーは頂点バッファのデータ レイアウトを変更せずに、メッシュの宣言を変更できる。古い宣言と新しい宣言のフォーマットが同じ頂点サイズである場合にのみ、呼び出しが有効となる。BaseMesh から継承する。 |
Validate | メッシュを検証する。 |
WeldVertices |
プロパティ
プロパティ | 説明 |
---|---|
AttributeTable | メッシュの属性テーブル、またはメッシュの属性テーブルに格納されているエントリの数を取得する。BaseMesh から継承する。 |
Declaration | メッシュに含まれる頂点を記述する宣言を取得する。BaseMesh から継承する。 |
Device | メッシュに関連付けられているデバイスを取得する。 BaseMesh から継承する。 |
Disposed | オブジェクトが解放されている場合は TRUE、それ以外の場合は FALSE に設定される値を取得する。 |
IndexBuffer | インデックス バッファ内のデータを取得する。BaseMesh から継承する。 |
NumberBytesPerVertex | 頂点ごとのバイト数を取得する。BaseMesh から継承する。 |
NumberFaces | メッシュに含まれる面の数を取得する。BaseMesh から継承する。 |
NumberVertices | メッシュに含まれる頂点の数を取得する。BaseMesh から継承する。 |
Options | このメッシュの作成時に有効になっているメッシュ オプションを取得する。BaseMesh から継承する。 |
VertexBuffer | 頂点バッファ内のデータを取得する。BaseMesh から継承する。 |
VertexFormat | 固定機能の頂点の値を取得する。BaseMesh から継承する。 |
継承の階層構造
Mesh
使用例
メッシュ オブジェクトの作成
この例では、Mesh オブジェクトを作成する方法を示す。このオブジェクトは、事前に作成されたメッシュ ファイル、ジオメトリ、頂点バッファの処理を自動化する。
using Microsoft.DirectX.Direct3D;
.
.
.
public class myMeshes : Form
{
// Global variables for this project
Device device = null; // Create rendering device
PresentParameters presentParams = new PresentParameters();
Mesh mesh = null; // Create mesh object
// Custom Direct3D vertex format used by the vertex buffer
struct myVertex
{
public Vector3 p; // vertex position
public Vector3 n; // vertex normal
public static readonly VertexFormat format = VertexFormat.Xyz |
VertexFormat.Normal;
};
private int numTriangles = 0; // Number of triangles in one wall of mesh
// Compute the total number of triangles, numTriangles
.
.
.
public bool InitializeGraphics()
{
try
{
device = new Device(0, DeviceType.Hardware, this,
CreateFlags.SoftwareVertexProcessing,
presentParams);
mesh = new Mesh( numTriangles, numTriangles * 3,
0, myVertex.format, device );
pause = false;
return true;
}
catch { return false; }
}
// Call InitializeGraphics from Main...
}
ファイルからのメッシュのロード
この例では、マテリアル構造体を作成し、ファイルからメッシュをロードする。
このコードでは、まず Device と、ロードされたメッシュ データを格納する ExtendedMaterial 構造体を作成する。
Mesh.FromFile(String,MeshFlags,Device,ExtendedMaterial[]) メソッドを使って、ローカル ファイルをロードする。MeshFlags 列挙の SystemMemory 定数は、頂点バッファおよびインデックス バッファのためにシステム メモリ (ページング可能な RAM 以外) を使うように指定する。
FromFile(String,MeshFlags,Device,ExtendedMaterial[]) は、ファイルからメッシュ データをロードするために使う、オーバーロードされた 8 つの FromFile メソッドの内の 1 つである。
using Microsoft.DirectX.Direct3D;
public class Meshes : Form
{
// Global variables for this project
Device device = null; // Rendering device
PresentParameters presentParams = new PresentParameters();
.
.
.
// Create the Device object
device = new Device(0,
DeviceType.Hardware,
this,
CreateFlags.SoftwareVertexProcessing,
presentParams);
ExtendedMaterial[] materials = null;
// Load the mesh from the specified file
mesh = Mesh.FromFile("tiger.x",
MeshFlags.SystemMemory,
device,
out materials);
.
.
.
}
クラスの情報
名前空間 | Microsoft.DirectX.Direct3D |
アセンブリ | Microsoft.DirectX.Direct3DX (microsoft.directx.direct3dx.dll) |
厳密名 | Microsoft.DirectX.Direct3DX, Version=0293, Culture=neutral, PublicKeyToken=d3231b57b74a1492 |
参照
© 2002 Microsoft Corporation. All rights reserved. Terms of use.