如何构建自己的opengl着色器编译器?

时间:2012-08-10 19:34:18

标签: compiler-construction glsl

GLSL和CG工具包根本不足以满足我的需求,似乎我唯一的选择就是编写自己的编译器。我基本上需要一个二进制着色器结构的图表,所以我可以自己从脚本构建它。

编辑:好的,我认为我正在寻找的是arb汇编的二进制结构。

1 个答案:

答案 0 :(得分:3)

  

如何构建我自己的opengl着色器编译器?

你没有。至少,不是你的意思。

OpenGL没有定义二进制或汇编交换格式。 OpenGL本身直接将GLSL编译为对象。即使您可以查询二进制数据,OpenGL也无法提供解释实际存储的二进制数据的方法。它取决于实现。 NVIDIA和AMD将存储不同的信息,这与英特尔存储的不同。它将针对每一代硬件进行更改。等等。

您可以编写一个生成 GLSL 的编译器。但就是这样。

如果你愿意坚持使用NVIDIA,他们一直都很擅长保持ARB汇编语言的最新状态。但显然,任何此类代码都只能是NVIDIA。