ID3DXTextureGutterHelper::ResampleTex-Methode
Ändert eine Textur in die Parametrisierung dieses Gutterhelpers.
Syntax
HRESULT ResampleTex(
[in] LPDIRECT3DTEXTURE9 pTextureIn,
[in] LPD3DXMESH pMeshIn,
[in] D3DDECLUSAGE Usage,
[in] UINT UsageIndex,
[out] LPDIRECT3DTEXTURE9 pTextureOut
);
Parameter
-
pTextureIn [in]
-
Typ: LPDIRECT3DTEXTURE9
Textur, die der ursprünglichen Parametrisierung in pMeshIn entspricht. Diese Textur wird verwendet, um pTextureOut zu erstellen.
-
pMeshIn [in]
-
Typ: LPD3DXMESH
Mesh mit den ursprünglichen und neuen Parametrisierungen. Sie ist erforderlich, um die neue Parametrisierung in D3DDECLUSAGE_TEXCOORD Index 0 zu speichern.
-
Verwendung [in]
-
Typ: D3DDECLUSAGE
Vertexdatenverwendung (in Kombination mit UsageIndex), die die Komponente der Vertexdeklaration identifiziert, die die ursprüngliche Parametrisierung in pMeshIn enthält. Siehe D3DDECLUSAGE.
-
UsageIndex [in]
-
Typ: UINT
Nullbasierter Index (in Kombination mit Usage), der die Komponente der Vertexdeklaration identifiziert, die die ursprüngliche Parametrisierung in pMeshIn enthält. Die Kombination aus D3DDECLUSAGE_TEXCOORD und Index 0 ist für die neue Parametrisierung erforderlich. jede andere Verwendungs-Index-Kombination kann verwendet werden.
-
pTextureOut [out]
-
Typ: LPDIRECT3DTEXTURE9
Textur neu gestampelt.
Rückgabewert
Typ: HRESULT
Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Methode fehlschlägt, kann der Rückgabewert einer der folgenden sein: D3DERR_INVALIDCALL, E_OUTOFMEMORY.
Bemerkungen
Eine Parametrisierung im Fall dieser Funktion ist ein Satz von Texturkoordinaten, der die Dreiecke eines Gitters den Dreiecken einer Textur zuordnet. Die neue Parametrisierung ist der Satz von Texturkoordinaten, die in der Rinnenhilfsschnittstelle enthalten sind, und die ursprüngliche Parametrisierung ist der Satz von Texturkoordinaten, die im Eingabegitter enthalten sind.
Es wird davon ausgegangen, dass die Texturkoordinaten zwischen 0 und 1 liegen, einschließlich, und die neue Parametrisierung muss in der Vertexdeklaration als Texturkoordinatenindex 0 deklariert werden. Die ursprüngliche Textur und die neu gestampelte Textur müssen die gleiche Breite und Höhe aufweisen.
So bereiten Sie z. B. die Neuzuordnung einer Textur vor:
- Erstellen Sie die ursprüngliche Texturschnittstelle (pOriginalTex unten) mithilfe einer Funktion wie D3DXCreateTextureFromFile.
- Erstellen Sie die neue Texturschnittstelle für die neu gestampelte Textur (pResampledTex unten). Die Größe dieser Textur muss mit der Größe (Breite und Höhe) der Rinnehilfstextur übereinstimmen.
- Rufen Sie D3DXCreateTextureGutterHelper auf, um die neue Parametrisierung wie hier gezeigt abzurufen:
// 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
Ein gängiges Szenario könnte sein, UVAtlas zum Erstellen eines Texturatlas zu verwenden und dann ResampleTex zu verwenden, um die Textur in die neue Parametrisierung zu integrieren. Weitere Informationen zu Atlanten finden Sie unter Using UVAtlas (Direct3D 9).
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch