【问题标题】:How to declare a function that returns an array in glsl es (version 100)如何在 glsl es(版本 100)中声明一个返回数组的函数
【发布时间】:2016-03-05 23:34:56
【问题描述】:

以下着色器方法:

float[1] GetArray()
{
    float array[1];
    array[0] = 1.0;
    return array;
}

给我: 错误:0:1:'GetArray':语法错误:数组大小必须出现在变量名之后

【问题讨论】:

    标签: opengl-es-2.0 glsles


    【解决方案1】:

    我找到了解决此限制的方法。 您可以通过引用修改传入的数组来返回一个数组。 这是一个示例片段着色器:

    void GetArray(inout vec4 array[1])
    {
        array[0] = vec4(.5,.2,.1,1.0);
    } 
    
    void main()
    {
        vec4 test[1];
        GetArray(test);
        gl_FragColor = test[0];
    }
    

    【讨论】:

      猜你喜欢
      • 2010-11-30
      • 1970-01-01
      • 2021-05-30
      • 2017-06-12
      • 1970-01-01
      • 2014-12-08
      • 2016-08-04
      • 1970-01-01
      相关资源
      最近更新 更多