Compartilhar via


Função D3DXUVAtlasCreate

Crie um atlas UV para uma malha.

Sintaxe

HRESULT D3DXUVAtlasCreate(
  _In_        LPD3DXMESH      pMesh,
  _In_        UINT            dwMaxChartNumber,
  _In_        FLOAT           fMaxStretch,
  _In_        UINT            dwWidth,
  _In_        UINT            dwHeight,
  _In_        FLOAT           fGutter,
  _In_        DWORD           dwTextureIndex,
  _In_  const DWORD           *pdwAdjacency,
        const DWORD           *pdwFalseEdges,
  _In_        FLOAT           *pfIMTArray,
  _In_        LPD3DXUVATLASCB pCallback,
  _In_        FLOAT           fCallbackFrequency,
  _In_        LPVOID          pUserContext,
  _In_        DWORD           dwOptions,
  _In_        LPD3DXMESH      *ppMeshOut,
  _Out_       LPD3DXBUFFER    *ppFacePartitioning,
  _Out_       LPD3DXBUFFER    *ppVertexRemapArray,
  _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.

dwWidth [in]

Tipo: UINT

Largura da textura.

dwHeight [in]

Tipo: UINT

Altura da textura.

fGutter [in]

Tipo: FLOAT

A distância mínima, em texels, entre dois gráficos no atlas. A sarjeta é sempre dimensionada pela largura; portanto, se uma medianiz de 2,5 for usada em uma textura 512x512, a distância mínima entre dois gráficos será 2,5 / 512,0 texels.

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 rosto, 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. Consulte D3DXUVATLAS.

ppMeshOut [in]

Tipo: LPD3DXMESH*

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

ppFacePartitioning [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 do qual cada vértice final veio (se o vértice foi dividido durante a remapeamento). Cada elemento de matriz contém um DWORD por vértice.

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

D3DXUVAtlasCriar pode particionar geometria de malha de duas maneiras:

  • Com base no número de gráficos
  • Com base no trecho máximo permitido. Se o trecho máximo permitido for 0, cada triângulo provavelmente estará em seu próprio gráfico.

Requisitos

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

Confira também

Funções UVAtlas

Uv Atlas Command-Line Tool (uvatlas.exe)