当我添加这行代码时,我的程序崩溃了:
uniform short colors[262144][3];
我在这里做错了多少事情?
- 你可以在着色器中使用短裤吗?
- 你可以在着色器中使用二维数组吗?
- 数组太大了吗?
- 我的声明语法不正确吗?
我正在尝试将这样的数组传递到每个像素片段着色器中,但现在我只是看看这条线是否有效并且我的程序崩溃了。
您不能在 GLSL 中使用多维数组,也不能使用短裤。
您可以像这样模仿多维数组的功能:
uniform float colors[50*3];
// Then access it like this
float t = colors[row * 50 + column];
我想你也想发送太多数据,我个人会使用纹理或缓冲区来传递那么多数据。
这是一个很好的答案,它解释了这些方法https://stackoverflow.com/a/7958008/139927