我想使用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渲染半浮动纹理?
答案 0 :(得分:3)
通过提供实际的OpenGL图像格式。 GL_HALF_FLOAT
不是图片格式;它是代表一种类型的枚举。您可以将其用作type
in pixel transfer operations,但这不是图像格式。
使用16位浮点数的image format为GL_RGBA16F
。