QOpenGLFramebufferObject

QOpenGLFramebufferObject

我想使用QOpenGLFramebufferObject渲染为半浮点纹理。
我尝试使用以下代码创建fbo:

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_RGBA而不是GL_HALF_FLOAT,则不会出现错误消息,但这与我的目的不符。

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

最佳答案

通过提供实际的OpenGL图像格式。 GL_HALF_FLOAT不是图像格式;这是一个代表类型的枚举。您可以将其用作 type in pixel transfer operations,但这不是图像格式。

使用16位浮点数的image format将是GL_RGBA16F

关于c++ - 渲染到QOpenGLFramebufferObject GL_HALF_FLOAT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43173271/

10-09 08:48