c++ - OpenGL - 无法让相机工作

标签 c++ opengl matrix

<分区>

我在学习教程系列时遇到了很多问题。(教程可以在这里找到:http://www.antongerdelan.net/opengl/ 我在虚拟相机教程中)

这是我的项目文件夹和我使用的所有东西(这里粘贴的代码太多了): https://www.dropbox.com/s/sohk0uk9h7h2egw/Virtual%20Camera.zip

我正在使用他的数学库(math_funcs.h 和 math_funcs.cpp,并将它们合并到一个头文件 GLMath.h 中。您应该在我的项目文件夹中看到它。)

目前,我尝试在每个键盘控件上添加 GLFW_PRESS == glfwGetKey,但没有任何改变。我知道程序正在运行代码块,因为我在代码块,它们列在控制台中。我试着查看页面底部的帮助信息,但着色器日志没有告诉我任何信息(着色器日志是 GL.log,也在项目文件夹中)。如果矩阵统一位置小于 0,我确实尝试输出。顶点矩阵返回 1,投影矩阵返回 0。投影矩阵的统一位置是问题吗?如果是这样,我该如何解决? 我也尝试过使用 if ( cam_moved == true ) 而不仅仅是 if( cam_moved ),但这也没有做任何事情。请帮助,我很难过,无法弄清楚如何解决这个问题。我的编译器是 MinGW,我使用 Notepad++ 作为我的 IDE。我链接到任何东西都没有问题。我使用 GLFW 和 GLEW 作为我的窗口处理库。请注意,我正在构建我的所有 OpenGL 程序以与 Mac 和 Linux 交叉兼容,因此我不会使用任何 Windows 功能来简化事情。

此外,如果您有任何提高代码效率的建议,请告诉我并解释它是如何工作的。

最佳答案

你实例化你的矩阵 T 一次并且在循环之前,它的值永远不会改变。

您需要移动 while (!glfwWindowShouldClose(window)) 中的第 217 行 mat4 T=... 和第 219 行 mat4 view_mat=... >

关于c++ - OpenGL - 无法让相机工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23728007/

相关文章:

java - LWJGL 3 中的抗锯齿

matrix - 实现注意力池网络问答的问题

Android NDK 是 crystaX 获得 wchar 支持的方式吗?

c++ - 使用 boost.python 时 c++ 流有什么问题?

c++ - 将 freetype 位图复制到 opengl 纹理时出现问题

c++ - 如何将欧拉角转换为前、上、右 vector

返回数组中的值时的C++访问冲突读取位置

c++ - 如何将矩阵列表从 Rcpp 返回到 R?

c++ - 与 STL 和 std::basic_string 不同,为什么 std::function 没有默认分配器

c++ - 更改 QRegion 的几何形状