ich steh grad um die Uhrzeit ein wenig auf dem Schlauch.. Für meine Objekte möchte ich gerne Transform Handles (z.B. zum verschieben auf einer Achse) wie in jedem gängigen 3D Editor einblenden.
Die sollen aber egal wie nah oder fern die Kamera ist immer gleich groß sein - wie mache ich das?
Theoretisch dachte ich grad spontan "Ja, einfach die nur die Rotation der Kamera bei der Matrix berücksichtigen", aber das kann ja nicht ganz stimmen..
Man kann auch einfach abhängig von der Entfernung zur Kamera skalieren. Ich denke da an die Pfeile bei Blender. Die haben ja einen Punkt von dem sie ausgehen. Und die Kameraposition ist auch bekannt. Also einfach die Länge der Differenz der beiden Punkte bestimmen, noch einen Faktor davor und damit die Pfeile skalieren => fertig.
Man kann auch einfach abhängig von der Entfernung zur Kamera skalieren. Ich denke da an die Pfeile bei Blender. Die haben ja einen Punkt von dem sie ausgehen. Und die Kameraposition ist auch bekannt. Also einfach die Länge der Differenz der beiden Punkte bestimmen, noch einen Faktor davor und damit die Pfeile skalieren => fertig.
So hatte ich es früher mal gemacht und soweit ich mich erinnere diese Lösung als sehr suboptimal in Erinnerung (weil u.A. die Gizmos/Anfasser nicht immer in der Bild Mitte sind, sondern auch mal am Rand sein können).
Mein aktueller Ansatz den ich geplant habe heute Abend zu testen geht in die Richtung, ich transformiere den Mittelpunkt des Gizmos nach 2D (á la gluProject) und nehme dann den punkt und transformiere ihn wieder (glUnproject) in einer festen ziefe zurück in den Raum - dadurch sollte der Gizmo egal wo er ist immer gleich groß sein. Hoffe ich zumindest
Aber falls jemand geschicktere Ideen hat, gerne her damit!
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.