Delen via


Patrooncoördinaatindelingen (Direct3D 9)

Patrooncoördinaten in Direct3D kunnen één, twee, drie of vier drijvendekommaelementen bevatten om patronen met verschillende dimensieniveaus aan te pakken. Een 1D-textuur - een textuuroppervlak met afmetingen van 1-by-n texels - wordt geadresseerd door één patrooncoördinaat. De meest voorkomende gevallen, 2D-patronen, worden behandeld met twee patrooncoördinaten die u en v worden genoemd. Direct3D ondersteunt twee soorten 3D-patronen, kubieke-omgevingskaarten en volumetextuur. Kubieke omgevingskaarten zijn niet echt 3D, maar ze worden aangepakt met een vector met drie elementen. Zie Kubieke omgevingstoewijzing (Direct3D 9)voor meer informatie.

Zoals beschreven in Vaste functie FVF-codes (Direct3D 9), coderen toepassingen patrooncoördinaten in de hoekpuntindeling. De hoekpuntindeling kan meerdere sets patrooncoördinaten bevatten. Gebruik de D3DFVF_TEX0 via D3DFVF_TEX8 D3DFVF- om een hoekpuntindeling te beschrijven die geen patrooncoördinaten of zo veel als acht sets bevat.

Elke patrooncoördinaatset kan tussen één en vier elementen bevatten. De D3DFVF_TEXTUREFORMAT1 via D3DFVF_TEXTUREFORMAT4 vlaggen beschrijven het aantal elementen in een patrooncoördinaat in een set, maar deze vlaggen worden niet door zichzelf gebruikt. In plaats daarvan gebruikt de D3DFVF_TEXCOORDSIZEN set macro's deze vlaggen om bitpatronen te maken die het aantal elementen beschrijven dat wordt gebruikt door een bepaalde set patrooncoördinaten in de hoekpuntindeling. Deze macro's accepteren één parameter die de index van de coördinatenset identificeert waarvan het aantal elementen wordt gedefinieerd. In het volgende voorbeeld ziet u hoe deze macro's worden gebruikt.

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

Notitie

Met uitzondering van kubieke-omgevingstoewijzingen en volumetextuur kunnen rasterizers geen patronen aanpakken door meer dan twee elementen te gebruiken. Toepassingen kunnen maximaal drie elementen leveren voor een patrooncoördinaat, maar alleen als het patroon een kubuskaart, een volumepatroon of de vlag D3DTTFF_PROJECTED bitmappatroontransformatie wordt gebruikt. De D3DTTFF_PROJECTED vlag zorgt ervoor dat de rasterizer de eerste twee elementen deelt door het derde (of n) element. Zie Bitmapcoördinaattransformaties (Direct3D 9)voor meer informatie.

 

patrooncoördinaten