Einzelnen Beitrag anzeigen

BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#13

AW: OpenGL trotz DoubleBuffer direkt...

  Alt 16. Nov 2014, 22:54
So, habe mal etwas mit den Funktionen zur Selektion rumgespielt. Allerdings muss ich sagen, dass meine selbstgeschriebene Funktion da wesentlich effektiver (und schneller) ist. Damit die vorgestellten Funktionen funktionieren muss ich jeder einzelnen Linie einen Namen geben. Dann muss ich für die Selektion die ganze Szene neu renderen...

Beim meiner Methode rechne ich einfach jede Linie mit gluProject in Bildschirmkoordinaten um. Dann prüfe ich, wie weit mein Punkt (X, Y) im 2D-Raum von der Linie entfernt ist. Alles was größer als meine erlaubte MaxDistance ist wird verworfen. Befindet sich mein Punkt außerhalb eines Rechtecks um die Linie (ebenfalls um max. Distance vergrößert) dann rechne ich schon gar nicht und verwerfe die Linie sofort. Der einzige Haken dabei ist, dass ich momentan auch verdeckte Linien selektieren kann...

Über mein eigentliches Problem - das Zeichnen eines Selektionsrahmens bzw. das hervorheben von Elementen - habe ich auch nochmal nachgedacht. Das Ganze wäre recht einfach, wenn man Zugriff auf die Hintergrundpuffer hätte und diese kombiniert in den Vordergrund stellen könnte. In einem Puffer befindet sich dann die bereits gerenderte Ansicht. In einem zweiten Puffer könnte man dann irgendwas zeichnen. Das ganze kombiniert sollte man dann in den Vordergrundpuffer übertragen können. Leider gibt es ja immer nur SwapBuffer und nicht irgendwie DrawBuffer oder so... Verflixt. Das Ganze macht mich noch kirre...

Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat