Discussion:
stimmt das so?
(zu alt für eine Antwort)
robert
2003-11-10 14:04:31 UTC
Permalink
die drei ergebnisse der drei tranformations modi sind folgende:


left:

translation entlang der weltkoordinaten,
rotation mit pivotpoint im ursprung,
scherung mit fixed point im ursprung



right:

translation im lokalen koordinatensystem,
rotation mit pivot point im objekt center
skalierung mit fixed point im objekt center



leftTranslate:

translation entlang der Weltkoordinaten,
rotation mit fixedpoint im objekt center
skalierung mit fixed point im objekt center
Michael Wimmer
2003-11-10 16:22:56 UTC
Permalink
Post by robert
translation entlang der weltkoordinaten,
rotation mit pivotpoint im ursprung,
scherung mit fixed point im ursprung
-> und um die Weltkoordinatenachsen (rotation und scherung)
Post by robert
translation im lokalen koordinatensystem,
rotation mit pivot point im objekt center
skalierung mit fixed point im objekt center
-> und um die lokalen Achsen (rotation und scherung)
Post by robert
translation entlang der Weltkoordinaten,
rotation mit fixedpoint im objekt center
skalierung mit fixed point im objekt center
-> und um die Weltkoordinatenachsen (rotation und scherung)

Michael Wimmer

-- Dr. Michael Wimmer--------------------------------------------------------
Institut fuer Computergraphik und Algorithmen tel: +43 (1) 58801 18687
Technische Universitaet Wien fax: +43 (1) 58801 18698
Favoritenstr. 9-11/5/E186 http://www.cg.tuwien.ac.at
A-1040 Wien, Oesterreich mailto:***@cg.tuwien.ac.at
-----------------------------------------------------------------------------
Martin Groedl
2003-11-13 09:27:54 UTC
Permalink
wie kann man sich die auswirkungen der translation bei den verschiedenen
transformationsarten erklären?

bei rotation und skalierung ist es ja ziemlich einleuchtend:
die komplette transformationsmatrix M (enthält model, view,
projektions-transformationen) wird von rechts mit jedem vertex
multipliziert, also vertex_transformiert = M * vertex;

wenn ich jetzt bei der modelling-transformation eine rotation/skalierung
von rechts zu M dazumultipliziere dann wirkt sich diese als erstes auf
die vertices aus, deshalb wird lokal gedreht/skaliert (objekt befindet
sich sicher noch im ursprung).
nehme ich aber die linksmultiplikation so werden rotation/skalierung
tatsächlich als letztes auf die vertices angewendet, d.h das objekt
befindet sich nicht unbedingt mehr im ursprung. rotiert/skaliert wird
aber mit ursprung als referenz-punkt.

wie kann ich mir das bei einer translation vorstellen und wie
funktioniert die dritte transformations-methode leftTranslate?

mfg,
martin
Post by Michael Wimmer
Post by robert
translation entlang der weltkoordinaten,
rotation mit pivotpoint im ursprung,
scherung mit fixed point im ursprung
-> und um die Weltkoordinatenachsen (rotation und scherung)
Post by robert
translation im lokalen koordinatensystem,
rotation mit pivot point im objekt center
skalierung mit fixed point im objekt center
-> und um die lokalen Achsen (rotation und scherung)
Post by robert
translation entlang der Weltkoordinaten,
rotation mit fixedpoint im objekt center
skalierung mit fixed point im objekt center
-> und um die Weltkoordinatenachsen (rotation und scherung)
Michael Wimmer
-- Dr. Michael Wimmer--------------------------------------------------------
Institut fuer Computergraphik und Algorithmen tel: +43 (1) 58801 18687
Technische Universitaet Wien fax: +43 (1) 58801 18698
Favoritenstr. 9-11/5/E186 http://www.cg.tuwien.ac.at
-----------------------------------------------------------------------------
Chris Chiu
2003-11-13 10:13:40 UTC
Permalink
Post by Martin Groedl
die komplette transformationsmatrix M (enthält model, view,
projektions-transformationen) wird von rechts mit jedem vertex
multipliziert, also vertex_transformiert = M * vertex;
wenn ich jetzt bei der modelling-transformation eine rotation/skalierung
von rechts zu M dazumultipliziere dann wirkt sich diese als erstes auf
die vertices aus, deshalb wird lokal gedreht/skaliert (objekt befindet
sich sicher noch im ursprung).
nehme ich aber die linksmultiplikation so werden rotation/skalierung
tatsächlich als letztes auf die vertices angewendet, d.h das objekt
befindet sich nicht unbedingt mehr im ursprung. rotiert/skaliert wird
aber mit ursprung als referenz-punkt.
wie kann ich mir das bei einer translation vorstellen und wie
funktioniert die dritte transformations-methode leftTranslate?
Bei der Translation ist es genauso... im Prinzip kommt es nur auf die
"Vorstellung" an (wie im OpenGL Red Book beschrieben). Ich tu mir am
leichtesten, wenn ich mir die Modellingtransformation als "in umgekehrter
Reihenfolge als wie es auf den Vertex wirkt" vorstelle, die umgekehrte
Variante wäre "sich vorstellen, man transformiert ein Koordinatensystem",
funktioniert aber auch.

Nehmen wir T als Translationsmatrix, und M als irgendeine beliebige andere
(sagen wir mal Modelling-Transformation, also Rotieren, Translieren, Scalen
usw.):

T * M * vertex

führt zuerst M auf den Vertex aus, dann T.

M * T * vertex

führt zuerst T auf den Vertex aus, dann M.

Beim LEFTTRANSLATE Modus soll einfach nur vor der Transformation das Objekt
auf den Ursprung transliert werden, dann die Operation darauf
linksmultipliziert, dann darauf wieder die Translation rückgängig gemacht
werden.

Also, wenn M die Transformation ist, die man ausführen soll (z.B. Scaling),
und T die Translation in den Ursprung (also um -X, -Y, -Z, wenn X, Y, Z die
Objekt-Position ist... überleg dir, welche Elemente der aktuellen
Transformationsmatrix das sind), und T^-1 die Translation zurück vom
Ursprung (also um X, Y, Z), dann sollte die Matrix im LEFTTRANSLATE Modus so
aussehen:

T^-1 * M * T * aktuelleMatrix

Ciao,
Christoph
***@cg.tuwien.ac.at
Michael Wimmer
2003-11-13 12:22:13 UTC
Permalink
Post by Martin Groedl
wie kann ich mir das bei einer translation vorstellen und wie
funktioniert die dritte transformations-methode leftTranslate?
Siehe dazu auch das Post "stimmt das so?"

Michael Wimmer

-- Dr. Michael Wimmer--------------------------------------------------------
Institut fuer Computergraphik und Algorithmen tel: +43 (1) 58801 18687
Technische Universitaet Wien fax: +43 (1) 58801 18698
Favoritenstr. 9-11/5/E186 http://www.cg.tuwien.ac.at
A-1040 Wien, Oesterreich mailto:***@cg.tuwien.ac.at
-----------------------------------------------------------------------------
Loading...