Я предполагаю, что вы знаете, как создать устройство.
Сначала нужно подготовить сам шейдер.
Вот небольшой пример пиксельного шейдера (который использует пиксельный шейдер 1.4, как видно из ps_1_4; r0 - это регистр, который читается как конечный результат; v0 - это регистр, который хранит основной цвет (диффузного освещения)):
ps_1_4
mov r0, v0
Этот шейдер, который находится в сборке шейдера, должен быть собран. Вы можете сделать это следующим образом (обратите внимание, что вам нужна ссылка на библиотеку D3DX, иначе вы не увидите класс ShaderLoader):
Imports Microsoft.DirectX
' other code
Dim graphicsStream As GraphicsStream = Direct3D.ShaderLoader.FromString(shaderText, Nothing, Direct3D.ShaderFlags.None)
' other code.
После сборки шейдера вы можете наконец создать объект PixelShader следующим образом:
' other code
Dim p As Direct3D.PixelShader = New Direct3D.PixelShader(Device, graphicsStream)
' other code
Чтобы применить пиксельный шейдер, используйте:
' other code
Device.PixelShader = p
' other code
где Device - это устройство Direct3D.
Аналогичный процесс применяется для компиляции шейдеров, если вы используете HLSL.
Edit:
Просто заметил, что это был летний вопрос.