I've been working on a 6DOF camera that I want to be able to "align" to any walls orientation to make it feel like I'm standing on that wall.
I'm thinking it's a simple matter of finding the right amount needed between the current cameras rotation and the ground orientation and apply the difference in roll, but I'm terrible at vector math. Any help?
I use C# XNA Quaternion/Matrix/Vector3, but any pesudo math can do as thats what I'm struggling with.
Edit: I would also like this to work on spheres & cylinders, so I'd also need a way calculate the difference in pitch from changing from one vector to avoid making the camera feel like it looking upward if walking a step forward on top of a sphere for example.