我正在使用glm::lookAt
一个矩阵来改变世界。这很好用,我可以生成矩阵,将其输入着色器,一切正常。我现在需要做的是通过lookAt
矩阵变换任意向量(即 100,100,100,1)。出于某种原因,我得到垃圾值
glm::mat4 model = glm::lookAt(glm::vec3(current_pos.x,
current_pos.y,
current_pos.z),
glm::vec3(current_pos.x + dir.x,
current_pos.y + dir.y,
current_pos.z + dir.z),
glm::vec3(up.x,up.y,up.z));
GLfloat fmodel[16] =
{
model[0][0],
model[0][1],
model[0][2],
model[0][3],
model[1][0],
model[1][1],
model[1][2],
model[1][3],
model[2][0],
model[2][1],
model[2][2],
model[2][3],
model[3][0],
model[3][1],
model[3][2],
model[3][3]
};
的值的打印输出model
:0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3
我正在使用计算点model * vec4(x, y, z, 1)
矩阵是重复的,所以我可以将它作为制服传递。两者都使用原始矩阵和从数组构造矩阵产生相同的结果。
编辑
打印代码如下:
for (unsigned i = 0; i < 16; ++i)
printf("%d,", fmodel[i]);
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
无论我的向量是什么,这都会产生输出