WebGL中modelMatrix.setTranslate()和modelMatrix.translate()之间有什么区别?

时间:2016-03-10 18:18:45

标签: javascript webgl

所以我正在学习使用JavaScript编写WebGL,并且出现了两个看似非常相似的术语。

modelMatrix.setTranslate(0,0,0);
modelMatrix.translate(0,0,0);

Zero仅用于示例,modelMatrix是建模矩阵。

set translate和translate有什么区别?

提前谢谢

1 个答案:

答案 0 :(得分:2)

setTranslate就像一个二传手。它从参数创建一个新的转换矩阵并将其存储到modelMatrix。例如,假设modelMatrix的值为

1 0 0 2
0 1 0 2
0 0 1 2
0 0 0 1

当您应用此代码modelMatrix.setTranslate(0,0,0);时,它将变为

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

相反,translate将已存储在modelMatrix中的矩阵乘以从参数创建的矩阵,并将结果存储到modelMatrix。 例如,modelMatrix的值是

1 0 0 2
0 1 0 2
0 0 1 2
0 0 0 1

当您应用此代码modelMatrix.translate(0,0,0);时,它将变为

1 0 0 2   1 0 0 0   1 0 0 2
0 1 0 2 x 0 1 0 0 = 0 1 0 2
0 0 1 2   0 0 1 0   0 0 1 2
0 0 0 1   0 0 0 1   0 0 0 1