D3DXComputeIMTFromSignal function

Calculates per-triangle IMT's from a custom application-specified signal that varies over the surface of the mesh (generally at a higher frequency than vertex data). The signal is evaluated via a user-specified callback function.

Syntax

HRESULT D3DXComputeIMTFromSignal(
  _In_  LPD3DXMESH              pMesh,
  _In_  DWORD                   dwTextureIndex,
  _In_  UINT                    uSignalDimension,
  _In_  FLOAT                   fMaxUVDistance,
  _In_  DWORD                   dwOptions,
  _In_  LPD3DXIMTSIGNALCALLBACK pSignalCallback,
  _In_  VOID                    *pUserData,
        LPD3DXUVATLASCB         pStatusCallback,
        LPVOID                  pUserContext,
  _Out_ LPD3DXBUFFER            *ppIMTData
);

Parameters

pMesh [in]

Type: LPD3DXMESH

A pointer to an input mesh (see ID3DXMesh) which contains the object geometry for calculating the IMT.

dwTextureIndex [in]

Type: DWORD

Zero-based texture coordinate index that identifies which set of texture coordinates to use.

uSignalDimension [in]

Type: UINT

The number of components in each data point in the signal.

fMaxUVDistance [in]

Type: FLOAT

The maximum distance between vertices; the algorithm continues subdividing until the distance between all vertices is less than or equal to fMaxUVDistance.

dwOptions [in]

Type: DWORD

Texture wrap options. This is a combination of one or more D3DXIMT FLAGS.

pSignalCallback [in]

Type: LPD3DXIMTSIGNALCALLBACK

A pointer to a user-provided evaluator function, which will be used to compute the signal value at arbitrary U,V coordinates. The function follows the prototype of LPD3DXIMTSIGNALCALLBACK.

pUserData [in]

Type: VOID*

A pointer to a user-defined value which is passed to the signal callback function. Typically used by an application to pass a pointer to a data structure that provides context information for the callback function.

pStatusCallback

Type: LPD3DXUVATLASCB

A pointer to a callback function to monitor IMT computation progress.

pUserContext

Type: LPVOID

A pointer to a user-defined variable which is passed to the status callback function. Typically used by an application to pass a pointer to a data structure that provides context information for the callback function.

ppIMTData [out]

Type: LPD3DXBUFFER*

A pointer to the buffer (see ID3DXBuffer) containing the returned IMT array. This array can be provided as input to the D3DX UVAtlas Functions to prioritize texture-space allocation in the texture parameterization.

Return value

Type: HRESULT

If the function succeeds, the return value is D3D_OK; otherwise, the value is D3DERR_INVALIDCALL.

Remarks

This function requires that the input mesh contain a signal-to-mesh texture mapping (ie. texture coordinates). It allows the user to define a signal arbitrarily over the surface of the mesh.

Requirements

Requirement Value
Header
D3DX9Mesh.h
Library
D3dx9.lib

See also

UVAtlas Functions

Using UVAtlas (Direct3D 9)