Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt和OpenGL在游戏开发中的应用_Qt_Opengl - Fatal编程技术网

Qt和OpenGL在游戏开发中的应用

Qt和OpenGL在游戏开发中的应用,qt,opengl,Qt,Opengl,我有几个关于Qt的问题 我已经知道Qt和OpenGL可以一起使用。在 我们在我的大学使用GLUT的那一刻(用于窗口和输入) 管理层)。我看到Qt也能做同样的事情

我有几个关于Qt的问题

  • 我已经知道Qt和OpenGL可以一起使用。在 我们在我的大学使用GLUT的那一刻(用于窗口和输入) 管理层)。我看到Qt也能做同样的事情<有吗 使用Qt代替GLUT有什么缺点吗?(性能) (明智的)

  • 我还知道Qt可以用来构建ingame GUI。我甚至看到 这是一个3d GUI示例。所以这是可能的但是它会吗 如果您关心 性能?


  • Qt和其他任何工具一样,都可能被误用。但仅仅因为您使用Qt,这并不意味着OpenGL的性能会受到影响。OpenGL不关心它的上下文和它绑定到的可绘制文件是如何创建的。Qt的最大影响是它如何管理和交付事件;信号/插槽机制。

    是否有64位版本的glut for windows?我相信它不再处于开发阶段,也不是开源的。QT是一个很好的跨平台工具包,目前仍处于开发阶段。真的没有理由进行比较。学校仍然使用glut,因为它是一个流行的3D编程教学库,而不是因为它提供了最好的性能。此外,大部分性能将来自opengl,而不是小部件库。@Codeguy007:还有FreeGLUT,它是开源的,维护良好。是的,它有Win64版本。然而,我不推荐一个游戏的供过于求。最好使用SDL或GLFW。为什么在游戏中选择GLFW而不是QT?因为QT使用事件和GLFW c回调?@MaikKlein:GLFW不使用回调,SDL也不使用回调(我想你指的是GLUT,它是一个不同的框架)。它将整个事件循环置于您的手中。这正是你想要的游戏!Qt传递在mainloop中的队列中收集的信号,然后将这些信号分派到它们所连接的插槽。这使得延迟有点不可预测。在大多数情况下,您不会注意到,但有时……关键是,使用GLFW和SDL,您可以精确控制事件管理、操作顺序和时间安排。对于Qt,你不需要。@datenwolf:Events和signals/slot通常是不相关的。几乎所有的信号/插槽基本上都是对方法的调用,根本不经过事件循环。只有在多线程设置中才会涉及事件循环。因此,您的语句会崩溃为“不要做太多事情,否则您的延迟将受到影响”,这在任何框架中都是正确的。@TobiasHunger:的确如此。然而,大多数游戏是多线程的,然后事情变得有趣;独立于使用的框架。使用一个线程进行窗口管理,自定义循环在渲染()之前调用ProcessEvents()[基本上,编写自己的游戏循环]允许您直接控制Qt的循环:)