在 GLSL 着色器中,我想创建一个看起来有点像这样的函数:
void MyFunction(out float results[9])
{
float value0 = 3.1546;
float value1 = 42; // whatever value
/* ... long, complicated code ... */
results[0] = value0;
results[1] = value1;
results[2] = value2;
...
}
这样的函数签名可以在GLSL中使用和编译吗?
如果没有的话有什么替代方案吗?
是的,这是合法的 GLSL 代码。
这并不意味着它一定能编译,但它是合法的代码。话虽这么说,最好只返回数组(您也可以这样做),而不是将其作为输出参数传递。