如何在GLSL中复制数组?

时间:2018-07-19 03:49:01

标签: glsl

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

如果我有

float a[3] = float[3] (1.0,2.0,3.0);
float b[3] = a;

b现在指向a吗?如果我更改b[0],那会改变a[0]吗? 如果答案是肯定的,我是否可以使用复制函数来获得a的克隆但不指向它?谢谢

1 个答案:

答案 0 :(得分:1)

请参见GLSL - The OpenGL Shading Language 4.6; 5.8. Assignments; page 114

  

使用赋值运算符(=)对变量名称进行值赋值:

lvalue-expression = rvalue-expression
     

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

在glsl中,没有什么比指针或引用甚至“移动”赋值更重要了。值始终会被复制。