开始学习Qt + OpenGL

5

我希望使用Qt和OpenGL超级圣经2010版开发项目,实现移动灯光、改变颜色、激活/禁用纹理等简单操作。但是,迄今为止我找到的Qt文档都让我感到无从下手。请问我该在哪里找到适合我需要的简单教程?

3个回答

9
你有使用OpenGL的经验吗?我知道这不是你想听到的答案,但我认为最新版本的OpenGL具有极其陡峭的学习曲线。我强烈建议先学习带有“直接模式”(glBegin、glEnd调用)的OpenGL 1.x,然后学习顶点数组和显示列表,接着是顶点缓冲对象和索引缓冲对象,最后是着色器。
NeHe有一些出色的tutorials可以让你开始学习OpenGL 1.x,在尝试了一两个星期之后,学习VA、DL,然后是VBO通常会变得相对容易。着色器非常难,实际上有自己的整个语言(GLSL)。在你理解了所有这些东西之后,你可能可以更轻松地转向最新的OpenGL内容。
如果你想要“跳过”直接进入最新的OpenGL 4.x内容,Swiftless tutorials可以让你开始,但同样需要面对极其陡峭的学习曲线。
祝好运!

谢谢,我之前使用过OpenGL的固定管线功能。现在我正在学习着色器,并且想要使用一些超越Glut的窗口管理工具。 - andandandand
不用谢。我与你的方向相反。我选择了比Glut更低级的窗口管理方式:自己动手。也许有点控制欲,但我喜欢亲自处理所有事情。 - Andrew Rasmussen
1
在我看来,即时模式并没有什么能够使事情更易于理解的地方。顶点数组同样容易理解。我认为学习即时模式会引起一些误解,当涉及到顶点数组时很难消除这些误解。因此,我坚信不应该教授即时模式。 - datenwolf
VA和IM之间的实现可能很容易理解。然而,理解背后发生的事情则更加复杂。立即模式传递每个顶点/颜色/纹理坐标到GPU每一帧,VA发送指向包含所有数据的数组的指针,而VBO将数组存储在GPU上,并告诉GPU使用存储数据的哪一部分。如果初学者只关注于代码以及背景中发生的事情,则很难理解所有这些。 - Andrew Rasmussen

4

您尝试过这里的Qt OpenGL示例吗?

也许您会在其中找到一些有用的东西。

祝您好运!


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接