【发布时间】:2016-06-11 00:50:11
【问题描述】:
我的游戏程序使用 directx9。
出于某种原因,我尝试关闭像素着色器,但我仍想使用顶点着色器。它适用于我的计算机,但我不确定是否适用于所有计算机。
有可能吗?
有些玩家对我的游戏有延迟,他们的显卡不如我推荐的那么好。我认为我使用像素着色器的着色器效果是一个原因。
【问题讨论】:
我的游戏程序使用 directx9。
出于某种原因,我尝试关闭像素着色器,但我仍想使用顶点着色器。它适用于我的计算机,但我不确定是否适用于所有计算机。
有可能吗?
有些玩家对我的游戏有延迟,他们的显卡不如我推荐的那么好。我认为我使用像素着色器的着色器效果是一个原因。
【问题讨论】:
对于 Direct3D 9,如果您“没有设置像素着色器”,那么您使用的是旧版固定功能管道(也称为“纹理阶段状态”)。在具有 Direct3D 9 的旧着色器模型中,您可以将传统管道与可编程管道混合使用。
Shader Model 3.0 更加严格。您不能将旧的固定功能管道与 Shader Model 3.0 shader 混合使用。
使用 Direct3D 10 或更高版本,没有传统的固定功能管道,您必须至少提供 VS 和 PS 进行渲染。
现代 GPU 没有任何硬件来实现传统的固定功能管道。相反,它们从状态中即时创建顶点和像素着色器,因为它们是纯可编程硬件。
【讨论】: