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

Aktuelle Zeit: Fr Jul 11, 2025 02:40

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Jun 30, 2006 11:10 
Offline
DGL Member

Registriert: Do Jun 29, 2006 16:12
Beiträge: 3
Ich weiß das diesbezügliche Probleme schon öfters mal behandelt wurden (Suche) aber ich kriege es einfach nicht hin. Folgenden kleinen Code habe ich nahezu aus dem Wiki überrnommen.

Code:
  1. procedure TGLForm.FormDblClick(Sender: TObject);
  2. var
  3. viewport  : TGLVectori4;
  4. modelview : TGLMatrixd4;
  5. projection: TGLMatrixd4;
  6. Z         : GLdouble;
  7. Y_new     : Integer;
  8. Vertex:TGLVectord3;
  9. begin
  10. glGetDoublev(GL_MODELVIEW_MATRIX, @modelview );
  11. glGetDoublev(GL_PROJECTION_MATRIX, @projection );
  12. glGetIntegerv(GL_VIEWPORT, @viewport );
  13. Y_new := viewport[3] - my;
  14. glReadPixels(mX, Y_new, 1, 1, GL_DEPTH_COMPONENT, GL_Float, @Z );
  15. gluUnProject(mX, Y_new, Z,modelview, projection, viewport,@Vertex[0],@Vertex[1],@Vertex[2]) ;
  16. statictext1.Caption:=currtostr(Vertex[0]);
  17. statictext2.Caption:=currtostr(Vertex[1]);
  18. statictext3.Caption:=currtostr(Vertex[2]);
  19. statictext4.Caption:=inttostr(mx);
  20. statictext5.Caption:=inttostr(my);
  21. statictext6.Caption:=currtostr(Z);
  22. end;


Dabei kommen immer völlig unsinnige und scheinbar zufällige Werte heraus. Soll heißen selbst mit gleicher Cursorpostion und ohne irgendwelche Änderungen verschiedne Ergebnisse. Übrignes bleibt Z bei mir immer 0. Vielleicht liegt das Problem also bei glreadpixels? :?: Wäre für Hilfe dankbar.
Vallani


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 30, 2006 11:24 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also, ohne zu wissen ob es hilft, aber du ließt mit ReadPixel ein GLfloat aus und legst es in einer GLdouble ab. ... Das könnte schon mal irgendwie seltsam werden. Sollte aber nicht 0 werden.
EDIT: Hab gerade gesehn, dass das normal ist. Daran sollte es also wirklich nicht liegen.

Eventuell ist der Fehler im Code ringsrum...

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 30, 2006 12:15 
Offline
DGL Member

Registriert: Do Jun 29, 2006 16:12
Beiträge: 3
Fehler im Code ringsrum könnten (soweit ich das jetzt überblicke) nur in mx und my vorliegen und deren Werte sehen eigentlich vernünftig aus hier sind die entsprechenden Zeilen:
Code:
  1.  procedure TGLForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  2. Y: Integer);
  3. begin
  4. MX:=X;
  5. MY:=Y;
  6. end;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 30, 2006 14:34 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nun... es muss z.B. sichergestellt sein, dass der Viewport und die Projectionsmatrix unverändert sind bezüglich des Zeitpunkt wo gezeichnet wurden.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jun 30, 2006 23:14 
Offline
DGL Member

Registriert: Do Jun 29, 2006 16:12
Beiträge: 3
Das ist sichergestellt da ich beides gar nicht ändere. Kannst den kleinen Code so wie er bei mir steht vielleicht mal ausprobieren, wenns nicht so viel Mühe macht? Wenns bei dir funzt woran kann es dann liegen? An der Intialisierung von Opengl oder vielleicht an irgendwelchen Eigenschaften der Form? :(


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 » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 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.008s | 14 Queries | GZIP : On ]