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