Udostępnij za pośrednictwem


D3DFVF

Elastyczne stałe formatu wierzchołka lub kody FVF służą do opisywania zawartości wierzchołków przeplatanych w jednym strumieniu danych, który będzie przetwarzany przez potok funkcji stałej.

Flagi danych wierzchołka

Poniższe flagi opisują format wierzchołka. Aby uzyskać informacje dotyczące formatów wierzchołków, zobacz Fixed Function FVF Codes (Direct3D 9).

#define Opis Kolejność i typ danych
D3DFVF_DIFFUSE Format wierzchołka zawiera rozproszony składnik koloru. DWORD w kolejności ARGB. Zobacz D3DCOLOR_ARGB.
D3DFVF_NORMAL Format wierzchołka zawiera wektor normalny wierzchołka. Tej flagi nie można używać z flagą D3DFVF_XYZRHW. float, float, float
D3DFVF_PSIZE Format wierzchołka określony w rozmiarze punktu. Ten rozmiar jest wyrażony w jednostkach przestrzeni kamery dla wierzchołków, które nie są przekształcane i oświetlone, oraz w jednostkach przestrzeni urządzenia dla przekształconych i oświetlonych wierzchołków. spławik
D3DFVF_SPECULAR Format wierzchołka zawiera składnik koloru widmowego. DWORD w kolejności ARGB. Zobacz D3DCOLOR_ARGB.
D3DFVF_XYZ Format wierzchołka zawiera położenie nietransformowanego wierzchołka. Tej flagi nie można używać z flagą D3DFVF_XYZRHW. float, float, float.
D3DFVF_XYZRHW Format wierzchołka zawiera położenie przekształconego wierzchołka. Tej flagi nie można używać z flagami D3DFVF_XYZ ani D3DFVF_NORMAL. float, float, float, float.
D3DFVF_XYZB1 za pośrednictwem D3DFVF_XYZB5 Format wierzchołka zawiera dane położenia i odpowiednią liczbę wartości wagi (beta) używanych w przypadku operacji łączenia wierzchołków wieloetapowych. Obecnie funkcja Direct3D może łączyć się z maksymalnie trzema wartościami wagowymi i czterema macierzami mieszanymi. Aby uzyskać więcej informacji na temat używania macierzy mieszanych, zobacz Indeksowane mieszanie wierzchołków (Direct3D 9). 1, 2 lub 3 zmiennoprzecinki. W przypadku użycia D3DFVF_LASTBETA_UBYTE4 ostatnia waga mieszana jest traktowana jako DWORD.
D3DFVF_XYZW Format wierzchołka zawiera przekształcone i obcięte dane (x, y, z, w). Funkcja ProcessVertices nie wywołuje clippera, zamiast tego generuje dane we współrzędnych klipu. Ta stała jest przeznaczona dla potoku programowalnego wierzchołka i może być używana tylko z programem . float, float, float, float, float

 

Flagi tekstury

Poniższe flagi opisują flagi tekstury używane przez potok funkcji stałej.

#define Opis
D3DFVF_TEX0 — D3DFVF_TEX8 Liczba zestawów współrzędnych tekstury dla tego wierzchołka. Rzeczywiste wartości tych flag nie są sekwencyjne.
D3DFVF_TEXCOORDSIZEN(coordIndex) Zdefiniuj zestaw danych współrzędnych tekstury. n wskazuje wymiar współrzędnych tekstury. coordIndex wskazuje numer indeksu współrzędnych tekstury. Zobacz współrzędne D3DFVF_TEXCOORDSIZEN i tekstury oraz etapy tekstury.

 

Maskuj flagi

Poniższe flagi opisują flagi maski używane przez potok funkcji stałej.

#define Opis
D3DFVF_POSITION_MASK Maskuj bity położenia.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 Maskuj wartości dla bitów zarezerwowanych w FVF. Nie używaj.
D3DFVF_TEXCOUNT_MASK Maskuj wartość bitów flagi tekstury.

 

Różne flagi

Poniższe flagi opisują różne flagi używane przez potok funkcji stałej.

#define Opis
D3DFVF_LASTBETA_D3DCOLOR Ostatnie pole beta w danych pozycji wierzchołka będzie typu D3DCOLOR. Dane w polach beta są używane z osłoną palet macierzy do określania indeksów macierzy.
D3DFVF_LASTBETA_UBYTE4 Ostatnie pole beta w danych pozycji wierzchołka będzie typu UBYTE4. Dane w polach beta są używane z osłoną palet macierzy do określania indeksów macierzy.
// Given the following vertex data definition: 
struct VERTEXPOSITION
{
   float pos[3];
   union 
   {
      float beta[5];
      struct
      {
         float weights[4];
         DWORD MatrixIndices;  // Used as UBYTEs
      }
   }
};

Biorąc pod uwagę, że FVF jest zadeklarowany jako: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Wagi i indeksy MatrixIn indeksy są uwzględniane w wersji beta[5], gdzie D3DFVF_LASTBETA_UBYTE4 mówi, aby interpretować ostatni DWORD w wersji beta[5] jako typ UBYTE4.

D3DFVF_TEXCOUNT_SHIFT Liczba bitów, według których ma być przesunięta wartość całkowita, która identyfikuje liczbę współrzędnych tekstury dla wierzchołka. Ta wartość może być używana, jak pokazano poniżej.

              
              DWORD dwNumTextures = 1; Wierzchołek ma tylko jeden zestaw współrzędnych. 

Przenieś wartość do użycia podczas tworzenia kombinacji // elastycznego formatu wierzchołka (FVF). dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

// Now, create an FVF combination using the shifted value.

 

Przykłady

W poniższych przykładach przedstawiono inne typowe kombinacje flag.

// Untransformed vertex for lit, untextured, Gouraud-shaded content.
dwFVF = ( D3DFVF_XYZ | D3DFVF_DIFFUSE );
// Untransformed vertex for unlit, untextured, Gouraud-shaded 
//   content with diffuse material color specified per vertex.
dwFVF = ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE );
// Untransformed vertex for light-map-based lighting.
dwFVF = ( D3DFVF_XYZ | D3DFVF_TEX2 );
// Transformed vertex for light-map-based lighting with shared rhw.
dwFVF = ( D3DFVF_XYZRHW | D3DFVF_TEX2 );
// Heavyweight vertex for unlit, colored content with two 
//   sets of texture coordinates.
dwFVF = ( D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | 
          D3DFVF_SPECULAR | D3DFVF_TEX2 );

Informacje o stałej

Wymaganie Wartość
Nagłówek d3d9types.h
Minimalny system operacyjny Windows 98

 

stałych Direct3D

stałe kody FVF funkcji (Direct3D 9)

Geometry Blending (Direct3D 9)