【发布时间】:2018-08-10 00:49:11
【问题描述】:
我正在使用 glfw、glad 和 glm 修补 OpenGL。在我正在使用的其中一个教程中,他们演示了 glm 的一些简单用法:
glm::vec4 vec(1.0f, 0.0f, 0.0f, 1.0f);
glm::mat4 trans;
trans = glm::translate(trans, glm::vec3(1.0f, 1.0f, 0.0f));
vec = trans * vec;
std::cout << vec.x << vec.y << vec.z << std::endl;
当我编译和运行这段代码时,我得到了垃圾值(通常是 NAN)。该教程特别指出,实例化
glm::mat4 trans;
默认情况下会为变量“trans”创建一个单位矩阵。我认为这可能是问题所在,尽管我已经验证 glm 默认会这样做。
如果对您有帮助,您可以在第 308 行找到整个源文件 here。非常感谢您的宝贵时间!
【问题讨论】:
-
感谢 Rabbid76。我刚刚发现 glm::mat4 trans = glm::mat4(1.0f);是一种更详细的方式来执行您刚刚展示的内容。当您发布此问题时,我正在自己回答这个问题。我不能接受我发布了至少 2 天的答案,所以如果您想将您的评论作为答案发布,我会将其标记为正确。
标签: c++ opengl matrix glm-math coordinate-transformation