Función D3DXUVAtlasPartition

Cree un atlas UV para una malla.

Sintaxis

HRESULT D3DXUVAtlasPartition(
  _In_        LPD3DXMESH      pMesh,
  _In_        UINT            dwMaxChartNumber,
  _In_        FLOAT           fMaxStretch,
  _In_        DWORD           dwTextureIndex,
  _In_  const DWORD           *pdwAdjacency,
        const DWORD           *pdwFalseEdges,
  _In_        FLOAT           *pfIMTArray,
  _In_        LPD3DXUVATLASCB pCallback,
  _In_        FLOAT           fCallbackFrequency,
  _In_        LPVOID          pUserContent,
  _In_        DWORD           dwOptions,
  _In_        LPD3DXMESH      *ppMeshOut,
  _Out_       LPD3DXBUFFER    pFacePartitioning,
  _Out_       LPD3DXBUFFER    *ppVertexRemapArray,
              LPD3DXBUFFER    *ppPartitionResultAdjacency,
  _Out_       FLOAT           *pfMaxStretchOut,
  _Out_       UINT            *pdwNumChartsOut
);

Parámetros

pMesh [in]

Tipo: LPD3DXMESH

Puntero a una malla de entrada (vea ID3DXMesh) que contiene la geometría del objeto para calcular el atlas. Como mínimo, la malla debe contener datos de posición y coordenadas de textura 2D.

dwMaxChartNumber [in]

Tipo: UINT

Número máximo de gráficos en los que se va a particionar la malla. Vea los comentarios sobre los modos de creación de particiones. Use 0 para indicar a D3DX que el atlas debe parametrizarse en función de la extensión.

fMaxStretch [in]

Tipo: FLOAT

Cantidad de extensión permitida. 0 significa que no se permite ningún extendido, 1 significa que se puede utilizar cualquier cantidad de extensión.

dwTextureIndex [in]

Tipo: DWORD

Índice de coordenadas de textura de base cero que identifica qué conjunto de coordenadas de textura se van a usar.

pdwAdjacency [in]

Tipo: const DWORD*

Puntero a una matriz de datos de adyacencia con 3 DWORD por cara, lo que indica qué triángulos están adyacentes entre sí (vea ID3DXBaseMesh::GenerateAdjacency).

pdwFalseEdges

Tipo: const DWORD*

Matriz con 3 DWORDS por cara. Cada cara indica si un borde es false o no. Un borde distinto de false se indica mediante -1, cualquier otro valor indica un borde falso. Esto permite la parametrización de una malla de quads donde los bordes a la mitad de cada cuadrilátero no se cortarán.

pfIMTArray [in]

Tipo: FLOAT*

Puntero a una matriz de tensores de métricas integrados que describe cómo estirar un triángulo (consulte IntegratedMetricTensor).

pCallback [in]

Tipo: LPD3DXUVATLASCB

Puntero a una función de devolución de llamada (consulte LPD3DXUVATLASCB) que es útil para supervisar el progreso.

fCallbackFrequency [in]

Tipo: FLOAT

Especifique la frecuencia con la que D3DX llamará a la devolución de llamada; un valor predeterminado razonable es 0,0001f.

pUserContent [in]

Tipo: LPVOID

Puntero a un valor definido por el usuario que se pasa a la función de devolución de llamada; Normalmente, una aplicación usa para pasar un puntero a una estructura de datos que proporciona información de contexto para la función de devolución de llamada.

dwOptions [in]

Tipo: DWORD

Especifique la calidad de los gráficos generados mediante la combinación de una o varias marcas D3DXUVATLAS .

ppMeshOut [in]

Tipo: LPD3DXMESH*

Puntero a la malla creada con el atlas (consulte ID3DXMesh).

pFacePartitioning [out]

Tipo: LPD3DXBUFFER

Puntero a una matriz de los datos finales de creación de particiones faciales. Cada elemento contiene un DWORD por cara (vea ID3DXBuffer).

ppVertexRemapArray [out]

Tipo: LPD3DXBUFFER*

Puntero a una matriz de vértices reasignados. Cada elemento de matriz identifica el vértice original del que procede cada vértice final (si el vértice se dividió durante la reasignación). Cada elemento de matriz contiene un DWORD por vértice.

ppPartitionResultAdjacency

Tipo: LPD3DXBUFFER*

Dirección de un puntero a una interfaz ID3DXBuffer . Este búfer contendrá una matriz de tres DWORD por cara que especifique los tres vecinos para cada cara de la malla de salida. Este parámetro no debe ser NULL, porque la llamada posterior a D3DXUVAtlasPack() la requiere.

pfMaxStretchOut [out]

Tipo: FLOAT*

Puntero al valor máximo de extensión generado por el algoritmo atlas. El intervalo está comprendido entre 0,0 y 1,0.

pdwNumChartsOut [out]

Tipo: UINT*

Puntero al número de gráficos creados por el algoritmo atlas. Si dwMaxChartNumber es demasiado bajo, este parámetro devolverá el número mínimo de gráficos necesarios para crear un atlas.

Valor devuelto

Tipo: HRESULT

Si la función se ejecuta correctamente, el valor devuelto es D3D_OK; de lo contrario, el valor es D3DERR_INVALIDCALL.

Comentarios

D3DXUVAtlasPartition es similar a D3DXUVAtlasCreate, salvo que D3DXUVAtlasPartition no realiza el paso de empaquetado final.

Requisitos

Requisito Value
Encabezado
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Consulte también

Funciones UVAtlas

Herramienta uv Atlas Command-Line (uvatlas.exe)