3D Camera Problem

Posted by Chris on Game Development See other posts from Game Development or by Chris
Published on 2010-12-29T14:28:57Z Indexed on 2010/12/29 15:00 UTC
Read the original article Hit count: 363

Filed under:
|

I allow the user to look around the scene by holding down the left mouse button and moving the mouse. The problem that I have is I can be facing one direction, I move the mouse up and the view tilts up, I move down and the view titles down. If I spin around 180 my left and right still works fine, but when I move the mouse up the view tilts down, and when I move the mouse down the view titles up.

This is the code I am using, can anyone see what the problem with the logic is?

  var viewDir = g_math.subVector(target, g_eye);  
  var rotatedViewDir = [];  
  rotatedViewDir[0] = (Math.cos(g_mouseXDelta * g_rotationDelta) * viewDir[0]) - (Math.sin(g_mouseXDelta * g_rotationDelta) * viewDir[2]);  
  rotatedViewDir[1] = viewDir[1];  
  rotatedViewDir[2] = (Math.cos(g_mouseXDelta * g_rotationDelta) * viewDir[2]) + (Math.sin(g_mouseXDelta * g_rotationDelta) * viewDir[0]);  
  viewDir = rotatedViewDir;  
  rotatedViewDir[0] = viewDir[0];  
  rotatedViewDir[1] = (Math.cos(g_mouseYDelta * g_rotationDelta * -1) * viewDir[1]) - (Math.sin(g_mouseYDelta * g_rotationDelta * -1) * viewDir[2]);  
  rotatedViewDir[2] = (Math.cos(g_mouseYDelta * g_rotationDelta * -1) * viewDir[2]) + (Math.sin(g_mouseYDelta * g_rotationDelta * -1) * viewDir[1]);  
  g_lookingDir = rotatedViewDir;  
  var newtarget = g_math.addVector(rotatedViewDir, g_eye);

© Game Development or respective owner

Related posts about 3d

Related posts about camera