我一直在试图读取浮点数据几天与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。 什么都不可能导致此?