Jump to content

  • Log In with Google      Sign In   
  • Create Account


#Actuallucky6969b

Posted 13 March 2013 - 12:40 AM

The Direct3D coordinate system is left-handed. And If I have a camera looking down, the up vector is pointing out of the scene, the right vector is somehow pointing to the left, and the lookat vector is downward. I can get the last one using D3DXVec3Cross(); However, I don't understand how the 3ds max cameras work, they are supposed to be

1) up vector still pointing out.

2) right vector pointing right

3) lookat vector pointing toward me (out of the scene).

Which vector(s) represent up, right and lookat for Max? How do I convert a Max camera to a Direct3D camera without matrix decomposition? It seems like if I multiply the transformation given by Max at runtime by

[1 0 0]

[0 0 1]

[1 0 0]

I will get a mirror effect. My goal is still to have Y-up in my application instead of Z-up in the max application. I understand max, opengl and direct3d all use different coordinate systems. How do I convert them handily? Thanks Jack


#3lucky6969b

Posted 12 March 2013 - 11:56 PM

The Direct3D coordinate system is left-handed. And If I have a camera looking down, the up vector is downward, the right vector is somehow pointing to the left, and the lookat vector is pointing out of the scene. I can get the last one using D3DXVec3Cross(); However, I don't understand how the 3ds max cameras work, they are supposed to be

1) up vector still pointing out.

2) right vector pointing right

3) lookat vector pointing toward me (out of the scene).

Which vector(s) represent up, right and lookat for Max? How do I convert a Max camera to a Direct3D camera without matrix decomposition? It seems like if I multiply the transformation given by Max at runtime by

[1 0 0]

[0 0 1]

[1 0 0]

I will get a mirror effect. My goal is still to have Y-up in my application instead of Z-up in the max application. I understand max, opengl and direct3d all use different coordinate systems. How do I convert them handily? Thanks Jack


#2lucky6969b

Posted 12 March 2013 - 11:36 PM

The Direct3D coordinate system is left-handed. And If I have a camera looking down, the up vector is downward, the right vector is somehow pointing to the left, and the lookat vector is pointing out of the scene. I can get the last one using D3DXVec3Cross(); However, I don't understand how the 3ds max cameras work, they are supposed to be

1) up vector still pointing out.

2) right vector pointing right

3) lookat vector pointing toward me (out of the scene).

Which vector(s) represent up, right and lookat for Max? How do I convert a Max camera to a Direct3D camera without matrix decomposition? It seems like if I multiply the transformation given by Max at runtime by

[1 0 0]

[0 0 1]

[1 0 0]

I will get a mirror effect. My purpose is still to have Y-up in my application instead of Z-up in the max application. I understand the max, opengl and direct3d all use different coordinate systems. How do I convert them handily? Thanks Jack


#1lucky6969b

Posted 12 March 2013 - 11:35 PM

The Direct3D coordinate system is left-handed. And If I have a camera looking down, the up vector is downward, the right vector is somehow pointing to the left, and the lookat vector is pointing out of the scene. I can get the last one using D3DXVec3Cross(); However, I don't understand how the 3ds max cameras work, they are supposed to be 1) up vector still pointing out. 2) right vector pointing right 3) lookat vector pointing toward me (out of the scene). Which vector(s) represent up, right and lookat for Max? How do I convert a Max camera to a Direct3D camera without matrix decomposition? It seems like if I multiply the transformation given by Max at runtime by [1 0 0] [0 0 1] [1 0 0] I will get a mirror effect. My purpose is still to have Y-up in my application instead of Z-up in the max application. I understand the max, opengl and direct3d all use different coordinate systems. How do I convert them handily? Thanks Jack

PARTNERS