pixel auslesen in JOGLE

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...


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);
      // ...
    }
 
M

Melkor

Gast
Nachtrag:

Ich denke es sollte so heißen:
Java:
gl.glReadPixels(minx, viewport[3] - h - miny, w, h, GL.GL_RGB, GL.GL_BYTE, buffer);

Nur klappt erst dann, wenn ich die variable total sehr hoch setzte, z.b.: int total = viewport[2] * viewport[3] * 3;

Irgendwas scheine ich nicht verstanden zu haben. Warm muss dieser Wert so groß sein? Wie gehts richtig?
 
M

Melkor

Gast
Hallo nochmal,
vielleicht anders gefragt:

wenn ich von einer Pixel Position aus v Pixel-Spalten und h Pixel-Reihen auslesen will mit readPixels im RGB Format, welche Größe muss mein Buffer haben? h*w*3 scheint zu wenig zu sein, nur warum?
 
G

Guest2

Gast
Moin,

Du gibst als Typ GL_BYTE an, der default für das pack alignment ist aber (imho) 4 Byte. Du bräuchtest also 4 * 3 * w * h Bytes. Du solltest das umgehen können, indem Du das pack alignment änderst ([c]glPixelStoref(GL_PACK_ALIGNMENT, 1)[/c]).

Imho ist der empfohlene Typ [c]glReadPixels(x, y, width, height, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, buffer);[/c]. Dann muss der Speicher 4 * w * h groß sein.

Viele Grüße,
Fancy
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Bild, Pixel- / Bereichsfarbe auslesen Spiele- und Multimedia-Programmierung 12
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
Q Mehr objekte darstellen als Pixel vorhanden Spiele- und Multimedia-Programmierung 6
Androbin Pixel-genaue Kollisionserkennung Spiele- und Multimedia-Programmierung 5
J Bestimmte Pixel transparent erscheinen lassen Spiele- und Multimedia-Programmierung 5
B Java Pixel Malen Spiele- und Multimedia-Programmierung 3
M Pixel eines BufferedImage bearbeiten (Performance) Spiele- und Multimedia-Programmierung 23
Kr0e OpenGL .. Pixel Buffer Objekt oder Frame Buffer Object? Spiele- und Multimedia-Programmierung 2
Steev LWJGL: org.lwjgl.LWJGLException: Pixel format not accelerated Spiele- und Multimedia-Programmierung 9
M pixel perfect collision detection bei rotierenden Bildern Spiele- und Multimedia-Programmierung 13
G Pixel setzen mit TYPE_INT_ARGB Spiele- und Multimedia-Programmierung 10
D cm in pixel Spiele- und Multimedia-Programmierung 37
R int[] der Pixel aus PNG oder JPG ? Spiele- und Multimedia-Programmierung 2
G Pixel Häufigkeiten entsprechent einfärben Spiele- und Multimedia-Programmierung 6
K Einzelne Pixel in einem Bild lesen Spiele- und Multimedia-Programmierung 5
S BMP-Bild Pixel für Pixel bearbeiten Spiele- und Multimedia-Programmierung 1
V Tranzparente Pixel Spiele- und Multimedia-Programmierung 5
S Pixel zeichnen Spiele- und Multimedia-Programmierung 3
G 2 dim. Pixel Array in AWT? Spiele- und Multimedia-Programmierung 7
P selectedItem aus einem Methodenerstellten JPanel auslesen. Spiele- und Multimedia-Programmierung 5
windl MP3-Tags von einem Inputstream auslesen Spiele- und Multimedia-Programmierung 5
T Minecraft Bukkit Plugin Text Datei auslesen Spiele- und Multimedia-Programmierung 1
R LWJGL: OpenGL Fehler - weitere Informationen auslesen möglich? Spiele- und Multimedia-Programmierung 2
V BufferedImage[] aus anderer Classe auslesen Spiele- und Multimedia-Programmierung 2
F Plugin Spracheinstellungen und Auslesen von Strings Spiele- und Multimedia-Programmierung 7
P Bild Pixelweise auslesen Spiele- und Multimedia-Programmierung 13
gsch Videotürsprechanlage Daten auslesen Spiele- und Multimedia-Programmierung 1
P MP3 Lied länge auslesen mit JMF Spiele- und Multimedia-Programmierung 3
P Verzeichnis auslesen - Dateien werden zu oft gespeichert Spiele- und Multimedia-Programmierung 6
A Minesweeper: Koordinaten auslesen Spiele- und Multimedia-Programmierung 3
A Wie kann ich die Dateigröße aus einem tiff auslesen? Spiele- und Multimedia-Programmierung 2
T Maximalen aktuellen x,y und z- wert auslesen Spiele- und Multimedia-Programmierung 4
J Positionen von JComponents aus GUI auslesen Spiele- und Multimedia-Programmierung 6
F Position eines Objektes auslesen. Spiele- und Multimedia-Programmierung 7
turing OpenGL / Jogle Code Reveiw zur Performance Verbesserung Spiele- und Multimedia-Programmierung 1
M [JOGLE] Fadenkreuz in der Mitte des Bildschirms Spiele- und Multimedia-Programmierung 1

Ähnliche Java Themen

Neue Themen


Oben