Función D3DXUVAtlasCreate
Cree un atlas UV para una malla.
Sintaxis
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
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 usar cualquier cantidad de extensión.
-
dwWidth [in]
-
Tipo: UINT
Ancho de textura.
-
dwHeight [in]
-
Tipo: UINT
Alto de textura.
-
fGutter [in]
-
Tipo: FLOAT
Distancia mínima, en elementos de textura, entre dos gráficos del atlas. El medianil siempre se escala por el ancho; por lo tanto, si se usa un margen de 2,5 en una textura de 512 x 512, la distancia mínima entre dos gráficos es de 2,5 / 512,0 elementos de textura.
-
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, un borde false se indica mediante cualquier otro valor. Esto permite la parametrización de una malla de quads donde los bordes hacia abajo en el medio de cada cuadrángulo 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 (vea 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. Véase D3DXUVATLAS.
-
ppMeshOut [in]
-
Tipo: LPD3DXMESH*
Puntero a la malla creada con el atlas (consulte ID3DXMesh).
-
ppFacePartitioning [out]
-
Tipo: LPD3DXBUFFER*
Puntero a una matriz de los datos finales de creación de particiones faciales. Cada elemento contiene un DWORD por cara (consulte 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.
-
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 realiza correctamente, el valor devuelto es D3D_OK; de lo contrario, el valor es D3DERR_INVALIDCALL.
Comentarios
D3DXUVAtlasCreate puede particionar la geometría de malla de dos maneras:
- Basado en el número de gráficos
- Según la extensión máxima permitida. Si la extensión máxima permitida es 0, es probable que cada triángulo esté en su propio gráfico.
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|
Consulte también