Higher-Order基元 (Direct3D 9)

Direct3D 9 支持点、线、三角形和网格基元。 这些已扩展,以支持线性以外的高阶内插。 虽然三角形和线条具有空间范围,但到目前为止,它们都是使用线性内插呈现的。 在 Direct3D 9 中,Direct3D 支持使用更高顺序(最多 quintic、内插)呈现这些基元类型。 此外,现在还支持新的四元基元类型。 此新类型还可以使用高阶内插来呈现。 此功能主要由对动画和角色呈现的要求驱动。 它也可用于其他表面,如地形或水。

当作为列表、条带、扇形或索引网格传输到 API 时,高阶基元支持高阶内插。 这是通过使用顶点本身编码的其他信息来实现的。 例如,法向量可用于定义顶点处的切平面,以启用三次内插。 大多数实现支持通过分割成平面三角形的高阶内插。 分割步骤在顶点着色器阶段之前以逻辑方式应用。 由于顶点着色器 API 不对其输入数据施加语义,因此提供了一种特殊机制来标识表示位置的顶点流组件,还可以识别法向量。 所有其他组件将相应地内插。

本部分介绍高阶基元,并讨论如何在应用程序中使用这些基元。 信息分为以下主题。

通过分辨率增强提高质量

当前基元不适合表示平滑表面。 高阶内插方法(如三次多项式)允许在呈现曲线形状时进行更准确的计算。 这通过减少或消除剪影边缘或反射表面照明上可见的分面伪像来提高真实性。 此外,当芯片上发生分割时,细化三角形不会影响总线带宽。 在许多情况下,少量的分割可以改善图像质量,同时将性能影响降到最低。

Direct3D 9 提供了一种简单方法,用于将分辨率增强应用于现有面向多边形的工具和艺术管道创建的内容。 应用程序只需提供所需的细化级别,并使用包含法向量的标准三角形语法传输数据。

从 Spline-Based 工具直接映射

许多当前的创作工具支持高阶基元,以实现比平面三角形网格通常提供的更强大的建模操作。 如果有效使用,以便生成的修补程序数量合理,此类工具可以生成可由 API 直接呈现的内容。 为了满足此要求,添加了一个新的入口点,该入口点将传入顶点数据流解释为控制点的 2D 数组,并将其细化为所需的分辨率。

顶点管道