Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
Tgaud's avatar
Tgaud
Honored Guest
12 years ago

Head tracking

Hello,

I was just visualising how Headtracking is , and how it should be (in comparaison of real head movment)


From what I know,
In the game, the view , when turning the head, is always from the same point. (with two camera)
For example if the position of the body is 0, there would be two point of view : left eyes position-1, right eye position +1.
and when turning the head there is a rotation, taking "0" as a center.

the difference with reallife, is that your eyes are not on the same position of your body/neck
So when you turn your head, there is, of course, a rotation..
but there is, also, a translation !

I realize my explanation is bad, so i 'll try to be more technical :


Lets say in the game your position is :

x:0 y:0

then you have your eyes camera position : x:-1 y:0 x:+1 y0 (the x-1 x+1 represent the position of the eyes, around the nose/neck axis)

When turning the head 90° left : position is still 0, but your eyes are : x:0 y:-1 and x:0 y:+1
(so its only a rotation around the position)

When in the real world :
Your position is x:0, y:0 and your eyes are x:-1 y:+1 x:+1 y:+1 (the y+1 represent the front/rear distance beetwen your eyes to your neck wich is the axis of rotation)

and when turning the head 90° left your position is still 1, but your eyes are x:-1 y:-1 and x:-1 y+1
so, if you calculate the vector, you see that there is also a translation.


My conclusion is that the headtracking in game is more like what you see when you rotate on a chair (with the eyes perfectly aligned with the axis of rotation of your chair)
but not a head rotation.

and this can have an impact on the 3D realism of close objects. cuz the distance from the object to each one of your eyes, is not really the same than reality when you turn your head.


I dont know if the problem I explain is clear, and if its already something known and fixed in the headtracking setup..

3 Replies

  • I'm not certain whether your concern is accuracy of the head tracking, or accuracy of the camera posisitioning. It sounds like the latter.

    The OculusWorldDemo already handles the fact that the cameras (the eyes) are not located at the center of orientation. If you look at the code here you'll see that they calculate the eye distance as being 9 centimeters forward and 15 centimeters above the center of orientation, defined as the base the neck here.

    Perhaps it's something that would better belong in Util_StereoConfig.cpp file in the SDK, but on the other hand, all the example code is covered under the Apache 2.0 license, rather than the OVR SDK license, so you can do more with it in terms of integrating it with your own code.
  • Tgaud's avatar
    Tgaud
    Honored Guest
    Oh well if its already taken into consideration its great.

    But my concern is about the developpers of game.
    Most game are just trying to be 3D compatible, without any concern with headtracking.
    to be 3D compatible, the developper just have to think about two separated camera, (and how 2D stuff look like, like interface but its another subject)

    But to be headtracking compatible, they have to consider the camera positioning with this 9cm thing you're talking about.
    And i dont know if everyone is thinking about that.

    For example in halflife2, is it working with or without this 9cm delta ?
  • "Tgaud" wrote:
    But to be headtracking compatible, they have to consider the camera positioning with this 9cm thing you're talking about.
    And i dont know if everyone is thinking about that.

    For example in halflife2, is it working with or without this 9cm delta ?


    No idea. I suspect that whether or not it has an impact will depend greatly on the scale of scenes involved. If you're rendering a cockpit, it might significantly alter the realism. If you're running around on an open plain, I suspect it will be completely imperceptible.