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 |
|
Biblioteca |
|
Confira também