QT中缺少glclampcolor

时间:2013-10-14 21:47:19

标签: qt opengl

我正在使用QGLWidget和QGLFramebufferObject在QT中使用Render to Texture。 我的目的是通过着色器将浮点值写入纹理。

我使用GL_RGB32F纹理,RTT似乎正在发生。但是,存储在纹理中的值似乎被夹在0和1之间。

gl_FragData [0]的测试值= vec4(120.0,2.0,0.8,1.0);在着色器中 在纹理中得到1.0,1.0,0.8。

我看到帖子提示调用glClampColor

glClampColorARB(GL_CLAMP_FRAGMENT_COLOR,GL_FALSE); glClampColorARB(GL_CLAMP_READ_COLOR,GL_FALSE);

将摆脱这种限制,但遗憾的是我无法在QT 5.0.2中找到此调用。 QT 4.3在QOpenGLFunctions

之后似乎被删除了

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

将QT与OpenGL桌面版本一起使用 Qt 5.1.1 for Windows 32-bit (VS 2010, OpenGL, 504 MB)

有关OpenGL和QT的更多信息: http://qt-project.org/wiki/Qt-5-on-Windows-ANGLE-and-OpenGL

正如您在默认情况下看到的那样,使用了OpenGL ES 2.0版本(通过Angle项目),并且glClampColor不可用。

答案 1 :(得分:0)

感谢大家的回复。迁移到5.1似乎更耗时,所以我最终使用glGetTexImage复制整个纹理并读取所需的纹理元素。与glReadPixels实现相比,它更慢,但现在起作用。当我有时间升级时,这些建议肯定会有很大用处。

再次感谢!