0

I'm working on an OpenGL based project (in C#), employing Quaternions to rotate my camera I first tried to:

cameraOrientation = cameraOrientation * framePitch * frameYaw;

This accumulated an undesired roll in my cam-controller which made rotations unusable. I found a post on stack exchange which suggested this reordering of operations:

cameraOrientation = framePitch * cameraOrientation * frameYaw;

Which completely solved this accumulation of roll. While I'm comfortable with matrix multiplication, I can't seem to understand why this removes roll accumulation. Does anybody have any articles or images so I can grok what's happening here?

It feels weird not to understand such a fundamental operation in my project. Thanks!

Charly
  • 742
  • 3
  • 11

0 Answers0