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$
  • $\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 Oct 5 '18 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$ – Nicol Bolas Oct 5 '18 at 2:04
  • $\begingroup$ @NicolBolas I have added two pictures. The v here is top of the view. $\endgroup$ – AlexWei Oct 5 '18 at 2:16
0
$\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$
  • $\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 Oct 5 '18 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 Oct 5 '18 at 3:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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