【问题标题】:Using Qt for only making a window to quickly render opengl inside of使用 Qt 仅制作一个窗口以在其中快速渲染 opengl
【发布时间】:2011-11-24 01:59:45
【问题描述】:

我有兴趣在 Windows 7 上试验 Opengl。我担心的是,因为 Qt 更适合具有复杂 GUI 和其他与游戏不完全相关的东西的应用程序,它不适合高性能 3D 图形.

我的意图是只使用 Qt 来创建一个窗口,而不是只使用 Opengl 调用来创建我的图形。使用这种方法,使用 Qt 创建的窗口的 Opengl 程序是否具有与使用 win32 api 创建的窗口非常相似的性能?我应该只使用 SDL 吗?我只想要一种漂亮、简单、跨平台的方式来创建一个可以“将我自己的 opengl 内容”放入其中的窗口。我可能还想用它来接收键盘和鼠标事件。

附: GLUT 似乎有点过时了,所以我想使用一些新的东西。

【问题讨论】:

    标签: c++ qt opengl


    【解决方案1】:

    使用 Qt 制作游戏的主要问题不在于 Qt 通常用于编写应用程序。这根本不会影响 OpenGL。这就是 Qt 不是为您可能需要游戏来完成的所有其他事情而设计的。输入、声音(不是 Qt 的那种声音)等等。

    您对可用于创建 OpenGL 窗口的工具的了解似乎相当有限。你应该调查some of the alternatives

    FreeGLUT 非常适合制作演示应用程序。我总是建议在您的通用工具集中使用它,如果没有其他原因,只是为了制作概念验证应用程序。在证明图形效果时,最好先在有限的受控环境中进行,然后再将其传输到您的实际应用程序中。

    GLFW 很好,因为它还具有输入功能(操纵杆等)。但它和 FreeGLUT 一样,无法获取 HWND(或其他类型的平台特定窗口对象),因此手动将声音工具附加到它们有点困难。

    SDL、SFML 和 Allegro 5 都是专门为游戏类应用程序设计的。他们提供全方位的输入、声音和其他工具。您选择使用哪一个取决于您,但这些最有可能是您的最佳选择。

    【讨论】:

    • 这些库中的哪一个(如果有的话)对 Opengl 4.2 的支持最好?
    • @JAKE6459:所有这些都没有。对 4.2 的“支持”不是这些库必须处理的。它们只是提供 OpenGL 上下文并管理窗口;您可以通过加载正确的函数指针来“支持” 4.2。有libraries for loading function pointers,大部分都支持4.2。
    • 某些 GPU 根本不支持 OpenGL 4,这一点值得注意。 (例如流行的 Intel 集成 GPU)
    猜你喜欢
    • 2020-11-11
    • 2013-11-26
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 2012-03-17
    • 1970-01-01
    • 2019-07-15
    相关资源
    最近更新 更多