D3DX TANGENT 枚举

定义用于网格正切帧计算的设置。

语法

typedef enum D3DXTANGENT { 
  D3DXTANGENT_WRAP_U                   = 0x01,
  D3DXTANGENT_WRAP_V                   = 0x02,
  D3DXTANGENT_WRAP_UV                  = 0x03,
  D3DXTANGENT_DONT_NORMALIZE_PARTIALS  = 0x04,
  D3DXTANGENT_DONT_ORTHOGONALIZE       = 0x08,
  D3DXTANGENT_ORTHOGONALIZE_FROM_V     = 0x010,
  D3DXTANGENT_ORTHOGONALIZE_FROM_U     = 0x020,
  D3DXTANGENT_WEIGHT_BY_AREA           = 0x040,
  D3DXTANGENT_WEIGHT_EQUAL             = 0x080,
  D3DXTANGENT_WIND_CW                  = 0x0100,
  D3DXTANGENT_CALCULATE_NORMALS        = 0x0200,
  D3DXTANGENT_GENERATE_IN_PLACE        = 0x0400
} D3DXTANGENT, *LPD3DXTANGENT;

常量

D3DXTANGENT_WRAP_U

U 方向的纹理坐标值介于 0 和 1 之间。 在这种情况下,将选择一个纹理坐标集来最小化三角形的周长。 请参阅 纹理环绕 (Direct3D 9)

D3DXTANGENT_WRAP_V

v 方向的纹理坐标值介于 0 和 1 之间。 在这种情况下,将选择一个纹理坐标集来最小化三角形的周长。 请参阅 纹理环绕 (Direct3D 9)

D3DXTANGENT_WRAP_UV

you 和 v 方向的纹理坐标值都在 0 和 1 之间。 在这种情况下,将选择一个纹理坐标集来最小化三角形的周长。 请参阅 纹理环绕 (Direct3D 9)

D3DXTANGENT_DONT_NORMALIZE_PARTIALS

不要对纹理坐标的部分导数进行规范化。 如果未规范化,则部分导数的比例与 3D 模型的比例除以 (u、 v) 空间中的三角形比例。 此缩放值提供纹理在给定方向上的拉伸量。 生成的矢量长度是部分导数长度的加权和。

D3DXTANGENT_DONT_ORTHOGONALIZE

不要将纹理坐标转换为正交笛卡尔坐标。 与D3DXTANGENT_ORTHOGONALIZE_FROM_U和D3DXTANGENT_ORTHOGONALIZE_FROM_V互斥。

D3DXTANGENT_ORTHOGONALIZE_FROM_V

针对每个顶点独立计算纹理坐标 v 的部分导数,然后将相对于你的部分导数计算为相对于 v 和法向量的交积。 与D3DXTANGENT_DONT_ORTHOGONALIZE和D3DXTANGENT_ORTHOGONALIZE_FROM_U互斥。

D3DXTANGENT_ORTHOGONALIZE_FROM_U

根据每个顶点的纹理坐标 u 独立计算部分导数,然后计算相对于 v 的部分导数作为法向量的交叉乘积和相对于你的部分导数。 与D3DXTANGENT_DONT_ORTHOGONALIZE和D3DXTANGENT_ORTHOGONALIZE_FROM_V互斥。

D3DXTANGENT_WEIGHT_BY_AREA

根据附加到该顶点的三角形区域,对计算的每个顶点法线或部分派生矢量的方向进行加权。 与D3DXTANGENT_WEIGHT_EQUAL互斥。

D3DXTANGENT_WEIGHT_EQUAL

计算输入网格的每个三角形的单位长度法向量。 与D3DXTANGENT_WEIGHT_BY_AREA互斥。

D3DXTANGENT_WIND_CW

顶点按顺时针方向排列,围绕每个三角形。 因此,计算的法线矢量方向从使用逆时针顶点排序计算的方向反转 180 度。

D3DXTANGENT_CALCULATE_NORMALS

计算输入网格的每个三角形的每个顶点法向量,并忽略输入网格中已有的任何法向量。

D3DXTANGENT_GENERATE_IN_PLACE

结果存储在原始输入网格中,不使用输出网格。

要求

要求
标头
D3dx9mesh.h

另请参阅

D3DX 枚举

D3DXCompute TangentFrameEx