Hallo zusammen,
ich weiß nicht wie es anders ausdrücken soll, daher der verwirrende Titel.
Also: Ich habe hier ein Objekt geschrieben, welches mir via
OpenGL Grafik ausgibt. Ich nutze dazu die dglOpenGL-
Unit. Bei dem Programm handelt es sich um eine Art CAD-System, welches 3D-Grafiken darstellt. Wenn ich nun mit der Maus über die Grafik fahre, dann möchte ich die Objekte in der Nähe des Mauszeigers markieren, wenn der Mauszeiger sich wieder entfernt die Markierung wieder entfernen. Das Funktioniert alles sehr gut, allerdings zeichne ich Momentan immer alles neu. Das ist bei mehreren hunderttausend Linien recht aufwändig. Auch möchte ich z.B. einen temporären Markierungsrahmen mit der Maus zeichnen können. Wenn ich nun an den Standard-Canvas von Delphi zurückdenke, dann habe ich solche Sachen eigentlich immer mit XOR gemacht (erstes Zeichnen darstellen, zweites Zeichnen wieder löschen). Dazu müsste ich aber direkt den Ausgabepuffer beschreiben. Normalerweise rendere ich ja in den Hintergrundpuffer und tausche dann mit "SwapBuffers" den Anzeige- und den Hintergrundpuffer aus. Mir fehlt da Momentan noch ein guter Ansatz wie man das Ganze in
OpenGL lösen könnte. Am liebsten hätte ich gerne ein ähnliches Verhalten wie z.B. in Sketchup. Mit klicken ein Teil markieren. Mit der Maus einen Rahmen ziehen und mehrere Teile markieren usw...
Hat irgendwer eine Idee? Ich nehme auch gerne irgendwelche Hinweise auf Litertur etc. entgegen. Leider sind 99.9% der
OpenGL-Beschreibungen auf Spieleprogrammierung und deren Eigenheiten ausgelegt.
Für alle Tipps schon mal Danke!
Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)