Rollbewegung

hallo

wuerde gerne ein objekt in 4 richtungen auf einer ebene rollen lassen. (up, down, left, right)
wenn das objekt rollt, soll es um seine obj-achse rotieren, wie es bei einer rollbewegung ueblich ist.

folgendes problem:
die achsen rotieren mit dem obj zusammen und muessen daher nach einer rotation wieder parallel zur ebene, auf der das obj rollt, gesetzt werden.

im beispielpatch “test_rot” sieht man, wie das obj zwar korrekt um die y-achse rotiert, danach aber nicht mehr korrekt um die x-achse.

Falls jemand ne idee zu dem problem hat …

danke

you could try to modify the object axis rotation used in kiilo - FlyingCamera … ?

the behaviour you describe sounds like a well known problem with the concept of rotating objects around three different axis (“euler angles”) its more like a mathematical/conceptual problem

googling for “gimbal lock” returned the following article which explaines the problem quite nicely… see http://www.anticz.com/eularqua.htm they write Gimbal lock is frustrating problem that every CG artist will face sometime in their career and it always happens at the worst possible time and have a little animated gif showing the problem.

tonfilm has written some excellent articles about Quaternions here in the wiki.
this other article goes more in the math: http://www.gamedev.net/reference/articles/article1095.asp

basically it boils down that we have to think about a simple solution for all those without mathematical background some time…

thanks for your replies.
but i think my explanation of the problem was not quite good.
so i’m going to try it again.

but in german :-) :

(es ist meiner meinung nach kein gimbal lock problem.)

nocheinmal zur problemstellung:
wenn ich z.b. eine reale kugel auf einer realen faeche bewegen will, rotiert die kugel um starre achsen auf der flaeche(-> genau das will ich) und bewegt sich in die richtung orthogonal zu dieser achse.

wenn ich eine kugel in vvvv rotieren lasse, rotieren die obj.-achsen der kugel mit.
dadurch rotiert die kugel, wenn sie sich z.b. in eine richtung a um 180° gedreht hat, danach in die dazu orthogonale richtung ( falsch herum), da sich die obj.-achse, um die sie dann rotiert ebenfalls um 180° gedreht hat.

ich hoffe, dass ich nun etwas verstaendlicher umschrieben habe, wo mein problem liegt.

Please check out “Roll (Transform)” on my User Page (Link).
It should solve the problem I think.

Cheers,
Sven