2

我正在尝试在 SlimDX(Direct3D11) 中加载预编译着色器,但我不知道该怎么做。

我搜索了这个主题,只找到了 DirectX 的 C++ 本机版本的解决方案。似乎 /Gch 编译选项和 device->CreatePixelShader(data,ps)。

问题是,我在 SlimDX 中找不到这个功能。SlimDX 中的函数在运行时编译着色器。

如何在 SlimDX 中加载预编译的着色器?

4

1 回答 1

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);
于 2012-09-02T01:12:08.750 回答