2017-04-02 103 views
1

我想使用QOpenGLFramebufferObject渲染到半浮动纹理。 我尝试创建与下面的代码FBO:渲染到QOpenGLFramebufferObject GL_HALF_FLOAT

structureTensorTexture = new QOpenGLFramebufferObject(
    renderWidth, 
    renderHeight, 
    QOpenGLFramebufferObject::NoAttachment, 
    GL_TEXTURE_2D, 
    GL_HALF_FLOAT 
); 

但是当我运行该程序会出现在控制台此消息:

[opengl\qopenglframebufferobject.cpp line 544] OpenGL Error: 1280 
QOpenGLFramebufferObject: Framebuffer incomplete attachment. 
QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment. 

如果我使用的,而不是GL_HALF_FLOAT GL_RGBA错误信息没有按不会出现,但这不符合我的目的。

如何使用QT渲染到半浮动纹理?

回答

3

通过提供实际的OpenGL图像格式。 GL_HALF_FLOAT不是图片格式;这是一个代表类型的枚举。您可以使用它作为type in pixel transfer operations,但这不是图像格式。使用16位浮点数的将为GL_RGBA16F

+0

谢谢,这工作得很好! –