是否有基本的着色器类?

时间:2018-12-05 15:12:26

标签: c# shader directx-11 sharpdx

我目前正在编写一个深入的DirectX-11引擎,正在使用我的着色器部分。我似乎找不到以下所有通用的class

VertexShader
PixelShader
GeometryShader
HullShader
DomainShader
ComputeShader

是否存在所有这些类型都衍生自的基级类?或者我是否沉迷于大块代码中以分别处理每个类?我找不到有关此问题的任何文档。

1 个答案:

答案 0 :(得分:1)

在DirectX 11中,每种着色器类型都是不同的接口,使用它们调用的Direct3D函数需要特定的类型。

在大多数渲染情况下,无论如何您只会使用VS和PS。

有很多方法可以创建着色器的抽象。例如,在 XNA Game Studio 类设计中,Effect类包装了与Apply一起使用的VS和PS(抽象上可能是该渲染效果所需的任何着色器阶段)。参见this blog post

  

从技术上讲,它们都是从ID3D11DeviceChild派生的,但是无论如何,您都需要使用独特的接口。