2010-05-03 58 views
2

我想找到所有在GLSL中的NeHe的Qt教程。因为让我们面对它,过去的OpenGL已经死了,着色器是现在唯一的方法。在Qt-4.6中,他们引入了QMatrix4x4,QVector3和Shader类。但我找不到任何教程。Qt 4.6 OpenGL GLSL

我发现的所有这些,都使用蹩脚的SDL和/或GLUT(这些只是普通的无用)。

+6

SDL和GLUT不是没用的。海事组织他们只是不同目的的不同图书馆。 Qt是一样的。 – 2010-05-03 03:42:38

+0

对我来说,他们是因为我不会使用它们 – Zeke 2010-05-03 04:40:00

回答

2

在语言和GUI框架之间移植OpenGL代码不应该更改代码。例如,当从GLUT移动到Qt时,将GLUT的整形代码移动到QGLWidget的resizeGL函数中,并将GLUT的显示函数移动到QGLWidget的paintGL函数中。除了安装的东西外,这是从GLUT到Qt的最大变化。

除此之外,所有事情都在很少的奖金公用事业和班级上。当你需要时,你基本上必须找一个班。像“我要使用着色器,所以让我们看看Qt是否有任何助手类”。你可以找到一个名为QGLShader的类,它似乎很有帮助,但是它没有任何文档,所以你应该尝试另一个可能有像QGLShaderProgram这样的文档的类。

http://doc.trolltech.com/4.6/qglshaderprogram.html#details

跳下的细节它给你如何使用它的一个示例/教程和QGLShader类。

对于像矢量和矩阵这样的小类,你只需要阅读它们的函数文档,这很简单。例如,向量有一个QVector3类。我可以看看它是类的页面,并看到它具有正常的功能,我期望在向量类中正常化,添加等。关于这个简单的东西的教程不会真的帮助我。

以我的经验,这是在OpenGL中使用包装的标准方法。例如,在JOGL中,有一个很大的Texture类,这对纹理io很有帮助。当我需要添加纹理时,我发现它只是通过在javadoc中搜索“纹理”。