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