Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:05

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Mär 13, 2005 11:31 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 21, 2003 17:36
Beiträge: 141
Hi,
Ich habe folgendes Problem:

Ich rendere ein Terrain auf dem verschiedene Objekte stehen. Diese will ich mit einem Selektionsrahmen auswählen. Das funktioniert soweit auch ganz gut, allerdings will ich, dass, wenn die Objekte durch das Terrain verdeckt werden, das auch bei der Selektion berücksichtigt wird. Das Problem liegt jetzt allerdings dabei, dass die Selektion nicht funktioniert, wenn das Objekt im Selektionsrahmen halb verdeckt ist (Beispiel: Screenshot), weil ja der niedrigste Z-Wert des Terrains dann immer kleiner ist als der des Objekts. Gibts da irgendeine Möglichkeit, das leicht und elegant zu umgehen?


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 13, 2005 11:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 16, 2003 15:20
Beiträge: 198
Ich würde das mit einem NV_Occlusion_Query (s.Tutorial auf dieser Seite) machen, damit überprüfts du einfach, wie viele Pixel des Objekts in dem Auswahlrahmen sichtbar sind. Dann könntest du auch überlegen, Objekte von denen nur 1 Pixel sichtbar ist nicht auszuwählen (der User bemerkt den Pixel vermutlich nicht und würde irritiert werden).
mfG
Tomok
P.S: Netter Screenshot

_________________
Bevor du definierst, was etwas ist, versichere dich seiner Existenz.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 13, 2005 12:26 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich denke dass Problem tritt später auch mit völlig verdeckten Einheiten auf, die t.B. hinter diesem Turm stehen könnten. Dann würde diese Lösung nichts nutzen.

Ne Möglichkeit wäre die Namensvergabe in bestimmte Bahnen zu lenken. z.B.

Namen von 1..100 für Gebäude
Namen von 101..1000 für Einheiten
Namen von 1001..10000 für die Oberfläche(oder was auch immer)

Da dir alle Ergebnisse des Selection zurückgelifert werden kannst du die Ergebnisse nach bestimmten kriterien sortieren. z.B.

Ignoriere immer den Boden,
Wähle bevorzugt Gebäude,
etc.

Durch die Einteilung der OpenGL Namen sollte das leicht Möglich sein.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 13, 2005 12:39 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 21, 2003 17:36
Beiträge: 141
@Tomok - Auf die Idee bin ich auch schon gekommen, mit Occlusion Queries und Scissor Test, aber ich wollte sicherheitshalber noch nach einer eleganteren Lösung fragen ;)
Tomok hat geschrieben:
P.S: Netter Screenshot

Danke :)

@Flash - wenn ich das richtig verstanden hab, dann liegt darin nicht das Problem. Ich vergebe bereits dem Terrain den Namen "0" und den anderen Objekten fortlaufende Nummern, aber ich möchte verhindern, dass, wenn der Benutzer flach auf die Landschaft schaut, einen Rahmen zieht um ein Gebäude auszuwählen, auch welche auswählt, die eigentlich gar nicht zu sehen sind, weil sie vom Boden verdeckt werden (z.B. hinter einem Berg).

Ich werd mal den Occlusion Test ausprobieren.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 16, 2009 10:51 
Offline
DGL Member

Registriert: Mo Mär 16, 2009 10:22
Beiträge: 26
Ich weiß ja nicht, wie dein Programm so aufgebau ist.. aber kannst du nicht einfach bei dem rendern für die Selection dein Terrain nicht mitrendern?
Oder nur nicht mitrendern, wenn der Bediener ein Auswahl-Rahmen zieht?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]