簡體   English   中英

幾何着色器

[英]Geometry shader

我正在嘗試將幾何着色器添加到我的程序中。 問題是我正在使用QGLfunctions,我的OpenGL版本是3.1和Qt 5.0。

在Qt 5.0中,QOpenGLShader和QOpenGLShaderProgram類僅支持Vertex和f Fragment着色器。 Qt 5.1包括對OpenGL支持的所有着色器階段的支持(包括幾何着色器)。 我知道如何使用QGLfunctions提供的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沒有這樣的功能。 有關詳細信息,請參見官方文檔

另外,當Sean將這項功能添加到Qt時,也發表了博客

QOpenGLShader ::幾何

0x0004基於OpenGL核心功能,以OpenGL着色語言(GLSL)編寫的幾何着色器(需要OpenGL> = 3.2)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM