Hallo Forum!
Nach längerer Pause beschäftige ich mich wieder mit OpenGL. Ich habe das Selection-Tut gelesen, habe aber immer noch Probleme. Dieses Problem ist zwar bereits in einigen Beiträgen behandelt worden, aber die dortigen Hinweise haben mir leider nicht weiter geholfen.
Vielleicht liegt es daran, dass ich jetzt schon recht lange immer und immer wieder denselben Quelltext lese und den Fehler immer wieder übersehe…
Wenn ich das Programm starte, bekomme ich immer die Meldung „Sie haben auf das Dreieck geklickt“. Stimmt aber nicht
Vielleicht ist ja jemand von euch so gnädig zum x-ten Male „dieses“ Problem zu lösen.
Etwas weiter bin ich gekommen...
Bei der unten beschriebenen Render-Prozedur wird alles wie gewollt gezeichnet. Allerdings bekomme ich in der StatusBar immer die Meldung:"Sie haben auch nichts geklickt!", was falsch ist.
Lasse ich Quelltextzeile 7 weg, wird zwar nichts gezeichnet, ich kann es aber anklicken! Die ungefähren Positionen der drei Objekte sind ja bekannt und ich kann sie ohne Zeile 7 tatsächlich anklicken...
...jetzt muss halt beides noch kombiniert werden
Ich hoffe mir kann dabei jemand helfen!
cu,
Michael
Code:
procedure TForm1.Render;
begin
glMatrixMode(GL_MODELVIEW);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);//Farb und Tiefenpuffer löschen
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Du hast das Problem schon richtig erkannt. Dadurch, dass du die Perspektive noch einmal setzt zerschießt du dir entweder das eine oder das andere. Du macht verschiedene Dinge die eigentlich gar nicht nötig wären. Schau dir mal den Code aus den Selection Beitrag im Wiki genau an. Das ist zwar 2D aber bis auf die Tatsache, dass die Befehle glOrtho und gluPerpective ausgetaucht wurden nichts anderes.
In der Renderprocedur sollte es vollkommen genügen, wenn du deine Modelviewmatrix zurücksetzt. Das setzen der Perspektive und somit das Löschen der Peojectionmatrix solltest du dort besser lassen. Das hast du außerdem ja auch schon in der Methode Selection getan. Außerdem solltest du das SwapBuffers so gestalten, dass du den RenderMode abfragst und nur bei nicht selection den Bild schwapst. Beim Selektion wird nichts gezeichnet sondern lediglich etwas in einen Feedbackbuffer geschrieben.
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.