如何在GLSL ES 1.0版本中声明一个返回数组的函数

9
以下是着色器方法:
float[1] GetArray()
{
    float array[1];
    array[0] = 1.0;
    return array;
}

给我以下内容的翻译:
错误:0:1:'GetArray':语法错误:数组大小必须出现在变量名之后。
错误:0:1:'GetArray':语法错误:数组大小必须出现在变量名之后。
1个回答

11

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

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];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接