Поделиться через


D3DFVF

Константы гибкого формата вершин или коды FVF используются для описания содержимого вершин, чередующихся в одном потоке данных, который будет обрабатываться конвейером фиксированной функции.

Флаги данных вершин

Следующие флаги описывают формат вершин. Сведения о форматах вершин см. в разделе Фиксированные коды FVF функции (Direct3D 9).

#define Описание Порядок и тип данных
D3DFVF_DIFFUSE Формат вершин включает в себя компонент рассеянного цвета. DWORD в порядке ARGB. См . D3DCOLOR_ARGB.
D3DFVF_NORMAL Формат вершины включает вектор нормали вершины. Этот флаг нельзя использовать с флагом D3DFVF_XYZRHW. float, float, float
D3DFVF_PSIZE Формат вершины, указанный в размере точек. Этот размер выражается в единицах пространства камеры для вершин, которые не преобразуются и не освещаются, и в единицах пространства устройства для преобразованных и освещенных вершин. FLOAT
D3DFVF_SPECULAR Формат вершины включает компонент зеркального цвета. DWORD в порядке ARGB. См . D3DCOLOR_ARGB.
D3DFVF_XYZ Формат вершины включает положение непередаченной вершины. Этот флаг нельзя использовать с флагом D3DFVF_XYZRHW. float, float, float.
D3DFVF_XYZRHW Формат вершины включает положение преобразованной вершины. Этот флаг нельзя использовать с флагами D3DFVF_XYZ или D3DFVF_NORMAL. float, float, float, float.
D3DFVF_XYZB1 по D3DFVF_XYZB5 Формат вершины содержит данные о положении и соответствующее количество весовых (бета-) значений, используемых для операций смешения многоматриксных вершин. В настоящее время Direct3D может смешивать до трех весовых значений и четырех матриц смешения. Дополнительные сведения об использовании матриц смешения см. в разделе Индексированное наложение вершин (Direct3D 9). 1, 2 или 3 числа с плавающей точкой. При использовании D3DFVF_LASTBETA_UBYTE4 последний вес смешивания обрабатывается как DWORD.
D3DFVF_XYZW Формат вершины содержит преобразованные и обрезанные (x, y, z, w) данные. ProcessVertices не вызывает клипера, а выводит данные в координатах клипа. Эта константа предназначена для программируемого конвейера вершин и может использоваться только с ним. float, float, float, float

 

Флаги текстуры

Следующие флаги описывают флаги текстуры, используемые конвейером фиксированной функции.

#define Описание
D3DFVF_TEX0 — D3DFVF_TEX8 Число наборов координат текстуры для этой вершины. Фактические значения для этих флагов не являются последовательными.
D3DFVF_TEXCOORDSIZEN(coordIndex) Определите набор данных координат текстуры. n указывает размер координат текстуры. coordIndex указывает номер индекса координат текстуры. См . D3DFVF_TEXCOORDSIZENкоординаты и текстуры и Этапы текстуры.

 

Флаги маски

Следующие флаги описывают флаги маски, используемые конвейером фиксированной функции.

#define Описание
D3DFVF_POSITION_MASK Маска для битов положения.
D3DFVF_RESERVED0, D3DFVF_RESERVED2 Маскирование значений для зарезервированных битов в FVF. Не используйте.
D3DFVF_TEXCOUNT_MASK Значение маски для битов флага текстуры.

 

Прочие флаги

Следующие флаги описывают различные флаги, используемые конвейером фиксированной функции.

#define Описание
D3DFVF_LASTBETA_D3DCOLOR Последнее бета-поле в данных положения вершины будет иметь тип D3DCOLOR. Данные в полях бета-версии используются с обжигом матричной палитры для указания матричных индексов.
D3DFVF_LASTBETA_UBYTE4 Последнее бета-поле в данных о положении вершины будет иметь тип UBYTE4. Данные в полях бета-версии используются с обжигом матричной палитры для указания матричных индексов.
// Given the following vertex data definition: 
struct VERTEXPOSITION
{
   float pos[3];
   union 
   {
      float beta[5];
      struct
      {
         float weights[4];
         DWORD MatrixIndices;  // Used as UBYTEs
      }
   }
};

При этом FVF объявляется как: D3DFVF_XYZB5 | D3DFVF_LASTBETA_UBYTE4. Weight и MatrixIndices включены в бета-версию[5], где D3DFVF_LASTBETA_UBYTE4 означает интерпретировать последнее значение DWORD в beta[5] как тип UBYTE4.

D3DFVF_TEXCOUNT_SHIFT Число битов, на которое сдвигается целочисленное значение, определяющее количество координат текстуры для вершины. Это значение можно использовать, как показано ниже.

              
              DWORD dwNumTextures = 1; Вершина имеет только один набор координат.

Сместите значение, используемое при создании комбинации гибкого формата вершин // (FVF). dwFVF = dwNumTextures << D3DFVF_TEXCOUNT_SHIFT;

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

 

Примеры

В следующих примерах показаны другие распространенные сочетания флагов.

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

Константная информация

Требование Значение
Заголовок d3d9types.h
Минимальная операционная система Windows 98

 

Константы Direct3D

Исправлены коды FVF функции (Direct3D 9)

Геометрическое смешение (Direct3D 9)