Registriert: So Okt 21, 2007 14:16 Beiträge: 123
Programmiersprache: Delphi
Hallo,
ich hab grad ein ganz doofes Problem: Ich habe ein in verschiedene Viewports unterteiltes Fenster (1 perspektiv, 3 orthogonal). Jetzt will ich im perspektivischen Fenster Selektion reallisieren. Es funktioniert auch, aber nur, wenn man ganz nah am Quader oder innen drin ist! Hat jemand eine Idee, woran das liegen könnte?
Meine Source für das Rendern (Width=5, Height=5, Depth=10):
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ist der Code oben die FWorld.Render? Wenn ja, dann solltest du das Setzen der Perspektive auslagern oder deaktivieren können. Denn während der Selektion setzt du die PickMatrix und anschließend die normale Perspektive. In der FWorld.Render überschreibst du aber die Projektion vollständig. Das darfst du nicht tun. Während dem Zeichnen muss die gesetzte Projektion erhalten bleiben.
PS: Abgesehen davon sollte heutzutage eher eine Farbselektion gemacht werden. Denn die klassische Selektion ist nicht mehr zeitgemäß. Und auch weil die Selektion einfach zu empfindlich ist. Siehe dein Problem.
Registriert: So Okt 21, 2007 14:16 Beiträge: 123
Programmiersprache: Delphi
Hallo,
das hier passiert, wenn man zu viel wegkürzt . Ich habs mal entsprechend geändert. Zur Farbselektion: Kommen die Farben denn auch 100%ig so an, wie man sie einspeist (also ob der beispielsweise zwischen 0,0039 (1/255) und 0,0078 (2/255) unterscheidet)? Is wahrscheinlich ne doofe Frage, aber ich würds schon gern wissen.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ich mach in meinen aktuellen Sachen auch nur noch Farbselektion (da die alte Selektion z.b mit NVidia-Treibern nach Rel-90 extrem langsam ist), und ja, die Farben kommen unter Verwendung eines 32-Bit Farbpuffers beim Auslesen so zurück wie man sie setzt. Kleinere Probleme (je nach Szenario) bekommt man jedoch evtl. mit aktivierter Kantenglättung, da dann naturgemäß an den Objektkanten leicht abgeänderte Farbwerte vorliegen. Hier sollte man dann die Abstände zwischen zwei Selektionsfarben etwas erhöhen und eine Toleranzgrenze einbauen.
P.S. : Man kann auch direkt Bytewerte für die Farbe übergeben, mit glColor3b z.B.
Mitglieder in diesem Forum: Majestic-12 [Bot] und 5 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.