Share via


ID3DXTextureGutterHelper::ResampleTex メソッド

テクスチャをこの gutterhelper のパラメーター化に再サンプリングします。

構文

HRESULT ResampleTex(
  [in]  LPDIRECT3DTEXTURE9 pTextureIn,
  [in]  LPD3DXMESH         pMeshIn,
  [in]  D3DDECLUSAGE       Usage,
  [in]  UINT               UsageIndex,
  [out] LPDIRECT3DTEXTURE9 pTextureOut
);

パラメーター

pTextureIn [in]

種類: LPDIRECT3DTEXTURE9

pMeshIn の元のパラメーター化に対応するテクスチャ。 このテクスチャは、pTextureOut の作成に使用されます。

pMeshIn [in]

種類: LPD3DXMESH

元のパラメーター化と新しいパラメーター化を含むメッシュ。 インデックス 0 に新しいパラメーター化D3DDECLUSAGE_TEXCOORD格納する必要があります。

使用法 [入力]

種類: D3DDECLUSAGE

pMeshIn の元のパラメーター化を含む頂点宣言のコンポーネントを識別する頂点データ使用法 (UsageIndex と組み合わせて使用)。 「D3DDECLUSAGE」を参照してください。

UsageIndex [in]

型: UINT

pMeshIn の元のパラメーター化を含む頂点宣言のコンポーネントを識別する 0 から始まるインデックス (Usage と組み合わせて使用)。 新しいパラメーター化には、D3DDECLUSAGE_TEXCOORDとインデックス 0 の組み合わせが必要です。他の使用法とインデックスの組み合わせを使用できます。

pTextureOut [out]

種類: LPDIRECT3DTEXTURE9

再サンプリングされたテクスチャ。

戻り値

種類: HRESULT

メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合、戻り値は次のいずれかになります:D3DERR_INVALIDCALL、E_OUTOFMEMORY。

注釈

この関数の場合のパラメーター化は、メッシュの三角形をテクスチャ上の三角形にマップするテクスチャ座標のセットです。 新しいパラメーター化は、余白ヘルパー インターフェイスに含まれるテクスチャ座標のセットであり、元のパラメーター化は、入力メッシュに含まれるテクスチャ座標のセットです。

テクスチャ座標は 0 から 1 の間であり、新しいパラメーター化は頂点宣言でテクスチャ座標インデックス 0 として宣言する必要があります。 元のテクスチャとリサンプリングされたテクスチャの幅と高さは同じである必要があります。

たとえば、テクスチャの再サンプリングを準備するには、次のようにします。

  • D3DXCreateTextureFromFile などの関数を使用して、元のテクスチャ インターフェイス (以下の pOriginalTex) を作成します。
  • リサンプリングされたテクスチャの新しいテクスチャ インターフェイスを作成します (以下の pResampledTex)。 このテクスチャのサイズは、余白ヘルパー テクスチャのサイズ (幅と高さ) と一致している必要があります。
  • D3DXCreateTextureGutterHelper を呼び出して、次に示すように新しいパラメーター化を取得します。
// Given:
// pMesh points to a mesh that contains the original and new texture coordinates
ID3DXTextureGutterHelper * pGutterHelper;
    
// Mesh vertex declaration
D3DVERTEXELEMENT9 decl[] = {
    {0,  0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
    {0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0},
    // contains new set of texcoords
    {0, 24, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0}, 
    // contains original set of texcoords
    {0, 32, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1}, 
    D3DDECL_END()
};
    
// Create a gutter helper with the new parameterization
hr = D3DXCreateTextureGutterHelper(width, height, pMesh, 1, &pGutterHelper);  
    
// Resample the texture
hr = pGutterHelper->ResampleTex(pOriginalTex, pMesh, D3DDECLUSAGE_TEXCOORD, 
           1, pResampledTex); 
    
// Release the gutter helper interface when done with it

一般的なシナリオの 1 つは、UVAtlas を使用してテクスチャ アトラスを作成し、ResampleTex を使用してテクスチャを新しいパラメーター化に再サンプリングすることです。 atlases の詳細については、「 USING UVAtlas (Direct3D 9)」を参照してください。

要件

要件
ヘッダー
D3DX9Mesh.h
ライブラリ
D3dx9.lib

こちらもご覧ください

ID3DXTextureGutterHelper

D3DXUVAtlasCreate