Opengl 在Glsl矩阵中设置列
如何在Glsl中更改矩阵中的值。 我想更改第三列中nMatrix的错误 到目前为止,我试过:Opengl 在Glsl矩阵中设置列,opengl,glsl,Opengl,Glsl,如何在Glsl中更改矩阵中的值。 我想更改第三列中nMatrix的错误 到目前为止,我试过: mat4 nMatrix; 对于(int i=0;i
mat4 nMatrix;
对于(int i=0;i<3;i++){
nMatrix=uMatrix;
对于(int k=0;k<2;k++){
//nMatrix[3].xyz=0.0;
n矩阵[3][k]=0.0;
}
}
但我得到一个编译错误:
将向量从大小1隐式截断为大小3
为什么你要用一个不变的内环来循环三次呢 无论如何,如果要在4x4矩阵中设置特定列(第3列),可以执行以下操作:
mat4 nMatrix=uMatrix;//假设uMatrix为mat4
nMatrix[2]=vec4(0.0,1.0,2.0,3.0);
当使用数组下标表示法时,GLSL使用列主矩阵。这将允许您以
vec4
的形式访问矩阵的第三列。您在原始代码片段中的数组下标被关闭了一个,而且还不清楚uMatrix
是否与nMatrix
的矩阵大小相同,为什么要使用不变的内环循环这三次
无论如何,如果要在4x4矩阵中设置特定列(第3列),可以执行以下操作:
mat4 nMatrix=uMatrix;//假设uMatrix为mat4
nMatrix[2]=vec4(0.0,1.0,2.0,3.0);
当使用数组下标表示法时,GLSL使用列主矩阵。这将允许您以vec4
的形式访问矩阵的第三列。原始代码段中的数组下标被关闭了1,而且还不清楚uMatrix
是否与nMatrix
的矩阵大小相同