如何在Glsl中更改矩阵中的值。我想在第三栏中更改nMatrix的词句。
到目前为止,我尝试过这个:
mat4 nMatrix;
for (int i = 0; i < 3; i++) {
nMatrix = uMatrix;
for (int k = 0; k < 2; k++) {
//nMatrix[3].xyz = 0.0;
nMatrix[3][k]= 0.0;
}
}但是我得到了一个编译错误:
向量从1到3的隐式截断。
发布于 2013-10-20 20:10:19
为什么要用不变的内环循环三次呢?
无论如何,如果要在4x4矩阵中设置特定的列(第3),可以这样做:
mat4 nMatrix = uMatrix; // Assuming uMatrix is mat4
nMatrix [2] = vec4 (0.0, 1.0, 2.0, 3.0);GLSL在使用数组下标表示法时使用列主矩阵。这将允许您以vec4的形式访问矩阵的第三列。原始代码片段中的数组下标是逐个关闭的,而且还不清楚uMatrix是否与nMatrix的大小矩阵相同。
https://stackoverflow.com/questions/19482147
复制相似问题