c++ - 创建 D3DX 着色器

标签 c++ directx shader

是否可以在不使用 D3DX 函数的情况下创建着色器?

最佳答案

从 D3D9 开始,HLSL 编译器是 D3DX 库的一部分。要使用 HLSL 编写着色器,您必须使用 D3DX。

但是,有 IDirect3DDevice9::CreatePixelShaderIDirect3DDevice9::CreateVertexShader ,它从着色器字节码创建一个着色器句柄,也就是说,从 HLSL 编译器生成的内容。

您可以离线运行 HLSL 编译器(请参阅 D3DXCompileShader),将机器代码保存到文件中并在运行时使用上述函数加载它。遗憾的是,这意味着您不能依赖 D3DX 框架以其他方式完成的工作。在这种情况下,上传常量和优化更改完全取决于您。

关于c++ - 创建 D3DX 着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5713993/

相关文章:

c++ - 当同一个类中的另一个方法调用时版本方法的常量

c++ - DirectX11 移动对象矩阵顺序

c# - 在 C# 中使用 DirectX 进行开发的资源?

java - 我们可以在 JavaFX 中实现我们自己的 Material 吗?

c++ - 如何在 HLSL DirectX11 C++ 中使用 Texture2DArray

opengl - texel从 CubeMap 获取

c++ - 在 C++ 中使用指针加速访问数组

c++ - 在动态数组中存储指针或指针数组

c++ - 尝试打印时堆损坏

c++ - 如何从 XMVECTOR 获取浮点值? (直接X数学)