我开始使用glm(在VS2010中)时遇到了一些非常简单的错误.我有这个简短的代码:
glm::mat4 translate = glm::translate(glm::mat4(1.f), glm::vec3(2.f, 0.f, 0.f));
glm::vec4 vector(1.f,1.f,1.f,0.f);
glm::vec4 transformedVector = translate * vector;
Run Code Online (Sandbox Code Playgroud)
transformedVector的结果与其原始值(1.f,1.f,1.f,0.f)相同.我不知道我在这里失踪了什么.我已经尝试了旋转矩阵,并且工作正常,点被正确转换.
glm::mat4 rotate = glm::rotate(glm::mat4(1.f), 90.f, glm::vec3(0.f, 0.f, 1.f));
glm::vec4 vector(1.f, 1.f, 1.f, 0.f);
glm::vec4 transformedVector = rotate * vector;
Run Code Online (Sandbox Code Playgroud)
好的,我发现了问题.我想翻译一个顶点而不是一个向量,在这种情况下我必须将w值设置为1.