OpenGL着色器和常量

时间:2011-03-16 20:30:07

标签: opengl constants glsl shader

我需要在 GLSL 几何着色器中访问一堆常量值。我这样试过:

const int lookup[HUGE_NUMBER] = int[HUGE_NUMBER](1,32,...)

这适用于某些硬件。在ATI卡上我收到警告,我的几何着色器的大小可能导致性能不佳(听起来合理)。在其他卡(NV)上,着色器因内存不足而无法链接。定义常量数组似乎是一个不受支持的黑客。

那么 - 要走的路是什么?我在DirectX管道中读到了“常量缓冲区”。有类似的东西吗?或者我必须使用纹理吗?

1 个答案:

答案 0 :(得分:5)

您可以使用以下任何接口:

  1. 纹理
  2. 统一缓冲对象
  3. 纹理缓冲区