1

我目前正在开发一个小图形演示(使用 DirectX),它主要基于我正在研究的 HLSL 着色器。使用 D3DX10CreateEffectFromFile 我在运行时加载(并编译着色器),因为我发现它更容易调整。

但是,一旦我完成了,我想做以下的一些组合:

  • 预编译着色器,以便用户更快地启动演示
  • 隐藏(编译成可执行文件)已编译的着色器(或者如果需要,可能只是源代码)

首先,我想这样做是因为我希望演示只是一个可以很容易复制的文件。

我可以轻松做的一件事就是将源文本直接放入 cpp 中,但这会非常繁琐,我需要稍后对其进行更新。

是否可以做这样的事情(使用 Visual Studio、DirectX、HLSL)?

4

1 回答 1

2

正如该链接中所指出的,您可以简单地将其作为二进制资源添加到 exe 中。

不过,就个人而言,我会选择拥有一个大二进制文件之类的东西。文件的开头有一个目录。基本上是一个着色器 ID 和一个偏移量。然后偏移量对应于二进制编译数据的开始位置。您可以在每个已编译着色器的顶部放置 4 个字节来说明它的长度。插入新的着色器可能会很麻烦,因为它确实需要移动大量数据,但将其视为离线过程并不是真正的问题。

于 2010-05-21T07:32:28.520 回答