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

Aktuelle Zeit: Fr Jul 18, 2025 00:05

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Pixelfarben aus Buffer auslesen
BeitragVerfasst: Sa Jan 05, 2008 17:48 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Okt 07, 2006 16:27
Beiträge: 52
Wohnort: Marbach(bei Chemnitz)
Hallo,

für ein Programm brauche ich den Rot-Wert eines bestimmten Punktes.
Momentan lese ich diesen folgendermaßen aus:
Code:
  1. glReadPixels(Maus.CursorPos.x-1, Maus.CursorPos.Y-1, Maus.CursorPos.x+1, Maus.CursorPos.Y+1, GL_red, GL_float, temp);
  2.  

temp ist ein array of double.
allerdings steht in diesem array, das der Rotwert etwa bei 2,9 * 10^-6 liegt.
er sollte bei 0,35... liegen. Zumindest habe ich opengl gesagt, das es so malen soll und es sieht auch so aus, als wäre das der Wert, was da dargestellt wird.
Außerdem muss der Array trotzdem so groß sein wie die anzahl der Pixel, sonst gbts ärger. Der schreibt da die 9 Werte rein, lässt 9 auf 0 und schreibt wieder 9 werte rein usw.
würde mich freuen, wenn mir jemand helfen könnte
danke im vorraus

_________________
Es gibt eine Theorie, die besagt, wenn jemals irgendwer genau rausfindet, wozu das Universum da ist und warum es da ist, dann verschwindet es auf der Stelle und wird durch etwas noch Bizarreres ersetzt.
Es gibt eine andere Theorie, die besagt, dass das schon passiert ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 05, 2008 18:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
So wie ich das sehe, überschreibst du den Pointer auf dein Array. Von daher zeigt der Pointer dann irgendwo wild in den Speicher.
Schreib mal statt temp @temp[0], damit hast du einen Pointer auf den ersten Arraywert und damit schreibt glReadPixels die Werte dann auch wirklich in das Array.

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 05, 2008 18:17 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Okt 07, 2006 16:27
Beiträge: 52
Wohnort: Marbach(bei Chemnitz)
hab ich probiert, selbes Resultat ...

_________________
Es gibt eine Theorie, die besagt, wenn jemals irgendwer genau rausfindet, wozu das Universum da ist und warum es da ist, dann verschwindet es auf der Stelle und wird durch etwas noch Bizarreres ersetzt.
Es gibt eine andere Theorie, die besagt, dass das schon passiert ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 05, 2008 18:43 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
glReadPixels erwartet als 3ten und 4ten Parameter die Breite und Höhe des Bereiches. Also wenn du 1 Pixel auslesen möchtest muss dort beide Male eine 1 stehen. X und Y geben dabei das erste auszulesende Pixel an.

Und GL_FLOAT ist KEIN Double sondern ein Single. Zur Vermeidung von Fehlern kannst/solltest du evtl die Typen aus der dglOpenGL verwenden (wenn du diese Unit verwendest). Also dann entsprechend ein TGLfloat.

Sonst kann ich WhiteHunter nur zustimmen. Die Funktion erwartet einen Pointer auf einen Speicherbereich. Da bitte überprüfen, dass das auch genau stimmt. Ansonsten wird es irgendwohin geschrieben. Falls sich die eigentlichen Daten im Debugger nicht verändern ist das ein eindeutiges Zeichen, dass da was nicht hingehauen hat und die Werte woanders hin geschrieben wurden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 05, 2008 18:51 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Okt 07, 2006 16:27
Beiträge: 52
Wohnort: Marbach(bei Chemnitz)
ok, es lag echt daran, das ich double statt single hatte.
danke für die hilfe

_________________
Es gibt eine Theorie, die besagt, wenn jemals irgendwer genau rausfindet, wozu das Universum da ist und warum es da ist, dann verschwindet es auf der Stelle und wird durch etwas noch Bizarreres ersetzt.
Es gibt eine andere Theorie, die besagt, dass das schon passiert ist.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]