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 修补程序数据时,可编程管道才支持此常量。

D3DDECLMETHOD_LOOKUPPRESAMPLED

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

注解

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

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

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

要求

要求 Value
标头
D3D9Types.h

另请参阅

Direct3D 枚举