Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Jul 08, 2025 15:52

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glReadPixels
BeitragVerfasst: Mi Sep 12, 2007 14:57 
Offline
DGL Member

Registriert: Di Sep 04, 2007 14:49
Beiträge: 14
Hallo Allerseits.


Ich möchte mit glReadPixels die Farbe eines Pixels ermitteln bzw. wissen, ob dieser NICHT schwarz ist.

Code:
  1. glReadPixels(1,1,1,1, format: TGLenum, gl_float ,@result);


müsste das heißen, wobei ich nicht weiß, welches "format" und "typ" ich angeben soll, um eine solche Überprüfung durchzuziehen.
Und jetzt kommt noch n richtig dummer Zusatz. Wenn ich mein result habe, wie geh ich damit um, woher weiß ich, ob die Farbe des Pixels schwarz ist?


http://wiki.delphigl.com/index.php/glReadPixel


// Edit Lossy: Code durch Pascaltag ersetzt


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 12, 2007 15:30 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Der richtige Artikel ist glReadPixels. Bei dir hat das s gefehlt.

Aber zu Erklärung. Die beiden spannenden Parameter sind Format und Type. In Format ist normal enthalten welche Komponenten enthalten bzw ausgelesen werden sollen. In deinem Falle müsstest dort also GL_RGBA stehen, da du den Framebuffer auslesen möchtest. Möchtest du den Tiefenbuffer auslesen so müsste dort GL_DEPTH_COMPONENT stehen. Und in Type ist enthalten welches Format die Komponenten haben sollen. Das übliche für den Framebuffer ist GL_UNSIGNED_BYTE. Werte im Bereich eines Bytes ohne Vorzeichen. Also 0-255.

Und als Result musst du dann einen entsprechenden Typen benutzten. Das einfachste wäre in diesem Falle ein Array [0..3] of byte;

Also müsste dein Arufruf wie folgt aussehen.
Code:
  1. var
  2.   Res: Array [0..3] of byte;
  3. begin
  4.   glReadPixels(1, 1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, @Res[0]);


Der Inhalt des Arrays sollte dann wie folgt aussehen.
Res[0] = Rot
Res[1] = Grün
Res[2] = Blau
Res[3] = Alpha

Dafür möchte ich aber gerade meine Hand nichts ins Feuer legen. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 12, 2007 18:17 
Offline
DGL Member

Registriert: Di Sep 04, 2007 14:49
Beiträge: 14
Danke sehr, klappt!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.014s | 15 Queries | GZIP : On ]