【发布时间】:2013-06-01 15:54:31
【问题描述】:
几天来,我一直在尝试使用 glReadPixels 读取浮点数据。
我的 cpp 代码:
//expanded to whole screen quad via vertex shader
glDrawArrays( GL_TRIANGLES, 0, 3 );
int size = width * height;
GLfloat* pixels = new GLfloat[ size ];
glReadPixels( 0, 0, width, height, GL_RED, GL_FLOAT, pixels );
pixelVector.resize( size );
for ( int i = 0; i < size; i++ ) {
pixelVector[i] = (float) pixels[i];
}
还有我的着色器代码:
out float data;
void main()
{
data = 0.02;
}
奇怪的是,我得到 0.0196078 作为输出。但是当数据为 0.2 时,一切都很好。如果数据为 0.002,则全为 0。什么可能导致这种情况?
【问题讨论】:
标签: c++ opengl graphics glsl shader