C++ GLREADPIxelstore与glPixelStore的使用

C++ GLREADPIxelstore与glPixelStore的使用,c++,opengl,glut,pixel,glreadpixels,C++,Opengl,Glut,Pixel,Glreadpixels,我看了很多关于glReadPixels的教程,但我很困惑: 无效glReadPixels(闪烁x、闪烁y、GLsizei宽度、GLsizei高度、格伦格式、格伦类型、GLvoid*数据) 最后一个论点是无效的? 我看了一些教程,他们将参数声明为向量、无符号字符、GLubyte等,。。。 但这到底意味着什么呢? 你需要调用glPixelStoref(,)吗?Avoid*是C/C++中的“指向内存块的指针”。glReadPixels的目的是获取帧缓冲区的一部分并将该像素数据写入内存。数据参数是它写入

我看了很多关于glReadPixels的教程,但我很困惑:

无效glReadPixels(闪烁x、闪烁y、GLsizei宽度、GLsizei高度、格伦格式、格伦类型、GLvoid*数据)

最后一个论点是无效的? 我看了一些教程,他们将参数声明为向量、无符号字符、GLubyte等,。。。 但这到底意味着什么呢?
你需要调用glPixelStoref(,)吗?

A
void*
是C/C++中的“指向内存块的指针”。
glReadPixels
的目的是获取帧缓冲区的一部分并将该像素数据写入内存。
数据
参数是它写入的“您的内存”

具体写什么以及写多少取决于,
格式
类型
。这就是为什么它需要一个
void*
;因为它可能会写入一个字节数组、一个整数数组、一个浮点数组等等。这一切都取决于这两个参数所说的内容。

我想补充一点(这可能会有帮助),那就是,您不能在抗锯齿缓冲区上使用glReadPixels。这意味着您可能需要创建自己的屏幕外缓冲区,该缓冲区具有场景副本,但禁用了AA。