I've implemented the code for the collision of the ray sent out from the camera where the mouse is located. I've got a plane with a scene node for the sydney model located on it. Then I have a camera behind and above the model looking down at it with about a 45 degree angle. When I choose a spot on the middle and bottom of the screen, the ray collides with a point on the plane right below the mouse pointer. However, when you move the cursor away from the bottom middle to anywhere else on the screen, the spot on the plane where the collision occurs is not located where the mouse cursor is. I did a survey of the pixels verses the change in units at different areas of the screen. Here is some of what I got from doing that. Lets say I have a collison point from a ray that I originated from the mouse coordiantes 1,1. Then I move the mouse to 2,1. With the camera looking down the X axis, this new ray will change the Z position of the colision by 2.4 units. With a Y position of the mouse at 767 the change in units from a previous spot will be only .662 units. The change in the X position of the colision point based on the mouse position is almost proportional to the Z change, but to a smaller extent only 1.113 units near the top of the screen and .467 units at the bottom. The changes are consitent along the horizontal of the screen, so its 2.4 units no matter where on the X the mouse is as long as the Y is 1. I thought it might be caused by having the camera angled the way it is, but when I moved the camera to 90 degrees above the sydney model, the problem was still there, but to a slightly lesser degree.
I've been combating this by having the collison point scaled by a certain amount based on where the cursor is on the screen, but its not very exact and I just doesn't feel right. I hope I didn't confuse anyone with my ramblings, if you need me to describe it better I'll try. Has anyone else encountered and overcome this? If anyone has a more elegant solution to this than I've been trying please let me know. I'll post the code I am using now if anyone needs me too, but I'm at work right now without the code. Any help is appreciated.
As I was writing this I had a thought about it maybe being my FOV for this camera. But i am at work and can't see how changing the FOV back to the default will effect it.
-Mindl