Head tracking: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(→‎Related content: + link: FGData/Nasal/view.nas; + Developer mailing list threads)
(Extending and rewriting. Somehow I initially did not think of AR and VR goggles.)
Line 1: Line 1:
'''Head tracking''' or '''face tracking''' is when the in-sim view follows your head movements.  This is usually scaled down, making it possible to look directly aft in FlightGear while in real life turning your head no more than that you still can see the entire screen.
'''Head tracking''' or '''face tracking''' allow the in-sim view follows your head movements.  Head tracking is usually done for two similar purposes:  Either to pan and translate the view presented on a screen, or to make the view of augmented or virtual reality goggles follow your head movements.


This can be done from as simple as only horizontal panning all the way to following both rotation and movement round and along all three axis. This is often referred to as degrees of freedom (DoF).  Simple panning would be 1 DoF while all rotations and translations would be 6 DoF.
Though there is no head tracking built into FlightGear (as of may 2016) there are still various ways to achieve that.
 
More exotic uses of head tracking is to have a high resolution projector follow your head movements, while having a few low resolution projectors that only will be visible in your peripheral view.
 
== Degrees of freedom ==
Degrees of freedom (DoF) are very common measure of the capability of a head tracking solutionIt is the number of axis the view can be rotated or translated around or along.
 
For example would simple horizontal panning be 1 DoF (in essence rotation around the Z axis), while all translations and rotations would be 6 DoF (rotation around x, y and z + translation along x, y and z).


Though there is no head tracking built into FlightGear (as of may 2016) there are still various ways to achieve that.
== Screen view vs. VR view panning ==
While you obviously would like a VR goggle view to precisely follow your head movements, you can not do that if you want to have the view on a screen in front of you.  To be able to still see the screen when you are panning the view to directly behind, the translations usually are scaled down when head tracking is used for panning the view on a screen.
 
While one or two DoF may be satisfactory when you are using head tracking to pan a screen view, three or sometimes six DoF is usually wanted when using VR goggles.  Having six DoF with goggles usually requires requires external head tracking to capture the head movements as accelerometers are too noisy and will drift.


== Head tracking methods ==
== Head tracking solutions ==
There are many ways to do head tracking.  The ones cheapest to implement will use your web camera and will follow your face or some markers to figure out where your head is and how it is rotated.
There are many ways to do head tracking.  The solutions cheapest to implement will use your web camera and will follow your face or some markers to figure out where your head is and how it is rotated.


Some ways will use IR cameras, either using LED light markers or a single IR light at the camera and some reflective markers. The last method is used by some of the more popular commercial products.
The more expensive ones use IR cameras, either using a group of LED light markers or IR lights at the camera and reflective markers.   The last method is used by some of the more popular commercial products.  Often there is three or four markers grouped together with fixed relative positions that is attached to headwear or headphones.


== Using head tracking in FlightGear ==
== Using head tracking in FlightGear ==
As FlightGear is very flexible there are many ways head tracking could be implemented.  Often some external head tracking software will interface with FlightGear such that the rotations and translations is read into properties that in turn are used for panning and moving the view.
As FlightGear is very flexible there are many ways head tracking can be implemented.  Often some external head tracking software will [[Interfacing FlightGear|interface with FlightGear]] for example using a [[generic protocol]] such that the rotations and translations is read into [[Property tree|properties]] that in turn are used for panning and moving the view.


== Related content ==
== Related content ==
Line 43: Line 53:


=== Source code ===
=== Source code ===
* {{fgdata source|Nasal/view.nas}} – ''[[Nasal]] module that handles the view panning and translation, and related [[Property tree|properties]].''
* {{fgdata source|Nasal/view.nas}} – ''[[Nasal]] module that handles the view panning and translation, and related properties.''


[[Category:FlightGear]]
[[Category:FlightGear]]

Revision as of 21:46, 30 May 2016

Head tracking or face tracking allow the in-sim view follows your head movements. Head tracking is usually done for two similar purposes: Either to pan and translate the view presented on a screen, or to make the view of augmented or virtual reality goggles follow your head movements.

Though there is no head tracking built into FlightGear (as of may 2016) there are still various ways to achieve that.

More exotic uses of head tracking is to have a high resolution projector follow your head movements, while having a few low resolution projectors that only will be visible in your peripheral view.

Degrees of freedom

Degrees of freedom (DoF) are very common measure of the capability of a head tracking solution. It is the number of axis the view can be rotated or translated around or along.

For example would simple horizontal panning be 1 DoF (in essence rotation around the Z axis), while all translations and rotations would be 6 DoF (rotation around x, y and z + translation along x, y and z).

Screen view vs. VR view panning

While you obviously would like a VR goggle view to precisely follow your head movements, you can not do that if you want to have the view on a screen in front of you. To be able to still see the screen when you are panning the view to directly behind, the translations usually are scaled down when head tracking is used for panning the view on a screen.

While one or two DoF may be satisfactory when you are using head tracking to pan a screen view, three or sometimes six DoF is usually wanted when using VR goggles. Having six DoF with goggles usually requires requires external head tracking to capture the head movements as accelerometers are too noisy and will drift.

Head tracking solutions

There are many ways to do head tracking. The solutions cheapest to implement will use your web camera and will follow your face or some markers to figure out where your head is and how it is rotated.

The more expensive ones use IR cameras, either using a group of LED light markers or IR lights at the camera and reflective markers. The last method is used by some of the more popular commercial products. Often there is three or four markers grouped together with fixed relative positions that is attached to headwear or headphones.

Using head tracking in FlightGear

As FlightGear is very flexible there are many ways head tracking can be implemented. Often some external head tracking software will interface with FlightGear for example using a generic protocol such that the rotations and translations is read into properties that in turn are used for panning and moving the view.

Related content

Wiki articles

Forum topics

Developer mailing list threads

Source code