我需要在我的GLSL几何着色器中访问一堆常量值。我尝试了以下方法:
const int lookup[HUGE_NUMBER] = int[HUGE_NUMBER](1,32,...)
这对某些硬件有效。在ATI卡上,我收到了警告,说我的几何着色器的大小可能会导致性能不佳(听起来很合理)。在其他卡片(NV)上,着色器无法链接,因为内存不足。定义常量数组似乎是一种不受支持的黑客方法。
那么,该怎么办呢?我已经读到了DirectX管道中的“常量缓冲区”。有类似的东西吗?还是我必须使用纹理?
我需要在我的GLSL几何着色器中访问一堆常量值。我尝试了以下方法:
const int lookup[HUGE_NUMBER] = int[HUGE_NUMBER](1,32,...)