0
我在纹理/图像中存储了不同的信息。我想把它们渲染到一个FBO纹理上,然后用glReadPixels读出它们。 整个图像被分成不同的区域,我有4行4列的信息在这个图像,我想将它们存储在不同的指针。在glReadPixels调用后丢失了这个
std::vector<float*> data;
for (int i = 0; i < _resolution; ++i) {
int posX = mod((float)i, (float)sqrt(_resolution));
posX *= _resolution;
int posY = ((float)i/_resolution);
posY *= _resolution;
float pixels[_resolution*_resolution*3];
glReadPixels(posX, posY, posX + _resolution, posY + _resolution, GL_RGB, GL_FLOAT, pixels);
for (int j = 0; j < _resolution*_resolution; ++j) {
cout << "(" << pixels[j*3] << ", " << pixels[j*3+1] << ", " << pixels[j*3+2] << ")";
}
cout << endl;
data.push_back(pixels);
}
控制台上的输出仅用于调试。
这个函数在类A中。现在在第二次迭代(i = 1,posX = 16,posY = 0)调用glReadPixels后,我失去了“this”调试控制台(我没有知道这个名字,在Xcode中留下底部)对此说,所以类A NULL。 之后,for循环引发异常访问错误。
发生了什么?
是的,我脑子里想的是是有意义的右上角^^。谢谢 – Dominick