我的Android OpenGL着色器代码有什么问题

时间:2013-01-09 22:41:47

标签: android opengl-es shader

当我添加这行代码时,我的程序崩溃了:

uniform short colors[262144][3];

我在这里做错了多少件事?

  1. 你可以在着色器中使用短裤吗?
  2. 您可以在着色器中使用2D数组吗?
  3. 阵列太大了吗?
  4. 我的声明语法不正确吗?
  5. 我正在尝试将这样的数组传入每像素片段着色器,但是现在我只是看到这条线是否有效并且我的程序崩溃了。

1 个答案:

答案 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