我是新编写的像素着色器并在我的托管Directx项目中使用,在那里我可以获得一些基本样本来启动它。
答案 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,则类似的过程适用于编译着色器。
编辑: 刚刚注意到这是一个为期一年的问题。