gpt4 book ai didi

c++ - 将预编译的 HLSL 着色器加载到内存中以与 CreatePixelShader 一起使用

转载 作者:可可西里 更新时间:2023-11-01 16:26:41 28 4
gpt4 key购买 nike

我需要将已编译的像素着色器加载到内存中以与 CreatePixelShader 一起使用,但我不能使用任何 D3DX 调用。

我该怎么做?

(我使用 Visual Studio 2010 作为编译器,使用 C++ 作为语言)

最佳答案

我意识到之前有人发布了伪代码。这是使用 Windows SDK(而不是请求的 D3DX 库)的 C++ 代码。

这里的“PixelShader.cso”是Visual Studio 11从项目中的一个.hlsl文件生成的预编译hlsl着色器。编译后的 .cso 文件通常默认移动到 Projects/ProjectName/Debug 文件夹。因此,在使用之前必须将其剪切并粘贴到与源代码相同的目录中。请注意,可以通过在 Visual Studio 11 中右键单击 HLSL 文件并编辑输出设置来更改此设置。默认是:$(OutDir)%(Filename).cso,改成:$(Directory)%(Filename).cso

ID3D11PixelShader* PS;
ID3DBlob* PS_Buffer;

D3DReadFileToBlob(L"PixelShader.cso", &PS_Buffer);
d3d11Device->CreatePixelShader(PS_Buffer->GetBufferPointer(), PS_Buffer->GetBufferSize(), NULL, &PS);
d3d11DevCon->PSSetShader(PS, 0, 0);

注意“PixelShader.cso”之前的 L。我的项目使用的是多字节字符集,如果您将字符集设置为 Unicode,则可能不需要 L。

关于c++ - 将预编译的 HLSL 着色器加载到内存中以与 CreatePixelShader 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5020204/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com