【发布时间】:2012-09-02 09:12:08
【问题描述】:
我正在尝试在 SlimDX(Direct3D11) 中加载预编译的着色器,但我不知道该怎么做。
我搜索了这个主题,只找到了 C++ 本机版本 DirectX 的解决方案。似乎 /Gch 编译选项和设备->CreatePixelShader(data,ps)。
问题是,我在 SlimDX 中找不到这个功能。 SlimDX 中的函数在运行时编译着色器。
如何在 SlimDX 中加载预编译的着色器?
【问题讨论】:
我正在尝试在 SlimDX(Direct3D11) 中加载预编译的着色器,但我不知道该怎么做。
我搜索了这个主题,只找到了 C++ 本机版本 DirectX 的解决方案。似乎 /Gch 编译选项和设备->CreatePixelShader(data,ps)。
问题是,我在 SlimDX 中找不到这个功能。 SlimDX 中的函数在运行时编译着色器。
如何在 SlimDX 中加载预编译的着色器?
【问题讨论】:
考虑到您的着色器二进制文件保存在 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);
【讨论】: