【问题标题】:OpenGL Qt 4.8 Render to texture floating pointOpenGL Qt 4.8 渲染到纹理浮点
【发布时间】:2017-04-27 13:26:39
【问题描述】:

所以我正在开发一个基于 Qt 4.8 的项目,所以在使用 OpenGL 时我必须通过 QGL 的东西。

我的目标是在浮点纹理上写入数据以执行每个像素的拾取(每个像素上写入 3 个值,2 个整数和一个浮点值)。

所以我使用了 QGLFramebufferObject 并且屏幕外渲染正在发生,但我在检索数据时遇到了问题。我研究的第一件事是指定 FBO 的内部格式,但是当尝试使用正确的格式时,我需要 GL_RGB32F 编译器找不到它,我检查了上下文,它是 3.1 核心配置文件,所以它应该在那里.我的第二个问题是从缓冲区读回信息时的钳位,所以我知道我必须使用 glClampColorARB 禁用值的钳位,但编译器也没有找到它。

所以我想我的问题是如何加载缺少的内容,以便找到内部格式和钳位函数的常量。

谢谢

【问题讨论】:

  • 这只是一个完全与问题无关的旁注,但是:“检查上下文,它是 3.1 核心配置文件”不,不是。那个版本甚至不存在。核心配置文件是在 GL 3.2 中引入的,所以不知道你有什么上下文版本......

标签: c++ opengl qt4.8


【解决方案1】:

我猜您正在使用较旧的 OpenGL 头文件进行编译。在 MS Windows 上,默认的 GL/gl.h 适用于 1.1 版 :-(

AFAIK GL 相关类的 Qt 头文件不包括 OpenGL 中的所有内容,只是最低限度的工作。您应该从 www.opengl.org 获取自己的 glcorearb.h 副本,并将其包含在您的源代码中。

(您正在尝试的可以做到:我有一个使用 Qt 4.8.6 构建的 Linux/MSWin/Mac 程序,可以渲染到屏幕外浮点缓冲区。我会提供代码,但我直接使用 OpenGL 调用创建了帧缓冲区,而不是而不是使用 Qt 类。)

【讨论】:

  • 谢谢,我会先检查标题解决方案,我已经考虑过在原生 OpenGL 调用中做所有事情,所以下一步我会保持帖子更新!
猜你喜欢
  • 2019-04-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2012-06-03
  • 2014-07-22
  • 2013-10-05
  • 1970-01-01
相关资源
最近更新 更多