D3DX (Direct3D 9) 中的线条绘图支持

D3DX 是一个实用工具库,用于提供帮助程序服务。 它是 Direct3D 组件上方的一个层。

D3DX 支持单像素宽度抗锯齿线。 不再支持线条模式。

线条绘制库使用纹理三角形模拟线条,并假定以下内容:

  • 硬件通过 Direct3D 9 接口提供。
  • 至少有一个纹理阶段可用。
  • 使用 64x64 纹理。
  • 可用的模式如下:
    • 双线性筛选
    • 固定地址模式
    • 换行地址模式
    • Alpha op 调制
    • Alpha 混合 (SRCBLEND = SRC_ALPHA,DESTBLEND = INV_SRC_ALPHA)
    • 如果 alpha 混合不可用,则进行 Alpha 测试;质量较低的结果

对于多重采样呈现器目标中的抗锯齿线呈现,请使用 ID3DXLine 来生成纹理多边形。 由抗锯齿线光栅化生成的像素覆盖率值调节像素着色器计算的像素的 alpha 值。 若要绘制抗锯齿线,应用程序必须启用 alpha 混合,然后必须将D3DRS_ANTIALIASEDLINEENABLE呈现状态设置为 TRUE

功能说明

库支持使用以下线条特征绘制彩色线条条带,每个线条特征都独立于任何其他线条特征:

注意

不支持斜接。

 

仅当设备) 时才使用本机硬件线条绘制支持 (:

  • 线条宽度为 1。
  • 未启用任何线条模式。

某些硬件支持单像素宽度的抗锯齿线,因此库会使用它(如果可用)。 D3DCAPS9 结构的 LineCaps 成员枚举线条绘制基元的硬件功能。

使用软件线条绘图时,每条线将展开为一个矩形,并将四个顶点向下发送到驱动程序。

每个线段都用两个三角形绘制。 基元的宽度是指定的宽度加上 1.0,这可能会导致额外的行或列像素。 随着线条变宽,纹理中的抗锯齿渐变变得更加粗糙,并且中间周围复制了更完全不透明的纹素。 渐变以纹理的 v 方向编码,通常沿 u 方向复制。 v 的纹理寻址模式为 clamp。

列表中的每条线段都可以被视为一个单独的线,恰好从上一个终点开始。

沿与原始线条长度平行的边缘的抗锯齿质量会随着线条变宽而受到影响。 预计大于 32.0 的线条宽度将开始沿这些边缘显示项目。

D3DX