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