如何在 GLSL 中复制数组?

Jef*_*emi 5 shader glsl

我在 SL 参考中搜索了“copy”,但找不到任何相关内容。

如果我有:

float a[3] = float[3] (1.0,2.0,3.0);
float b[3] = a;
Run Code Online (Sandbox Code Playgroud)

b现在是指a?如果我改变b[0]会改变a[0]吗?如果答案是肯定的,是否有一个复制函数可以用来获取克隆a而不是指向它?谢谢

Rab*_*d76 4

请参阅GLSL - OpenGL 着色语言 4.6;5.8. 作业;第114页

变量名的赋值是通过赋值运算符 ( =) 完成的:

lvalue-expression = rvalue-expression
Run Code Online (Sandbox Code Playgroud)

左值表达式的计算结果为左值。赋值运算符将r-value-expression的值存储到左值中,并返回类型和精度为lvalue-expression的右值。

在 glsl 中,没有任何东西像指针或引用,甚至是“移动”赋值。值总是被复制。