Визуализировать в QOpenGLFramebufferObject GL_HALF_FLOAT
Я хочу сделать рендеринг в текстуру наполовину с использованием 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
1 ответ
Решение
Предоставляя фактический формат изображения OpenGL. GL_HALF_FLOAT
не формат изображения; это перечисление, которое представляет тип. Вы можете использовать это как type
в операциях передачи пикселей, но это не формат изображения.
Формат изображения, который использует 16-разрядные числа с плавающей запятой, будет GL_RGBA16F
,