M
Melkor
Gast
Hallo,
ich möchte aus einem OpenGL Fenster einen Ausschnitt vom Framebuffer auslesen mit glReadPixels. Der Ausschnitt im Fenster wird durch minx, miny, maxx, maxy repräsentiert. Es funktioniert... fasst.
Es wird zwar ein Bereich ausgelesen, aber scheinbar liegt bei den y-Koordinaten ein Problem vor, da nur ein verschoebenr, zu kleiner Berech typischerweise kopiert wird. Ich glaube es könnte damit zusammen hängen, dass der viewport anders herum ausgerichtet ist, aber ich weiss nicht wie ich die Parameter setzen muss und war recht erfolglos bei der Suche...
ich möchte aus einem OpenGL Fenster einen Ausschnitt vom Framebuffer auslesen mit glReadPixels. Der Ausschnitt im Fenster wird durch minx, miny, maxx, maxy repräsentiert. Es funktioniert... fasst.
Es wird zwar ein Bereich ausgelesen, aber scheinbar liegt bei den y-Koordinaten ein Problem vor, da nur ein verschoebenr, zu kleiner Berech typischerweise kopiert wird. Ich glaube es könnte damit zusammen hängen, dass der viewport anders herum ausgerichtet ist, aber ich weiss nicht wie ich die Parameter setzen muss und war recht erfolglos bei der Suche...
Java:
int w = maxx - minx;
int h = maxy - miny;
int total = w * h;
// szene rendern
ByteBuffer buffer = Buffers.newDirectByteBuffer(total * 3);
gl.glReadPixels(minx, viewport[3] - maxy, w, h, GL.GL_RGB, GL.GL_BYTE, buffer);
for (int i = 0; i < total; i += 3) {
byte r = buffer.get(i + 0);
byte g = buffer.get(i + 1);
byte b = buffer.get(i + 2);
// ...
}