弃用的功能 (Direct3D 10)
此处 Direct3D 10 中提供的功能列表。 此页面列出了 Direct3D 10 中不再支持的 Direct3D 9 功能。
Direct3D 10 中最大的功能变化是:
- Direct3D 10 不再支持固定函数转换和照明管道。
- Direct3D 10 不再支持固定函数纹理混合器(有时称为固定函数像素着色器)。
- Direct3D 10 实现新的光栅化规则,比 Direct3D 9 中实现的旧 GDI 规则更简单、更简洁。 例如,不再支持线条的最后像素控件。
下面是 Direct3D 9 中已弃用的 Direct3D 10 中功能的完整列表。
Alpha 混合。 Alpha 混合现在独立于颜色混合进行编程。 Direct3D 10 添加默认启用 alpha-blend-enable 开关。 有关详细信息,请参阅 状态对象(Direct3D 10)。
Alpha 测试。 Alpha 测试是 Direct3D 9 的固定函数像素行为。 Alpha 测试将移动到 Direct3D 10 及更高版本的可编程像素着色器中。 有关在 Direct3D 10 及更高版本中模拟 Direct3D 9 alpha 测试功能的信息,请参阅 2010 年 6 月 DirectX SDK 中的 FixedFuncEMU 示例。
Blend 模式选项。 BOTHSRCALPHA 已从 D3D10_BLEND 中删除,因为它与 BOTHINVSRCALPHA 冗余。 有关详细信息,请参阅 D3D10_BLEND。
块压缩格式。 Direct3D 10 中的预乘 alpha 或非预乘 alpha 之间没有区别。 这些 Direct3D 9 格式映射到以下 Direct3D 10 格式:
Direct3D 9 Direct3D 10 DXT1 BC1* DXT2,DXT3 BC2* DXT4,DXT5 BC3* 有关其他信息,请参阅 块压缩(Direct3D 10)。
剪裁平面。 Direct3D 10 不使用剪辑平面,而是实现剪辑距离和剔除距离,每个组件最多包含 8 个组件,每个组件最多包含 2 个顶点属性的元素。 有关其他信息,请参阅 语义(DirectX HLSL)。 FixedFuncEMU 示例 提供了在 Direct3D 10 中模拟剪辑平面的示例。
定。 Direct3D 10 不支持将数据写入呈现目标。
中固定函数转换和照明管道。 相反,必须使用着色器。 有关其他信息,请参阅 着色器阶段(Direct3D 10)。
固定函数纹理混合器(也称为固定函数像素着色器)。 相反,必须使用着色器。 有关其他信息,请参阅 着色器阶段(Direct3D 10)。
填充模式 已更改。 Direct3D 10 实现纯色和线框填充模式。 删除了D3DFILLMODE点,如有必要,请使用几何着色器模拟点模式。 FixedFuncEMU 示例 提供了一个模拟 Direct3D 10 中的D3DFILLMODE点的示例。 有关其他信息,请参阅 D3D10_FILL_MODE 和 着色器阶段(Direct3D 10)。
格式。 硬件可以使用 API 公开的格式。 不再实现亮度格式。
Mipmap 筛选。 删除了用于选择无筛选器模式的选项。 请改用仅包含单个 mipmap 的纹理,或将 MaxLOD 采样器状态设置为 0。 有关其他信息,请参阅 状态对象(Direct3D 10)。
调色板。 应用程序应改用从属纹理读取。
像素和顶点着色器模型:1_x、2_x 和 3_0。 Direct3D 10 支持着色器模型 4。 有关其他信息,请参阅 着色器模型 4。
点子画面。 请改用几何着色器。 有关其他信息,请参阅 着色器阶段(Direct3D 10)。
光栅化规则。 旧版 GDI 线条光栅化规则替换为更简洁、更简单的规则。 不再支持线条的最后像素控件。 有关其他信息,请参阅 光栅化规则(Direct3D 10)。
着色模式。 D3DSHADEMODE(支持平面/古鲁德/平底纹)已删除。 Direct3D 10 改为为顶点着色器输出实现两个内插修饰符。 有关在 Direct3D 10 中模拟 Direct3D 9 gouraud 和平面着色模式的示例,请参阅 FixedFuncEMU 示例。
texldp 指令。 应用程序必须使用额外的 HLSL 语句实现投影纹理加载。 有关其他信息,请参阅 HLSL 参考。 FixedFuncEMU 示例 提供了在 Direct3D 10 中模拟 texldp 的示例。
不再支持纹理坐标索引(TCI)纹理阶段状态(D3DTSS_TEXCOORDINDEX)。
三角球迷。 应用程序必须将现有三角形风扇转换为三角形列表或三角形条带。 若要在较旧的 API 中使用 DrawPrimitive 模拟某些行为,请尝试在 Direct3D 10 中使用 DrawIndexed。 有关其他信息,请参阅 基元拓扑(Direct3D 10)。
W 缓冲。 不保证硬件支持;建议应用程序改用高精度深度缓冲区。 有关其他信息,请参阅 配置 Depth-Stencil 功能(Direct3D 10)。
包装模式(纹理坐标环绕)。 纹理地址包装(如包装、镜像、夹子等)仍然存在。 请参阅 D3D10_SAMPLER_DESC 和 D3D10_TEXTURE_ADDRESS_MODE。
相关主题