D3DDECLMETHOD 枚举

定义顶点声明方法,该方法是细化器 (在细化) 期间对顶点数据执行的任何过程几何例程执行的预定义操作。

语法

typedef enum D3DDECLMETHOD { 
  D3DDECLMETHOD_DEFAULT           = 0,
  D3DDECLMETHOD_PARTIALU          = 1,
  D3DDECLMETHOD_PARTIALV          = 2,
  D3DDECLMETHOD_CROSSUV           = 3,
  D3DDECLMETHOD_UV                = 4,
  D3DDECLMETHOD_LOOKUP            = 5,
  D3DDECLMETHOD_LOOKUPPRESAMPLED  = 6
} D3DDECLMETHOD, *LPD3DDECLMETHOD;

常量

D3DDECLMETHOD_DEFAULT

默认值。 细化器按原样复制修补程序的顶点数据 (样条数据) ,无需进行其他计算。 使用细化器时,此元素将内插。 否则,顶点数据将复制到输入寄存器中。 输入和输出类型可以是任意值,但始终是同一类型。

D3DDECLMETHOD_PARTIALU

计算矩形或三角形图块上 U 方向的点处的正切值。 输入类型可以是下列类型之一:

  • D3DDECLTYPE_D3DCOLOR
  • D3DDECLTYPE_FLOAT3
  • D3DDECLTYPE_FLOAT4
  • D3DDECLTYPE_SHORT4
  • D3DDECLTYPE_UBYTE4

输出类型始终为D3DDECLTYPE_FLOAT3。

D3DDECLMETHOD_PARTIALV

计算 V 方向矩形或三角形补丁上的点处的正切值。 输入类型可以是下列类型之一:

  • D3DDECLTYPE_D3DCOLOR
  • D3DDECLTYPE_FLOAT3
  • D3DDECLTYPE_FLOAT4
  • D3DDECLTYPE_SHORT4
  • D3DDECLTYPE_UBYTE4

输出类型始终为D3DDECLTYPE_FLOAT3。

D3DDECLMETHOD_CROSSUV

通过取两个切线的叉积,计算矩形或三角形补丁上的点的法线。 输入类型可以是下列类型之一:

  • D3DDECLTYPE_D3DCOLOR
  • D3DDECLTYPE_FLOAT3
  • D3DDECLTYPE_FLOAT4
  • D3DDECLTYPE_SHORT4
  • D3DDECLTYPE_UBYTE4

输出类型始终为D3DDECLTYPE_FLOAT3。

D3DDECLMETHOD_UV

复制矩形或三角形补丁上某个点处的 U、V 值。 这会导致 2D 浮点数。 输入类型必须设置为 D3DDECLTYPE_UNUSED。 输出数据类型始终D3DDECLTYPE_FLOAT2。 输入流和偏移量也未使用 (,但必须设置为 0) 。

D3DDECLMETHOD_LOOKUP

查找位移地图。 输入类型可以是下列类型之一:

  • D3DDECLTYPE_FLOAT2
  • D3DDECLTYPE_FLOAT3
  • D3DDECLTYPE_FLOAT4

只有 .x 和 .y 分量用于纹理贴图查找。 输出类型始终D3DDECLTYPE_FLOAT1。 设备必须支持位移映射。 有关位移映射的详细信息,请参阅 位移映射 (Direct3D 9) 。 如果启用了 N 补丁,则只有 N 补丁数据上的可编程管道才支持此常量。

D3DDECLMETHOD_LOOKUPPRESAMPLED

查找预先采样的排量地图。 输入类型必须设置为 D3DDECLTYPE_UNUSED;流索引和流偏移量必须设置为 0。 此操作的输出类型始终D3DDECLTYPE_FLOAT1。 设备必须支持位移映射。 有关位移映射的详细信息,请参阅 位移映射 (Direct3D 9) 。 如果启用了 N 补丁,则只有 N 补丁数据上的可编程管道才支持此常量。 此方法只能与 D3DDECLUSAGE_SAMPLE 一起使用。

备注

细化器查看 方法,以确定在细化期间要从顶点数据中计算的数据。 网格数据应使用默认值。 修补程序可以使用任何其他实现的类型。

使用 D3DVERTEXELEMENT9 结构的数组声明顶点数据。 数组中的每个元素都包含一个顶点声明方法。

除了使用D3DDECLMETHOD_DEFAULT,普通网格还可以在启用 N 补丁时使用D3DDECLMETHOD_LOOKUP和D3DDECLMETHOD_LOOKUPPRESAMPLED方法。

要求

要求
标头
D3D9Types.h

另请参阅

Direct3D 枚举