I’m trying to write an arcball which rotates around the window center (z=0). Unfortunatly I also want to be able to move my objects with this arcball; i.e. rotate, translate scale.
My problem is that I can’t figure out how to handle the rotation with the translation. Currently I’m doing this:
// Apply "arcball"-modifications to OpenGL. GL.Translate(windowCenterVector); GL.MultMatrix(ref rotationMatrix); GL.Scale(this.scale, this.scale, this.scale); GL.Translate(-windowCenterVector); GL.Translate(this.translation);
Unforunatly the last translation which applies the arcball offset is affected by the rotation. I tried to transform it with the inverse of the rotation matrix but so I changed the rotation center…
If someone might be able to explain this to me it would be great!
I created a sample-project with OpenTK so if someone want’s to checkout the full code: http://go4x.de/share/WindowsFormsApplication1.zip
Greetings - Thomas