C++ 在opengl的单值纹理中存储整数不起作用

C++ 在opengl的单值纹理中存储整数不起作用,c++,opengl,textures,C++,Opengl,Textures,我正在尝试编写一个在状态上工作的计算着色器。我想在单通道纹理中存储此状态的初始值。然而,这是行不通的 我有以下代码: GLuint-tex; glGenTextures(1和tex); int time_horizon=1000; 标准::矢量tex_vals(宽度*高度*4,时间范围); 用于(自动x:tex\u vals) 断言(x==时间范围); glBindTexture(GL_TEXTURE_2D,tex); 断言(glGetError()==0); GLTEXAGE2D(GL_纹理_

我正在尝试编写一个在状态上工作的计算着色器。我想在单通道纹理中存储此状态的初始值。然而,这是行不通的

我有以下代码:

GLuint-tex;
glGenTextures(1和tex);
int time_horizon=1000;
标准::矢量tex_vals(宽度*高度*4,时间范围);
用于(自动x:tex\u vals)
断言(x==时间范围);
glBindTexture(GL_TEXTURE_2D,tex);
断言(glGetError()==0);
GLTEXAGE2D(GL_纹理_2D,0,GL_R32I,宽度,高度,0,GL_红色_整数,GL_INT,tex_vals.data());
自动错误=glGetError();
如果(错误){

std::cerr我将把问题评论中已经提供的答案放在这里

从当前绑定的帧缓冲区读取像素


要从纹理读取像素,您应该使用
glGetTexImage
或更现代的版本(4.5),该版本允许直接传递纹理句柄,而无需将纹理绑定到上下文。

glReadPixels
不从纹理读取,而是从帧缓冲区读取。您必须使用。