【问题标题】:OpenGL - Can't get camera to work [closed]OpenGL - 无法让相机工作[关闭]
【发布时间】:2014-05-18 23:54:27
【问题描述】:

我在关注的教程系列中遇到了很多问题。(教程可以在这里找到: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 函数来简化事情。

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

【问题讨论】:

  • 请不要在您的问题中使用指向保管箱共享或任何外部资源的链接(永久网页除外)。主要是因为它可能在一两年内无效/更改,而且还因为它要求任何想要帮助您下载代码,设置构建环境等的人......您应该能够提供相关的sn-ps代码,如果你还不能,那么你需要做更多的调试......
  • 因为我是新来的,我已经尽我所能让这个问题适合想要帮助的 stackoverflow 用户的需求。你会如何重写这个问题?因为我怀疑添加 1600-1700 行代码是否适合这个问题,并且不知道它是 DLL 错误还是其他类似的东西让我想将它们添加到可下载的链接中进行测试。特别是因为我已经调试了将近一个星期,并且知道代码块正在执行,但没有像预期的那样工作,我不知道我需要包含哪些 sn-ps 代码。
  • 公平的问题。如果我听起来居高临下,我很抱歉,是的,调试低级的东西对我们所有人来说都是一种痛苦。我不是 OpenGL 专家,但我确实有一些 DirectX 和 WebGL 经验,所以我为什么不下载一个副本,看看我是否可以帮助改进这个问题。 编辑:刚刚注意到您找到了答案。

标签: c++ opengl matrix


【解决方案1】:

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

您需要在while (!glfwWindowShouldClose(window)) 中移动217 mat4 T=… 和219 mat4 view_mat=…

【讨论】:

  • 非常感谢。我花了几天时间试图弄清楚这一点,通过移动你告诉我的线以及 218,相机开始工作!
  • 啊,第 218 行取决于 camera_yaw 不知何故错过了……不客气
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
  • 2021-07-03
  • 2015-07-16
  • 2014-07-21
  • 1970-01-01
相关资源
最近更新 更多