我是新人编写一个像素着色器并在我的托管 Directx 项目中使用,在那里我可以获得一些基本示例来启动它。
问问题
431 次
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 回答