我正在尝试在SlimDX(Direct3D11)中加载预编译着色器,但我不知道该怎么做。
我搜索了这个主题,但只发现了针对C ++本机版DirectX的解决方案。好像是/ Gch编译选项和device-> CreatePixelShader(data,ps)。
问题是,我在SlimDX中找不到这个功能。 SlimDX中的函数在运行时编译着色器。
如何在SlimDX中加载预编译的着色器?
答案 0 :(得分:4)
考虑到你的着色器二进制文件保存在byte []字节码中(因为我不确定你从哪里加载它,但它只是保存后的二进制数据)
DataStream ds = new DataStream(bytecode.Length, true, true);
ds.Write(bytecode, 0, bytecode.Length);
ShaderBytecode bc = new ShaderBytecode(ds);
然后加载dx11效果:
Effect effect = new Effect(device,bc);