次の方法で共有


Mesh.WeldVertices

WeldVertices メソッド

使用例

  • メッシュの結合

オーバーロード リスト

public Void WeldVertices (WeldEpsilonsFlags, WeldEpsilons, Int32[], GraphicsStream)
public Void WeldVertices (WeldEpsilonsFlags, WeldEpsilons, Int32[])
public Void WeldVertices (WeldEpsilonsFlags, WeldEpsilons, Int32[], Int32, Int32, GraphicsStream)
public Void WeldVertices (WeldEpsilonsFlags, WeldEpsilons, GraphicsStream, GraphicsStream)
public Void WeldVertices (WeldEpsilonsFlags, WeldEpsilons, GraphicsStream, GraphicsStream, Int32, GraphicsStream)

使用例

メッシュの結合

この例では、Mesh.WeldVertices メソッドを使って、Microsoft® Direct3D® オブジェクトのまったく同じ頂点またはほぼ同じ頂点を結合する方法を示す。

頂点の属性が小さなイプシロン値 (以下のコード サンプルでは 0 に設定されている) と同じ場合は、結合処理が行われる。比較する頂点属性は、浮動小数点数値として WeldEpsilons 構造体に設定する。このような属性としては、3D 頂点位置、頂点法線、ディフューズ ライトの値、および 8 ステージのテクスチャ座標などがある。

結果として生成されるメッシュを検証することを推奨する。「メッシュの検証」を参照すること。

using Microsoft.DirectX.Direct3D;

protected Device device; // The rendering device
device = null;
Mesh pMesh = null;
GraphicsStream adj = null; // Graphics Stream object
ExtendedMaterial[] mtrl = null;
WeldEpsilons Epsilons = new WeldEpsilons();

// Load the mesh from the specified file
pMesh = Mesh.FromFile("tiger.x", MeshFlags.Managed, device, out adj,out mtrl);

// Perform a weld to try and remove excess vertices
// Weld the mesh using all epsilons of 0.0f
// A small epsilon such as 1e-6 works well too
pMesh.WeldVertices( 0, Epsilons, adj, adj);

// Validate the new pMesh
.
.
.

© 2002 Microsoft Corporation. All rights reserved. Terms of use.