Managed DirectX中着色器的基本示例

时间:2009-11-17 16:33:30

标签: mdx shader managed-directx

我是新编写的像素着色器并在我的托管Directx项目中使用,在那里我可以获得一些基本样本来启动它。

1 个答案:

答案 0 :(得分:1)

我假设您知道如何创建设备。

首先,您需要自己准备着色器。

这是一个小样本像素着色器(使用像素着色器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,则类似的过程适用于编译着色器。

编辑: 刚刚注意到这是一个为期一年的问题。