【问题标题】:What is wrong with my Android OpenGL shader code我的 Android OpenGL 着色器代码有什么问题
【发布时间】:2013-01-09 22:41:46
【问题描述】:

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

uniform short colors[262144][3];

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

  1. 可以在着色器中使用短裤吗?
  2. 可以在着色器中使用二维数组吗?
  3. 数组是否太大?
  4. 我的声明语法不正确吗?

我正在尝试将这样的数组传递到每个像素片段着色器中,但现在我只是看看这条线是否可以工作并且我的程序会崩溃。

【问题讨论】:

    标签: android opengl-es shader


    【解决方案1】:

    在 GLSL 中不能使用多维数组,也不能使用 short。

    您可以像这样模仿多维数组的功能:

    uniform float colors[50*3];
    
    // Then access it like this
    
    float t = colors[row * 50 + column];
    

    我想你也想发送太多数据,我个人会使用纹理或缓冲区来传递这么多数据。

    这是一个很好的答案,解释了这些方法https://stackoverflow.com/a/7958008/139927

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-10
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      相关资源
      最近更新 更多