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

Aktuelle Zeit: Mi Jul 09, 2025 21:27

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Objektselektion...und drehendes CS
BeitragVerfasst: Mo Jul 10, 2006 11:42 
Offline
DGL Member

Registriert: So Apr 16, 2006 18:11
Beiträge: 27
Hallo Community,

bin auch mal wieder hier und habe Probleme mit dem Selektieren...ich hoffe einer von euch kann mir helfen.

Ich habe das Tutorial Objektselektion durchgearbeitet und in mein Programm (FatView--> CAD_Template) übernommen. Wenn ich mit der Maus auf ein Quad oder Dreieck klicke bekomme ich auch den zugewiesenen Namen angezeigt. Aber das Problem liegt mal wieder am Koordinatensystem. Da ja immer die nahste Z-Koordinate ausgewählt wird, ist es natürlich blöd, wenn das KS verdreht ist. Das soll heißen, die Z-Koordinate muss immer vom Blickwinkel des Anwenders in die Tiefe laufen. Es sollen also immer die Elemente selektiert werden, die unter dem Mauscursor der Bildschirmfläche am nächsten liegen.

Ich finde da momentan keinen Ansatz. Man müßte immer ein standard Koordinatensystem mit der Bildschirmebene xy und z in der Tiefe zur Verfügung haben, auf die sich alle Selektionen beziehen egal wie das Modell gerade gedreht ist...wie geht man da ran??

Für Hilfe wäre ich sehr dankbar.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 10, 2006 13:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
So wie es scheint hast du da etwas verdreht oder es wurde ein wenig verwirrend geschrieben. Es wird nicht die nähste Z Koordinate ausgewählt. Eigentlich ist damit die nähste Tiefe gemeint. Auch wenn als Variablenname da wohl Z drinne steht. Oder weil von Z spricht obwohl man die Tiefen meint und in diesem Falle es gerade mal passt.

Die Selektion ist nichts anderes als ein normales Rendern. Allerdings wird dieses mal nur 1 Pixel betrachtet und das Ergebniss nicht auf dem Bild sondern in einen extra dafür vorgesehen Speicherbereich geschrieben. In diesem Speicherbereich werden die Tiefe und die Namen eines Objektes abgelegt. Dabei spielt es keine Rolle wie es rotiert wurde. Du bekommst immer das was der Kamera am nähsten ist.

Wobei das nähste Objekt auch nur von unserem Code rausgesucht wird. Du könntest auch einmal alle getroffenen Objekte zurückgeben. Aber das ist ein anderes Thema. ;-)

Somit macht die Selektion also schon genau das was du haben willst. Du musst beim Selektieren aber auch entsprechend so rotieren, wie beim Rendern. Wollte das nur noch mal erwähnt haben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 10, 2006 13:27 
Offline
DGL Member

Registriert: So Apr 16, 2006 18:11
Beiträge: 27
...dein letzter Satz hat glaube ich das Problem richtig beschrieben. Da ich eine neue Projektionsmatrix erstelle, muss diese genau so gedreht werden wie die Rendermatrix...wen ich das richtig verstanden habe...das ist auf jeden Fall ein Ansatzt und machbar.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 10, 2006 13:41 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Der Punkt ist beim Selektieren renderst du ja. Es wird nur nicht dargestellt sondern nur in interne Buffer geschrieben. Aber es ist genau so ein Rendern wie im RenderModus. Und wenn du das Bild so selektieren möchtest wie du es dargestellt hast muss alles genau gleich sein. Zu mindest Rotation, Skalierung etc. Texturen Farben etc werden ignoriert.

Es macht eher weniger Sinn bei der Selektion etwas anders zu machen als beim Rendern. Aber das hatte ich auch schon. Sind dann aber nur Anpassungen um das Selektieren einfacher zu gestalten. Also Pseudoobjekte um ein Objekt besser selektieren zu können. Aber die Matrix war dennoch immer die Selbe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 10, 2006 13:45 
Offline
DGL Member

Registriert: So Apr 16, 2006 18:11
Beiträge: 27
..danke für den Hinweis..ich denke, das werde ich hinbekommen. Man muss das eben erst mal richtig verstehen :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 10, 2006 13:49 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ja das ist das Hauptproblem an der Selektion. Daran scheitert es am Meisten. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 10, 2006 13:51 
Offline
DGL Member

Registriert: So Apr 16, 2006 18:11
Beiträge: 27
Juhuuu...es klappt. Ich habe die Rotationen, Verschiebungen und scale mit in die Routine genommen und es funktioniert so wie es soll.

Besten Dank noch mal...


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]