0
$\begingroup$

Assume eye position e, gaze direction g, view-up vector t, right-handed base. As the graphs shows: enter image description here enter image description here

$w=-\frac{g}{||g||}$
$u=\frac{t\times w}{||t\times w||}$
$v=w\times u$

I am really confused about the 2nd equation $u=\frac{t\times w}{||t\times w||}$.
What if the camera rotate around its gaze direction? The v rotates while the t stays the same.
Then the vector t will not in the plane that w and v lies in which means the second equation is wrong.

I know I have something misunderstood.
Could someone please give me some clues?

$\endgroup$
3
  • $\begingroup$ @NicolBolas Sorry. I have made a mistake. I have edited my question. "Then the vector t will not in the plane that w and u" should be "Then the vector t will not in the plane that w and v" $\endgroup$
    – AlexWei
    Commented Oct 5, 2018 at 2:01
  • $\begingroup$ It isn't supposed to be in that plane. W is the direction of the view. V is supposed to be to the right of the view. If T is up, you can't have the right of the view in the same plane as up. $\endgroup$ Commented Oct 5, 2018 at 2:04
  • $\begingroup$ @NicolBolas I have added two pictures. The v here is top of the view. $\endgroup$
    – AlexWei
    Commented Oct 5, 2018 at 2:16

1 Answer 1

1
$\begingroup$

What if the camera rotate around its gaze direction? The v rotates while the t stays the same.

The camera's orientation is defined by two directions: g and t. If the camera "rotates around its gaze direction", g will not be changing; that is what it means to "rotate around its gaze direction". If g isn't changing, and the camera's orientation is defined by two directions, then you can only get a different orientation if t is changing.

Therefore, your second statement is a contradiction of the first. Changing t is precisely how you cause the camera to "rotate around its gaze direction".

To put it a different way, there are changes to t which will not affect the values of u, v, or w. However, none of those changes will cause the camera to "rotate around its gaze direction".

$\endgroup$
2
  • $\begingroup$ I have seen many tutorials set t as Vector.up(0,1,0) in world space. So that only means the camera is put straight. The Vector.up(0,1,0) can't set up a camera with rotation around gaze direction. Have I understood your idea properly? $\endgroup$
    – AlexWei
    Commented Oct 5, 2018 at 3:06
  • $\begingroup$ "If g isn't changing, and the camera's orientation is defined by two directions, then you can only get a different orientation if t is changing." So if I want to set up a camera with rotation around gaze direction, the t should be set other than Vector.up(0,1,0)? $\endgroup$
    – AlexWei
    Commented Oct 5, 2018 at 3:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.