Compartir a través de


Formatos de coordenadas de textura (Direct3D 9)

Las coordenadas de textura de Direct3D pueden incluir uno, dos, tres o cuatro elementos de punto flotante para abordar texturas con distintos niveles de dimensión. Una textura 1D ( una superficie de textura con dimensiones de 1 por n elementos de textura) se dirige mediante una coordenada de textura. El caso más común, las texturas 2D, se abordan con dos coordenadas de textura comúnmente llamadas you y v. Direct3D admite dos tipos de texturas 3D, mapas de entorno cúbico y texturas de volumen. Los mapas de entorno cúbicos no son realmente 3D, pero se abordan con un vector de 3 elementos. Para obtener más información, vea Cubic Environment Mapping (Direct3D 9) (Asignación de entorno cúbico (Direct3D 9).

Como se describe en Fixed Function FVF Codes (Direct3D 9), las aplicaciones codifican coordenadas de textura en el formato de vértice. El formato de vértice puede incluir varios conjuntos de coordenadas de textura. Use el D3DFVF_TEX0 a través de D3DFVF_TEX8 D3DFVF para describir un formato de vértice que no incluya coordenadas de textura o hasta ocho conjuntos.

Cada conjunto de coordenadas de textura puede tener entre uno y cuatro elementos. Los D3DFVF_TEXTUREFORMAT1 a través de D3DFVF_TEXTUREFORMAT4 marcas describen el número de elementos de una coordenada de textura de un conjunto, pero estas marcas no se usan por sí mismas. En su lugar, el conjunto D3DFVF_TEXCOORDSIZEN de macros usa estas marcas para crear patrones de bits que describen el número de elementos usados por un conjunto determinado de coordenadas de textura en el formato de vértice. Estas macros aceptan un único parámetro que identifica el índice del conjunto de coordenadas cuyo número de elementos se está definiendo. En el ejemplo siguiente se muestra cómo se usan estas macros.

// This vertex format contains two sets of texture coordinates.
// The first set (index 0) has 2 elements, and the second set 
// has 1 element. The description for this vertex format would be: 
//     dwFVF = D3DFVF_XYZ  | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX2 |
//             D3DFVF_TEXCOORDSIZE2(0) | D3DFVF_TEXCOORDSIZE1(1); 
//
typedef struct CVF
{
    D3DVECTOR position;
    D3DVECTOR normal;
    D3DCOLOR  diffuse;
    float     u, v;   // 1st set, 2D
    float     t;      // 2nd set, 1D
} CustomVertexFormat;

Nota

A excepción de las texturas de volumen y mapas de entorno cúbicos, los rasterizadores no pueden abordar las texturas mediante más de dos elementos. Las aplicaciones pueden proporcionar hasta tres elementos para una coordenada de textura, pero solo si la textura es un mapa de cubo, una textura de volumen o la marca de transformación de textura D3DTTFF_PROJECTED se usa. La marca D3DTTFF_PROJECTED hace que el rasterizador divida los dos primeros elementos por el tercer elemento (o n). Para obtener más información, vea Transformaciones de coordenadas de textura (Direct3D 9).

 

Coordenadas de textura