Condividi tramite


Formati di coordinate trama (Direct3D 9)

Le coordinate delle trame in Direct3D possono includere uno, due, tre o quattro elementi a virgola mobile per gestire le trame con diversi livelli di dimensione. Una trama 1D, una superficie di trama con dimensioni pari a 1 per n texel, viene indirizzata da una coordinata di trama. Il caso più comune, le trame 2D, vengono indirizzate con due coordinate di trama comunemente chiamate voi e v. Direct3D supporta due tipi di trame 3D, mappe dell'ambiente cubico e trame del volume. Le mappe di ambiente cubiche non sono realmente 3D, ma vengono indirizzate con un vettore a 3 elementi. Per informazioni dettagliate, vedere Mapping dell'ambiente cubico (Direct3D 9).For details, see Cubic Environment Mapping (Direct3D 9).

Come descritto in Codici FVF a funzione fissa (Direct3D 9), le applicazioni codificano le coordinate delle trame nel formato dei vertici. Il formato dei vertici può includere più set di coordinate di trama. Usare la D3DFVF_TEX0 tramite D3DFVF_TEX8 D3DFVF per descrivere un formato di vertice che non include coordinate di trama o fino a otto set.

Ogni set di coordinate della trama può avere tra uno e quattro elementi. Il D3DFVF_TEXTUREFORMAT1 tramite i flag D3DFVF_TEXTUREFORMAT4 descrive il numero di elementi in una coordinata di trama in un set, ma questi flag non vengono usati da soli. Invece, il set di macro D3DFVF_TEXCOORDSIZEN usa questi flag per creare modelli di bit che descrivono il numero di elementi usati da un determinato set di coordinate di trama nel formato vertice. Queste macro accettano un singolo parametro che identifica l'indice del set di coordinate il cui numero di elementi viene definito. Nell'esempio seguente viene illustrato l'utilizzo di queste macro.

// 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

Ad eccezione delle mappe dell'ambiente cubico e delle trame del volume, i rasterizzatori non possono gestire le trame usando più di due elementi. Le applicazioni possono fornire fino a tre elementi per una coordinata della trama, ma solo se la trama è una mappa del cubo, una trama del volume o il flag di trasformazione della trama D3DTTFF_PROJECTED viene usato. Il flag D3DTTFF_PROJECTED fa sì che il rasterizzatore divida i primi due elementi per il terzo elemento (o n). Per altre informazioni, vedere Trasformazioni delle coordinate delle trame (Direct3D 9).For more information, see Texture Coordinate Transformations (Direct3D 9).

 

Coordinate delle trame