Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Zitat:
Die Selection funktioniert net. Des ausgewählte Feld ist immer zu weit rechts.
Kannst du des genauer spezifizieren?
Wenn ich raten dürfte, dann nähme ich mal an, das du meinst, das ein bisschen rechts von der eigentlichen Mausposition die Selektionausgelöst wird. Für diesen Fall wäre die Lösung einfach, du hast wahrscheinlich bei
Code:
gluPerspective(90.0,800/600,1,8192);
verschiedene Werte (das 800/600 muss überall gleich sein, die anderen Werte sind (fast) wurscht) in Selektion und Rendering. Probiers mal aus und gib Bescheid
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich kapere hier mal den Thread. Bei mir geht die selektion auch nicht. Folgende Infos kann ich zur verfügung stellen.
1. Der Inhalt des SelectionPuffers:
Code:
Puffer[4*i] = 1; (immer)
Puffer[(4*i)+1] = 4060283773; (immer)
Puffer[(4*i)+2] = 4060416353; (immer)
Puffer[(4*i)+3] = i+1;
Ich schreibe gerade einen HexMap Editor. Das tolle ist, selbst wenn ich auf ein Hexfeld klicke (ich guck direkt von oben auf die Karte) bekomme ich 23 Treffer zurückgeliefert. Lustig daran ist, dass die karte keinen doppelten Boden besitzt. Die Hexfelder haben eine Kantenlänge von 2OGLEinheiten und das Pickfenster hat eine Breite von 1 wie ihr gleich sehen werdet:
Meine Selectionfunktion: (1zu1 aus dem Tut von DCW_Mr_T)
Code:
function TForm1.Selection(x,y : double) : integer;
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Noch keine Idee!? Hmmm...was könnt ich noch sagen... Die Selektion liefert mir immer "1" zurück. Nicht 0 und auch nicht -1. D.h. es liegt etwas auf dem Namestack und es wird auch etwas getroffen. Nur hab ich auf das Feld mit dem OpenGL-Namen "1" nicht geklickt. Der leigt ein gutes stück weit entfernt.
Habt ihr jetzt ne Idee?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Mensch Leute...sagts ruhig wenn euch das zu Primitiv war...Ich habs rausgegrigt...man sollte das auch unbedingt mit ins Tutorial schreiben.
Was? Na folgendes:
Nachdem innerhalb der Slection-Routine in den Rendermodus "Select" gewechselt wurde und die Perspective initialisiert und gesetzt wurde darf innerhalb der eigentlichen renderprocedure nicht nocheinmal glLoadIdentity aufgerufen werden.
Bei mir hieß das konkret: Abhängig von glGet(GL_RENDER_MODE) wird der Block ab glMatrixMode bis gluPerspective(...) einfach übersprungen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.