directx - 编译的directx9着色器文件的格式?

标签 directx file-format hlsl d3dx

由 fxc.exe 生成的编译像素和顶点着色器对象文件的格式是否在官方或非官方的任何地方记录?

我希望能够读取常量名称以从着色器文件中注册分配。我知道 D3DX 中的效果框架可以做到这一点,但我需要避免使用 D3DX,因为它可能没有安装在用户的机器上,而且我不需要它用于其他任何事情,所以我想避免他们不得不运行 Directx 更新.

如果效果框架可以做到,那么我也可以,如果我能找到文件格式,但我似乎无法在任何地方找到它。

(这是用于directx9)

最佳答案

来自 MSDN:

Asm Shader Reference (Windows)

Shader Binary Format

The bitwise layout of the shader instruction stream is defined in D3d9types.h. If you want to design your own shader compiler or construction tools and you want more information about the shader token stream, refer to the Direct3D 9 Driver Development Kit (DDK).



因此,您可以查看“D3d9type.h”并尝试以这种方式弄清楚(快速浏览并可以看到您应该需要的枚举/类型,但不知道其结构如何),或者下载 DDK 并阅读官方文档。

更多信息可以在这里找到:Direct3D Shader Codes (展开屏幕左侧的树以获取所有信息)。

关于directx - 编译的directx9着色器文件的格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2545704/

相关文章:

c++ - 在 Direct3D9 中启用抗锯齿(多采样渲染目标)

c++ - 您可以用来学习编程着色器的最佳工具是什么?

wpf - 操作次数最少的排序算法

c++ - 控制像素着色器的键盘输入

unity3d - 如何在 Unity 中设置整个颜色 channel 的饱和度

c++ - 无法通过D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX共享D3D11_USAGE_STAGING资源

java - 如何从 directX 使用 java 截取屏幕截图

opengl - 简单的线框格式?

3d - 是否有特定的或非常适合光线追踪的3D场景格式?

php - 更改 PHP 中的字节顺序