0

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

4

1 回答 1

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,则类似的过程适用于编译着色器。

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

于 2010-06-19T15:34:33.210 回答