我需要在我的GLSL几何着色器中访问一堆常量值.我这样试过:
const int lookup[HUGE_NUMBER] = int[HUGE_NUMBER](1,32,...)
Run Code Online (Sandbox Code Playgroud)
这适用于某些硬件.在ATI卡上我收到警告,我的几何着色器的大小可能会导致性能不佳(听起来合理).在其他卡(NV)上,着色器因内存不足而无法链接.定义常量数组似乎是一个不受支持的hack.
那么 - 要走的路是什么?我已经读过DirectX管道中的" 常量缓冲区 ".有类似的东西吗?或者我必须使用纹理?