Ich frage mich, ob es möglich ist, die Drehung eines Objekts nicht um sich selbst, sondern um einen beliebigen Ursprung zu definieren, wodurch die Notwendigkeit, XYZ-Positionsvektoren an die GPU zu übergeben, effektiv beseitigt wird. Anstatt also XYZ-Position + XYZW-Quaternion zu haben, konnten wir eine Quaternion vorberechnen, die allein die Position und Rotation des Objekts selbst bestimmen würde.Ist es möglich, ein Objekt mit Quaternionen um einen beliebigen Ursprung zu drehen?
Antwort
Es ist nicht möglich mit einer reinen Quaternion. Eine Quaternion hat nur vier Freiheitsgrade. Wenn Sie es für die Transformation verwenden, sind dies drei Grad für die Rotation und ein Grad für die Skalierung. Es gibt einfach nichts mehr, was eine Quaternion bieten kann.
Dual Quaternions können jedoch Übersetzungen (und damit auch Rotationen um beliebige Achsen) darstellen. Dies bringt die Kosten für vier weitere Nummern mit sich und ist normalerweise nicht die Mühe wert. Der Vorteil von dualen Quaternionen ist, dass Starrkörpertransformationen in einer konsolidierten Weise mit einem schönen algebraischen Hintergrund ausgedrückt werden können. Es wird normalerweise für Animationen verwendet, um konsistent zwischen mehreren Transformationen zu interpolieren.
In den meisten Fällen überwiegen die Vorteile von doppelten Quaternionen nicht ihre Komplexität. Daher ist die Verwendung eines einfachen Versatzvektors meistens vernünftiger.
Das Ziel war, die Anzahl der Vektoren zu reduzieren, die an die GPU in Anwendungen geschickt wurden, wo es eine große Menge von ihnen gibt, so dass doppelte Quaternionen den Zweck besiegen, über den ich nachdachte. Danke für die Klarstellungen. –
- 1. Wie wird ein Objekt mit Quaternionen um einen Punkt gedreht?
- 2. Ist es in HTML5-Canvas möglich, ein Objekt um ein rotierendes Objekt zu drehen?
- 3. fabricjs, Nach Objekt Drehen ist es möglich,
- 4. Ist es möglich, ein Symbol zu drehen UND zu spiegeln?
- 5. Ist es möglich, ein Diagramm in R (Basisgrafiken) zu drehen?
- 6. Ist es möglich, Bild mit XSL zu drehen und zu drehen?
- 7. Ein Objekt um eine Umlaufbahn drehen
- 8. Drehen Sie ein Objekt um ein rotierendes Objekt in JS
- 9. Matlab: Ist es möglich, die Farbleiste einer Figur zu drehen?
- 10. Drehen Osmdroid Karte um beliebigen Punkt
- 11. Ist es möglich, einen ValueType zu klonen?
- 12. Ist es möglich, Overlay über einen beliebigen Bildschirm mit Drittanbieter-App in Android TV zu zeichnen?
- 13. AS3 Ein Objekt um seinen Mittelpunkt drehen
- 14. Ist es möglich, ein Parse-Objekt aus JSON zu erstellen?
- 15. Ein div um einen Punkt drehen
- 16. Wie ist es möglich, ein konstant zurückgegebenes Objekt zu bewegen?
- 17. Ist es möglich, einen beliebigen Elementtyp zu JSX in React zu unterteilen?
- 18. Ist es möglich, einen Import zu aliasieren?
- 19. Ist es möglich, einen Gradienten zu zeichnen?
- 20. Ist es möglich, einen Wolkenbild zu visualisieren?
- 21. Drehen Objekt um Weltachse mit tween.js
- 22. Ist es möglich, einen Datenbanktransaktionsparameter zu verfälschen?
- 23. Ist es möglich, dynaTrace-Überwachungsdaten in einen beliebigen NoSQL-Speicher zu importieren oder zu synchronisieren?
- 24. Three.js Kamera um ein Objekt drehen (das sich bewegen kann)
- 25. Drehen Sie die Kamera um ein Objekt mit Three.js
- 26. Gibt es einen Trick, um Text in PDFKit zu drehen?
- 27. Drehen eines Punktes um den Ursprung in Leinwand
- 28. Ist es möglich, einen Funktionszeiger auf einen Konstruktor zu definieren?
- 29. Ist es möglich, einen Überblick über ein CTE zu bekommen?
- 30. Ist es möglich, einen Vorlagenalias zu erstellen?
@WestLangley, warum haben Sie die OpenGL und GLSL-Tags entfernt? –
Weil die Frage nicht zu diesen Themen gehört. – WestLangley
Ich bin überrascht und verwirrt. Wenn es nicht um GLSL oder OpenGL geht, warum geht es dann nicht mehr um three.js? –