In uno shader GLSL, voglio creare una funzione che sembra un po 'come questo:È possibile passare un array di dimensioni fisse come parametro della funzione 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;
...
}
Può una tale firma funzione di essere utilizzato e compilato in GLSL?
Se no, ci sono delle alternative?
Hai ragione. Ho trovato le informazioni anche nelle specifiche: http://www.opengl.org/registry/doc/GLSLangSpec.4.30.6.pdf#page=35 – wil
Perché è probabilmente meglio restituire l'array? c'è qualche ottimizzazione del compilatore con l'utilizzo di un locale e la restituzione invece di modificare una variabile sul posto? –