Share via


Texture Coordinate Formats

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

Texture coordinates in Microsoft® Direct3D® Mobile can include one, two, three, or four floating point elements to address textures with varying levels of dimension. A 1-D texture — a texture surface with dimensions of 1-by-n texels — is addressed by one texture coordinate. The most common case, 2-D textures, are addressed with two texture coordinates commonly called u and v.

As described in Vertex Data Description, applications encode texture coordinates in the vertex format. The vertex format can include multiple sets of texture coordinates. Use the D3DMFVF_TEX0 through D3DMFVF_TEX4 flexible vertex format flags (see D3DMFVF Values) to describe a vertex format that includes no texture coordinates, or as many as four sets.

The D3DMFVF_TEXCOORDSIZE Macros set of macros create bit patterns that describe the number of elements used by a particular set of texture coordinates in the vertex format. These macros accept a single parameter that identifies the index of the coordinate set whose number of elements is being defined. The following code example shows how these macros are used.

// 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 = D3DMFVF_XYZ  | D3DMFVF_NORMAL | D3DMFVF_DIFFUSE |
//           D3DMFVF_TEX2 | D3DMFVF_TEXCOORDSIZE2(0) |
//           D3DMFVF_TEXCOORDSIZE1(1); 
//
typedef struct CVF
{
    D3DMVECTOR position;
    D3DMVECTOR normal;
    D3DMCOLOR  diffuse;
    float     u, v;   // 1st set, 2-D
    float     t;      // 2nd set, 1-D
} CustomVertexFormat;

Note

Rasterizers cannot address textures by using any more than two elements. Applications can supply up to three elements for a texture coordinate, but only if the D3DTTFF_PROJECTED texture transform flag (see D3DMTEXTURETRANSFORMFLAGS) is used. The D3DTTFF_PROJECTED flag causes the rasterizer to divide the first two elements by the third (or nth) element. For more information, see Texture Coordinate Transformations.

See Also

Concepts

Texture Coordinates