| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.159
| HPB in XYZ-Rotation oder 3D-Matrix umwandeln?!
Hallo zusammen! Ich stehe gerade vor der Aufgabe, in Cinema4D gerenderte Inhalte mit Script generiertem 3D zu synchronisieren. Dafür ist es wichtig die genauen Transformationen von Kamera und Objekt sowie die Perspektive mit Matrix3D und PerspectivProjection nachzubauen. Translation und Skalierung sind ja kein allzu großes Problem, aber bei der Rotation gibt es Probleme, weil es hier auf die Reihenfolge der Rotationswinkel ankommt. Cinema4D arbeitet (laut diesem Artikel) in einem System (HPB), dass reihenfolgenunabhängig funktioniert und mit den Werten Heading, Pitch und Bank arbeitet. Wie kann man diese HPB-Rotationswerte in XYZ bzw. eine 3D-Matrix umrechnen? Ich wäre für alle Tipps oder Links dankbar, würde mich aber noch mehr freuen, wenn jemand eine fertige Funktion hätte?!
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 548
|
Es ist definitiv reihenfolgenabhängig, aber da C4D eine feste Reihenfolge vorgibt, sich die absoluten Werte merkt und jedesmal von der Einheitsmatrix aus anwendet, spielt es für den User keine Rolle in welcher Reihenfolge er die Werte eintippt. Dafür kann es aber passieren dass zwei Achsen zusammenfallen (Gimbal-Lock): 90 Grad Pitch lässt z.B. Heading und Bank zusammenfallen. Nur dank Gizmo kann man eine Figur dann noch intuitiv um die eigene Hochachse drehen, wodurch aber alle HPB-Werte komplett neu berechnet werden. So weit ich erkennen kann dreht C4D folgendermaßen: zuerst Heading um die Y-Achse, dann Pitch um die neue X-Achse, dann Bank um die neue Z-Achse. In PV (dort ist der Drehsinn der Winkel umgekehrt) hieße das also: mymodel.yaw(-H); mymodel.pitch(-P); mymodel.roll(-B); P.S.: da du nach einer Matrix gefragt hast, die liegt dann in der Eigenschaft mymodel.transform (DisplayObject3D). Kannst auch mal nach den settern für localRotationX usw. schauen, kann sein dass man die Winkel damit absolut setzen kann (obiges Beispiel geht immer von einem ungedrehten Objekt mit Einheitsmatrix aus), aber ich habe nicht ausprobiert wie sich das auf die Reihenfolge auswirkt. Geändert von joeydee (29-09-2010 um 07:29 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| pdf umwandeln in xls oder doc | asyoulikeit | Am Rande | 7 | 12-03-2010 09:32 |
| 3D-Rotation mit Matrix | marcodeneu | Softwarearchitektur und Entwurfsmuster | 3 | 10-09-2004 18:12 |
| *.dcx umwandeln in wav oder mp3 | Hans meisa | Am Rande | 3 | 17-05-2003 17:37 |
| MAtrix? ODer wat is das? :) Naja.. _TextEffect | DoppelX | ActionScript 1 | 5 | 05-08-2002 16:59 |