我在关注的教程系列中遇到了很多问题。(教程可以在这里找到: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
,但没有改变任何内容。我知道该程序正在运行代码块,因为我在代码块中添加了一些printf( "You are pressing this key" );
或printf( "Active" );
,并且它们在控制台中列出。我试着查看页面底部的帮助信息,着色器日志没有告诉我任何事情(着色器日志是GL.log,也在项目文件夹中)。如果矩阵均匀位置小于0,我确实尝试输出。顶点矩阵返回1,投影矩阵返回0.投影矩阵的均匀位置是问题吗?如果是这样,我该如何解决?
我也尝试使用if ( cam_moved == true )
而不仅仅是if( cam_moved )
,但这也没有做任何事情。请帮助,我很难过,无法弄清楚如何解决这个问题。我的编译器是MinGW,我使用Notepad ++作为我的IDE。我没有任何问题链接到任何东西。我使用GLFW和GLEW作为我的窗口处理库。请注意,我正在构建所有的OpenGL程序,以便与Mac和Linux交叉兼容,因此我不会使用任何Windows函数来简化操作。
如果您有任何建议可以提高代码效率,请告诉我并解释它是如何工作的。
答案 0 :(得分:1)
您在循环之前一次实现矩阵T
,其值永远不会改变。
您需要在mat4 T=…
mat4 view_mat=…
和219 while (!glfwWindowShouldClose(window))
行