directx9,我可以只使用顶点着色器而不使用像素着色器吗?

directx9, can i use only vertex shader without pixel shader?

我的游戏程序使用 directx9。

出于某些原因,我尝试关闭像素着色器,但我仍想使用顶点着色器。它适用于我的电脑,但我不确定所有电脑。

可能吗?

有些玩家在我的游戏上有延迟,他们的显卡不如我推荐的好。我认为我的着色器效果使用像素着色器是原因之一。

如果您使用 Direct3D 9 'no pixel shader set',那么您使用的是旧式固定功能管道(又名 'texture stage states')。在使用 Direct3D 9 的旧着色器模型中,您可以将旧管线与可编程管线混合使用。

Shader Model 3.0 is more strict. You can't mix the legacy fixed-function pipeline with a Shader Model 3.0 shader.

对于 Direct3D 10 或更高版本,没有遗留的固定功能管道,您必须至少提供一个 VS 和 PS 用于渲染。

Modern GPUs don't have any hardware implementing the legacy fixed-function pipeline. Instead they create vertex & pixel shaders on-the-fly from the state because they are purely programmable hardware.