Compartilhar via


Função D3DXUVAtlasPartition

Crie um atlas UV para uma malha.

Sintaxe

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

Ponteiro para uma malha de entrada (consulte ID3DXMesh) que contém a geometria do objeto para calcular o atlas. No mínimo, a malha deve conter dados de posição e coordenadas de textura 2D.

dwMaxChartNumber [in]

Tipo: UINT

O número máximo de gráficos no qual particionar a malha. Consulte comentários sobre os modos de particionamento. Use 0 para informar ao D3DX que o atlas deve ser parametrizado com base no stretch.

fMaxStretch [in]

Tipo: FLOAT

A quantidade de alongamento permitida. 0 significa que nenhum alongamento é permitido, 1 significa que qualquer quantidade de alongamento pode ser usada.

dwTextureIndex [in]

Tipo: DWORD

Índice de coordenadas de textura baseado em zero que identifica qual conjunto de coordenadas de textura usar.

pdwAdjacency [in]

Tipo: const DWORD*

Um ponteiro para uma matriz de dados de adjacência com 3 DWORDs por face, indicando quais triângulos são adjacentes uns aos outros (consulte ID3DXBaseMesh::GenerateAdjacency).

pdwFalseEdges

Tipo: const DWORD*

Uma matriz com 3 DWORDS por face. Cada rosto indica se uma borda é falsa ou não. Uma borda não falsa é indicada por -1, uma borda falsa é indicada por qualquer outro valor. Isso permite a parametrização de uma malha de quadras em que as bordas no meio de cada quadra não serão cortadas.

pfIMTArray [in]

Tipo: FLOAT*

Um ponteiro para uma matriz de tensores de métrica integrados que descreve como esticar um triângulo (consulte IntegratedMetricTensor).

pCallback [in]

Tipo: LPD3DXUVATLASCB

Um ponteiro para uma função de retorno de chamada (consulte LPD3DXUVATLASCB) que é útil para monitorar o progresso.

fCallbackFrequency [in]

Tipo: FLOAT

Especifique a frequência com que o D3DX chamará o retorno de chamada; um valor padrão razoável é 0,0001f.

pUserContent [in]

Tipo: LPVOID

Ponteiro para um valor definido pelo usuário que é passado para a função de retorno de chamada; normalmente usado por um aplicativo para passar um ponteiro para uma estrutura de dados que fornece informações de contexto para a função de retorno de chamada.

dwOptions [in]

Tipo: DWORD

Especifique a qualidade dos gráficos gerados combinando um ou mais sinalizadores D3DXUVATLAS .

ppMeshOut [in]

Tipo: LPD3DXMESH*

Ponteiro para a malha criada com o atlas (consulte ID3DXMesh).

pFacePartitioning [out]

Tipo: LPD3DXBUFFER

Um ponteiro para uma matriz dos dados finais de particionamento facial. Cada elemento contém um DWORD por rosto (consulte ID3DXBuffer).

ppVertexRemapArray [out]

Tipo: LPD3DXBUFFER*

Um ponteiro para uma matriz de vértices remapeados. Cada elemento de matriz identifica o vértice original de onde veio cada vértice final (se o vértice foi dividido durante a remapeamento). Cada elemento de matriz contém um DWORD por vértice.

ppPartitionResultAdjacency

Tipo: LPD3DXBUFFER*

Endereço de um ponteiro para uma interface ID3DXBuffer . Esse buffer conterá uma matriz de três DWORDs por rosto que especificam os três vizinhos para cada rosto na malha de saída. Esse parâmetro não deve ser NULL, pois a chamada subsequente para D3DXUVAtlasPack() exige isso.

pfMaxStretchOut [out]

Tipo: FLOAT*

Um ponteiro para o valor máximo de ampliação gerado pelo algoritmo atlas. O intervalo está entre 0,0 e 1,0.

pdwNumChartsOut [out]

Tipo: UINT*

Um ponteiro para o número de gráficos criados pelo algoritmo atlas. Se dwMaxChartNumber for muito baixo, esse parâmetro retornará o número mínimo de gráficos necessários para criar um atlas.

Valor retornado

Tipo: HRESULT

Se a função for bem-sucedida, o valor retornado será D3D_OK; caso contrário, o valor será D3DERR_INVALIDCALL.

Comentários

D3DXUVAtlasPartition é semelhante a D3DXUVAtlasCreate, exceto que D3DXUVAtlasPartition não executa a etapa final de empacotamento.

Requisitos

Requisito Valor
parâmetro
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Confira também

Funções UVAtlas

Uv Atlas Command-Line Tool (uvatlas.exe)