Можете ли вы передать массив фиксированного размера в качестве параметра функции GLSL?
в шейдере 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 ?
Если нет, есть ли альтернативы ?
1 ответов
Да, это законный код GLSL.
Это не означает, что он будет компилироваться, но это юридический код. При этом, вероятно, лучше просто вернуть массив (что вы также можете сделать), а не передавать его в качестве выходного параметра.