我正在尝试将几何着色器添加到我的程序中。问题是我正在使用 QGLfunctions,我的 OpenGL 版本是 3.1 和 Qt 5.0。
在 Qt 5.0 中,QOpenGLShader 和 QOpenGLShaderProgram 类仅支持顶点和片段着色器。 Qt 5.1 包括对 OpenGL 支持的所有着色器阶段的支持(包括几何着色器)。我知道如何使用 QGLfunctions 提供的 addShaderFromSourceCode 添加着色器,但这样就无法添加几何着色器。
有人可以帮助我如何将几何着色器添加到我的程序中吗?
最佳答案
不要混淆 QGL 和 QOpenGL 类。 First 在 Qt 5 中被弃用并且不能使用(仅用于 Qt 4 兼容代码)。第二个在 Qt 5.0 中没有几何着色器,仅来自 Qt 5.1(原因是 Qt 5 最初基于 OpenGL ES 以实现大平台兼容性,在 Qt 5.1 中添加了对 OpenGL 3-4 的支持)。
您可以使用经典的 GL 代码直接使用几何着色器(然后无需 Qt)
关于c++ - 几何着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18994666/