Ich habe verschiedene Informationen in Texturen/Bilder gespeichert. Ich möchte sie auf eine FBO-Textur rendern und dann mit glReadPixels auslesen. Das ganze Bild ist in verschiedene Bereiche aufgeteilt, ich habe 4 Zeilen und 4 Spalten mit Informationen in diesem Bild und ich möchte sie auf verschiedenen Zeigern speichern.verliere dies nach glReadPixels Anruf
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);
}
Die Ausgabe auf der Konsole ist nur vorübergehend für das Debuggen.
Diese Funktionen sind in einer Klasse A. Jetzt bei der zweiten Iteration (i = 1, posX = 16, posY = 0) nach dem Aufruf von glReadPixels verliere ich das "dies" die Debugging-Konsole (ich nicht kenne den Namen, links unten in Xcode) sagt dazu, also die Klasse A NULL. Und danach wirft die for-Schleife eine Ausnahmefehlerzugriffsfehler.
Was passiert dort?
Ja, hatte ich im Sinn es war die obere rechte Ecke ^^ das macht Sinn. Vielen Dank – Dominick