您可以使用 glReadPixels 从纹理图像中读取像素数据吗?
我生成纹理图像的代码是:
gl.glTexImage2D( GL2.GL_TEXTURE_2D, 0, GL2.GL_RGBA, width, height, 0, GL2.GL_RGBA, GL2.GL_UNSIGNED_BYTE, ByteBuffer.wrap( pixels ) );
变量像素包含图像的像素值。然后我使用 glReadPixels 尝试读取刚刚创建的纹理图像的像素数据。我使用 glReadPixels 的代码是:
FloatBuffer buffer = FloatBuffer.allocate( 4 );
for ( int row = 0, col; row < height; row++ ) {
for ( col = 0; col < width; col++ ) {
gl.glReadPixels( col, row, 0, 0, GL2.GL_RGBA, GL2.GL_FLOAT, buffer );
System.out.print( buffer.get( 0 ) );
}
System.out.println();
}
问题是我一直得到 0.0 的值,我想知道纹理图像是否存储在帧缓冲区中,因为 glReadPixels 从帧缓冲区读取数据?