В DirectX 11 каждый тип шейдера представляет собой отдельный интерфейс, и функциям Direct3D, которые вы вызываете с их помощью, нужен определенный тип.
В большинстве случаев рендеринга вы все равно будете использовать только VS и PS.
Существует несколько способов создания абстракции для шейдеров.Например, в дизайне класса XNA Game Studio класс Effect
включает в себя как VS, так и PS, которые вы использовали с Apply
(что в абстракции действительно может быть любым этапом шейдера, необходимым дляэтот эффект рендеринга).См. это сообщение в блоге .
Технически все они являются производными от ID3D11DeviceChild
, но для их использования в любом случае необходим отдельный интерфейс.