所以我正在开发一个基于Qt 4.8的项目,所以当使用OpenGL时,我必须通过QGL的东西。
我的目标是在浮点纹理上写入数据以执行每像素拾取(在每个像素上写入3个值2个整数和浮点值)。
所以我使用了QGLFramebufferObject并且正在进行屏幕外渲染,但是我在检索数据时遇到了问题。我调查的第一件事是指定FBO的内部格式,但是当我尝试使用正确的格式时我需要GL_RGB32F编译器找不到它,我检查了上下文并且它是3.1核心配置文件所以它应该在那里。我的第二个问题是从缓冲区读回信息时的钳位,它被归一化,所以我知道我必须用glClampColorARB禁用值的钳位,但编译器也找不到它。
所以我想我的问题是如何加载缺少的内容,以便我可以找到内部格式和钳位功能的常量。
由于
答案 0 :(得分:0)
我猜你正在使用较旧的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类。)