Qt + OpenGL 入门

Posted

技术标签:

【中文标题】Qt + OpenGL 入门【英文标题】:Getting started with Qt + OpenGL 【发布时间】:2011-04-16 00:24:11 【问题描述】:

我想开发基于 2010 版 OpenGL 的 Superbible with Qt 的项目。我想做一些事情,比如移动灯光、改变它们的颜色、激活/停用纹理等。简单的东西。到目前为止,我发现的 Qt 文档非常庞大。我在哪里可以找到适合我简单需求的简单教程?

【问题讨论】:

【参考方案1】:

您是否使用过 OpenGL?我知道这不是您想听到的答案,但我发现最新版本的 OpenGL 具有非常陡峭的学习曲线。我强烈建议使用“直接模式”(glBegin、glEnd 调用)学习 OpenGL 1.x,然后学习顶点数组和显示列表,然后学习顶点缓冲区对象和索引缓冲区对象,最后是着色器。

NeHe 有一些出色的tutorials 可以帮助您开始使用 OpenGL 1.x,并且在玩了一两周之后,通常很容易了解 VA、DL 和 VBO。着色器非常难,实际上有自己的完整语言(GLSL)。在您了解所有这些内容之后,您可能会更轻松地了解最新的 OpenGL 内容。

如果您想直接“跳”到最新的 OpenGL 4.x 内容,Swiftless tutorials 可以帮助您入门,但同样,这是一个非常陡峭的学习曲线。

祝你好运!

【讨论】:

谢谢,我以前使用过 OpenGL 的固定管道功能。我现在正在学习着色器,我想转向 Glut 以外的东西来管理我的窗口。 不客气。我已经和你相反了。比 Glut 低的东西来管理我的窗口:我。称我为控制狂,但我喜欢自己处理。 恕我直言,即时模式没有任何意义,它使事情更容易理解。顶点数组同样可以理解。哎呀,我认为学习立即模式会引发一些误解,当涉及到顶点阵列时,这些误解很难消除。所以我坚信不应该教授立即模式。 实现(在 VA 和 IM 之间)可能同样容易理解。但是,了解背景中发生的事情要复杂一些。事实上,即时模式在每一帧都传递(到 GPU)每个顶点/颜色/texcoord,并且 VA 正在发送指向包含所有数据的数组的指针,而 VBO 正在将数组存储在 GPU 上,然后告诉GPU 使用存储数据的哪一部分。如果他们只关注代码和后台发生的事情,那么从初学者的角度来看,所有这些都很难理解。【参考方案2】:

你试过 Qt OpenGL 例子here?

也许你会在那里找到一些有用的东西。

祝你好运!

【讨论】:

【参考方案3】:

您可能对此感兴趣:http://www.libqglviewer.com/

【讨论】:

以上是关于Qt + OpenGL 入门的主要内容,如果未能解决你的问题,请参考以下文章

qt opengl的图形怎么刷新

qt 3d 和opengl哪个好

Qt5怎样使用OpenGL

Qt & OpenGL:如何强制使用 OpenGL 2.1?

如何为 Qt 5 安装 OpenGL

Qt 使用自带的OpenGL模块开发程序