Визуализировать в 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,

Другие вопросы по тегам