我試圖幾何着色器添加到我的計劃。問題是我正在使用QGL函數,我的OpenGL版本是3.1和Qt 5.0。幾何着色器
在Qt 5.0中,QOpenGLShader和QOpenGLShaderProgram類只支持Vertex和f碎片着色器。 Qt 5.1包含對OpenGL支持的所有着色器階段(包括幾何着色器)的支持。我知道如何使用QGL函數提供的addShaderFromSourceCode添加着色器,但這樣不可能添加幾何着色器。
有人可以幫助我如何幾何着色器添加到我的計劃?
我試圖幾何着色器添加到我的計劃。問題是我正在使用QGL函數,我的OpenGL版本是3.1和Qt 5.0。幾何着色器
在Qt 5.0中,QOpenGLShader和QOpenGLShaderProgram類只支持Vertex和f碎片着色器。 Qt 5.1包含對OpenGL支持的所有着色器階段(包括幾何着色器)的支持。我知道如何使用QGL函數提供的addShaderFromSourceCode添加着色器,但這樣不可能添加幾何着色器。
有人可以幫助我如何幾何着色器添加到我的計劃?
不要混淆QGL和QOpenGL類。首先在Qt 5中折舊並且不能使用(僅適用於Qt 4兼容代碼)。第二不具有幾何形狀着色器Qt中5.0,只從Qt的5.1(原因是Qt的5最初基於OpenGL ES爲大平臺的相容性,在Qt的5.1的溶液中加入對OpenGL 3-4支持)。
您可以使用經典的GL代碼直接使用幾何着色器(不那麼QT)
簡短的回答:你不能有此功能使用Qt 5.0和OpenGL 3.0。
請確保您使用的是Qt 5.1,因爲幾何着色器支持僅在該版本中添加。 Qt 5.0沒有這樣的功能。有關詳細信息,請參閱official documentation。
另外,肖恩有blogged about it時,他們將此功能添加到Qt。寫在基於OpenGL核心特徵OpenGL的 着色語言(GLSL)
QOpenGLShader ::幾何
0x0004幾何形狀着色器(需要 的OpenGL> = 3.2)。
你是怎麼試圖補充的?你選擇了正確的類型? http://qt-project.org/doc/qt-5.1/qtopengl/qglshader.html#ShaderTypeBit-enum當你嘗試它時會得到什麼錯誤? – lpapp
你可以自由地繞過Qt的OpenGL便利功能,並使用OpenGL香草API直接加載着色器。 – datenwolf